Cuprins:
- Pasul 1: De ce aveți nevoie …
- Pasul 2: Începeți cu setarea hardware a senzorului BME 280
- Pasul 3: BME 280 Nodemcu ESP8266 Cod
- Pasul 4: Succes Dispozitiv senzor BME280 + Depanare
- Pasul 5: Configurarea hardware a senzorului de sol
- Pasul 6: DS18B20 Nodemcu ESP8266 Cod
- Pasul 7: Senzor de sol pentru succes și depanare
- Pasul 8: Terminați
Video: Senzori de extensie Nodemcu ESP8266 pentru Weewx: 8 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:45
Acesta este un instructiv pentru a adăuga senzori la software-ul stației meteo weewx.
Dacă nu aveți weewx, puteți afla câteva lucruri în acest tutorial.
aveți nevoie de cunoștințe de bază despre codul Arduino și despre cum să încărcați pe un dispozitiv.
Puteți găsi informații despre weewx aici:
Ceea ce construiți este 2 dispozitive:
1 Dispozitivul trimite temperatura și umiditatea către software-ul weewx.
1 Dispozitivul trimite temperaturile solului la diferite adâncimi ale solului către software-ul weewx.
Primul nostru dispozitiv este un senzor BME 280.
Al doilea dispozitiv al nostru este un lanț de 3 senzori de temperatură DS18B20. (Puteți adăuga mai multe dacă doriți).
Să începem:
Pasul 1: De ce aveți nevoie …
Weewx în funcțiune + acces la serverul weewx. (de exemplu, un zmeură PI 3).
2 module Nodemcu ESP8266
3 sau mai mulți senzori DS18B20
1 senzor combinat BME 280
1 țeavă de aluminiu sau similar cu un diametru de 10 mm și 1 mm grosime perete și cca. 1 metru lung
1 Carcasă impermeabilă cu presetupă și piuliță de blocare.
1 sursă de alimentare de 5V (încărcător mobil de exemplu).
Câteva fire și lucruri de lipit.
Găsiți senzorul BME280 și modulele Nodemcu pe eBay.
Pentru țeava de aluminiu aleg un magazin de hardware local
Pentru DS18B20 și carcasa rezistentă la apă folosesc www.reichelt.de
www.reichelt.de/DS-18B20/3/index.html?ACTI…
www.reichelt.de/EL-FK-110/3/index.html?ACT…
și grupul presetupei cu piulițe de blocare
www.reichelt.de/Kabelverschraubungen-Bopla…
Pentru bme280 puteți utiliza opțional o cutie de ramificare
www.reichelt.de/Installationsmaterial/EL-D…
Pasul 2: Începeți cu setarea hardware a senzorului BME 280
Lipiți banda în BME280.
Apoi, conectați BME la Nodemcu:
BME VIN la 3,3V
BME GND la GND
SCL la D4
SDA la D3
Dacă doriți, puteți pune dispozitivul într-o carcasă, dar asigurați-vă că unele găuri sunt în carcasă, astfel încât valorile de umiditate și temperatură să fie corecte.
Pasul 3: BME 280 Nodemcu ESP8266 Cod
Pentru cod puteți folosi depozitele mele github:
github.com/Landixus/BME280_TO_SERVER_WEEWX
Fișierul ino are nevoie de câteva inserții de la dvs.:
Adresa IP a serverului sau adresei web weewx
și ruta unde aveți fișierul php, asigurați-vă că zona este înscrisă.
Aleg directorul public_html deoarece este un server de acasă.
dacă doriți să clonați depozitele git și aveți git instalat pe serverul dvs., puteți clona cu comanda:
„git clone”
Acum trebuie să facem câteva lucruri pe serverul nostru weewx.
Trebuie să faceți căile către setările dvs.!
în
/ home / weewx / public_html
creați un folder de date
în folderul de date creați un bme.txt de exemplu cu:
nano bme.txt
fișierul ar trebui să fie gol.
faceți-l scriibil cu:
chmod -R 777 bme.txt
(nu faceți acest lucru niciodată pe un server accesibil la internet!)
în dosar
/ home / weewx / public_html
ai pus bme.php din repo-ul meu github.
Trucul este că fișierul INO trimite valori către bme.php și bme.php scrie datele în bme.txt
În continuare trebuie să adăugăm serviciul în weewx
puneți bme.py în dosar
/ home / weewx / bin / user
deschideți weewx.conf în dosar
/ acasă / weewx
este întotdeauna bine să aveți o copie de rezervă înainte de a edita acest fișier!
coborâți la linia Motor și faceți linia să arate ca a mea:
[Motor]
# Această secțiune specifică serviciile care ar trebui să fie executate. Sunt
# grupate după tip și ordinea serviciilor din cadrul fiecărui grup
# determină ordinea în care vor fi executate serviciile.
data_services = user.pond. PondService, user.bme.bme
reporniți weewx cu:
sudo /etc/init.d/weewx stop
sudo /etc/init.d/weewx start
cu comanda
tail -f / var / log / syslog
puteți căuta în fișierul jurnal erori sau succes, căutați o ieșire bme: valoarea găsită a …
Acordați serverului câteva minute pentru a genera, în „meu” weewx.conf la fiecare 5 minute apare o ieșire.
Dacă aveți un mesaj de eroare verificați-vă căile.
Dacă aveți valori, puteți merge să le afișați pe pagina web:
piele deschisa.conf in
/ home / weewx / skins / Standard
mergi la:
# Aceasta este probabil specifică stației mele! Adăugați
extraTemp3 = BME1 TemperaturaextraHumid1 = BME1 Umiditate
salvați fișierul și deschideți-l în același folder
index.html.tmpl
cauta o linie:
#if $ day.extraTemp..
# final dacă
după prima # sfârșit, dacă găsiți, puneți senzorul BME cu:
^^ îmi pare rău, dar nu este posibil să puneți acest text ca un text:(salvați fișierul și ieșiți.
nu este nevoie să reporniți weewx.
Acum trebuie să alimentați NODEMCU ESP8266 cu fișierul Arduino.
Nu uitați să vă configurați wifi-ul și adresele în fișier.
După încărcare verificați ieșirea serială pentru erori.
După o perioadă scurtă, ar trebui să vedeți valorile pe site-ul dvs. web weewx.
Pasul 4: Succes Dispozitiv senzor BME280 + Depanare
Câteva sfaturi pentru dvs.:
Deschideți mai mult de 1 consolă prin chit
pe o consolă faceți modificările dvs., iar pe cealaltă consolă citiți syslogul live cu:
tail -f / var / log / syslog
Dacă aveți o eroare, consultați mai întâi fișierul jurnal.
Rezultatul dvs. ar trebui să arate similar cu al meu:
Pasul 5: Configurarea hardware a senzorului de sol
Pentru senzorul DS18B20 trebuie să realizăm un sistem de autobuz cu câteva fire și lipire.
Verificați DS18B20
DATE, GND, VCC
Între VCC și DATA aveți nevoie de un rezistor de 4.7K. Este suficient dacă aveți rezistența la primul DS18B20
Celelalte DS18B20 sunt paralele între ele.
Măsurați lungimea în funcție de nevoile dvs. Lipiți un lanț împreună, am fixat știfturile cu un tub mic.
Pentru un TEST, conectați DATA la D3 și VCC la VCC (3.3V) și GND la GND.
Pentru opțiunea de somn profund trebuie să atașați o punte între RST și D0 (GPIO16)
Nu ar trebui să puneți lanțul în tubul de aluminiu chiar acum, faceți testele înainte!
Pasul 6: DS18B20 Nodemcu ESP8266 Cod
Pentru cod puteți utiliza depozitele mele GITHUB:
github.com/Landixus/multipleDS18B20WeeWX
De asemenea, fișierul ino are nevoie de câteva inserții de la dvs.: Adresa IP a serverului sau URL-ului weewx și ruta pe care ați pus fișierul php, asigurați-vă că zona este înscriibilă.
Dacă doriți să clonați depozitele git și aveți git instalat pe serverul dvs., puteți clona cu comanda „git clone
Acum trebuie să facem câteva lucruri pe care toate funcționează pe serverul nostru weewx.
Trebuie să faceți căile către setările dvs. în
/ home / weewx / public_html
creați un folder „date” în folderul de date creați un ds18b20.txt de exemplu nano ds18b20.txt txt ar trebui să fie emtpy. faceți-l scriibil cu chmod -R 777 ds18b20.txt (nu faceți acest lucru niciodată pe un server care este accesibil la internet!) în folderul / home / weewx / public_html ați pus ground.php din reprezentantul meu github. Trucul este că fișierul INO trimite valori către ground.php, iar ground.php scrie datele în ds18b20.txt la următoare, trebuie să adăugăm serviciul în weewx pune ds18b20.py în folderul / home / weewx / bin / utilizator
deschideți weewx.conf în folderul / home / weewx
este întotdeauna bine să aveți o copie de rezervă înainte de a edita acest fișier!
coborâți la coadă:
[Motor]
# grupate după tip și ordinea serviciilor din cadrul fiecărui grup
# determină ordinea în care vor fi executate serviciile.
prep_services = weewx.engine. StdTimeSynch, data_services = user.pond. PondService, user.bme.bme, user.ds18b20.ds18b20 adăugați linia după o virgulă
„user.ds18b20.ds18b20” ar trebui să arate ca linia superioară ^^
reporniți weewx cu:
sudo /etc/init.d/weewx stop
sudo /etc/init.d/weewx start
cu comanda tail -f / var / log / syslog puteți căuta în fișierul jurnal erori sau succes căutați o ieșire ds18b20: valoarea găsită a Acordați serverului câteva minute pentru a genera, în weewx.conf la fiecare 5 minute ieșiți a pune. Dacă aveți un mesaj de eroare verificați-vă căile. Dacă aveți valori, puteți merge să o afișați pe pagina: deschideți
skin.conf în / home / weewx / skins / Standard accesați:
# Aceasta este probabil specifică stației mele!
adăuga
soilTemp1 = DS18B201
soilTemp2 = DS18B202
soilTemp3 = DS18B203
salvați fișierul și deschideți în același folder index.html.tmpl căutați o linie:
#if $ day.extraTemp.. …
# final dacă
după prima # sfârșit, dacă găsiți puneți senzorul GroundSensor cu:
^^ îmi pare rău, dar nu este posibil să puneți acest text ca text: (salvați fișierul și ieșiți. nu este nevoie să reporniți weewx. Acum trebuie să alimentați NODEMCU ESP8266 cu fișierul Arduino.
Nu uitați să vă configurați wifi-ul și adresele în fișier. După încărcare verificați ieșirea serială pentru erori.
După o perioadă scurtă, ar trebui să vedeți valorile pe site-ul dvs. web weewx.
Pasul 7: Senzor de sol pentru succes și depanare
Dacă aveți toate de lucru și vedeți valori, atunci ieșiți afară și puneți țeava de aluminiu în pământ.
O modalitate bună este să puneți adeziv fierbinte pe o parte a țevii și apoi să apăsați tubul împreună, apoi aveți un blat frumos pentru ao aduce mai ușor în pământ.
Puneți mai întâi țeava în pământ, puteți ciocani moale cu o scândură de lemn.
Dacă conducta este suficient de adâncă, puteți introduce lanțul dvs. ds18b20 și firele de alimentare în cutia impermeabilă.
Asigurați-vă că conexiunea WiFi funcționează în acest loc!
Dacă nu știți ce senzor este cât de adânc, există 2 posibilități.
Testez faza pun 1 ds18b20 între deget, temperatura crește pentru aceasta.
Când conducta este deja în pământ, atunci valoarea normală este cea mai mare valoare, punctul cel mai adânc.
Pasul 8: Terminați
Doar sfârșitul
Postează-ți întrebările și arată-ți timpul în teren în comentarii!
Pentru mai mult ajutor, alăturați-vă grupurilor weewx google pe:
groups.google.com/forum/#!forum/weewx-user
Recomandat:
Placă de extensie RaspberryPi 3/4 pentru adăugarea de funcții suplimentare la Raspberry Pi: 15 pași (cu imagini)
Placă de extensie RaspberryPi 3/4 pentru adăugarea de funcții suplimentare la Raspberry Pi: știm că raspberry pi 3/4 nu vine cu ADC (convertor analogic digital) și RTC (ceas în timp real) încorporate, așa că proiectez un PCB care conține 16 canal 12bit ADC, RTC, modul SIM7600 4G, butoane, relee, ieșire USB, ieșire 5V, alimentare 12V
Extensie pentru orice software DJ doriți !: 6 pași
Extensie pentru orice software DJ doriți !: Nu toată lumea poate să intre în prima zi de DJ și să se aștepte să aibă pregătite toate mixerele și platourile și tamponul cu hot cues în prima zi, dar hai să fim reali aici: amestecarea pe un laptop e de rahat. Pentru asta este, pentru a vă rezolva toate problemele financiare legate de
Mod 3.3V pentru senzori cu ultrasunete (pregătiți HC-SR04 pentru logica de 3.3V pe ESP32 / ESP8266, foton de particule, etc.): 4 pași
Mod 3.3V pentru senzori cu ultrasunete (pregătiți HC-SR04 pentru logica de 3.3V pe ESP32 / ESP8266, Photon de particule, etc.): TL; DR: Pe senzor, tăiați urmele la pinul Echo, apoi reconectați-l folosind un divizor de tensiune (Echo trace - > 2.7kΩ - > Echo pin - > 4.7kΩ - > GND)
Extensie WiFi ieftină pentru IoT: 8 pași
Extensie WiFi ieftină pentru IoT: Cum să vă construiți propriul extender WiFi dintr-un modul WiFi ESP8266 ieftin între 2 și 8 USD *** EDIT: De la scrierea acestui instructabil, firmware-ul a fost îmbunătățit foarte mult, cu adăugarea unei pagini de setări GUI (ca un router normal), firewall, power man
Extensie WiFi pentru repetor wireless Linksys WRE54G: 6 pași
Extensie de gamă WiFi pe repetor wireless Linksys WRE54G: Definirea problemei Uneori, domeniul de funcționare existent nu este suficient sau dacă există obstacole pe ruta dintre dispozitiv și router, distanța de funcționare poate fi redusă dramatic. În acest caz, trebuie să măriți sensibilitatea