INHOUDSOPGAWE:

Uitbreidingsensors Nodemcu ESP8266 vir Weewx: 8 stappe (met foto's)
Uitbreidingsensors Nodemcu ESP8266 vir Weewx: 8 stappe (met foto's)

Video: Uitbreidingsensors Nodemcu ESP8266 vir Weewx: 8 stappe (met foto's)

Video: Uitbreidingsensors Nodemcu ESP8266 vir Weewx: 8 stappe (met foto's)
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, November
Anonim
Uitbreidingsensors Nodemcu ESP8266 vir Weewx
Uitbreidingsensors Nodemcu ESP8266 vir Weewx

Dit is 'n instruksie om sensors by die weewx weerstasie sagteware te voeg.

As u nog nie weewx het nie, kan u in hierdie tutoriaal 'n paar dinge leer.

u benodig basiese kennis van die Arduino -kode en hoe u dit op 'n toestel kan oplaai.

U vind weewx -inligting hier:

Wat u bou, is 2 toestelle:

1 Toestel stuur temperatuur en humiditeit na die weewx -sagteware.

1 Toestel stuur grondtemperature van verskillende gronddieptes na die weewx -sagteware.

Ons eerste toestel is 'n BME 280 -sensor.

Ons tweede toestel is 'n ketting van 3 DS18B20 temperatuursensors. (U kan meer byvoeg as u wil).

Kom ons begin:

Stap 1: Wat u nodig het …

Wat jy nodig het…
Wat jy nodig het…
Wat jy nodig het…
Wat jy nodig het…
Wat jy nodig het…
Wat jy nodig het…

Weewx aan die gang + toegang tot weewx -bediener. (byvoorbeeld 'n framboos PI 3).

2 Nodemcu ESP8266 modules

3 of meer DS18B20 -sensors

1 BME 280 -kombosensor

1 Aluminiumpyp of soortgelyk met 'n deursnee van 10 mm en 1 mm wanddikte en ca. 1 meter lank

1 Waterdigte omhulsel met kabelwartel en borgmoer.

1 5V kragbron (byvoorbeeld mobiele laaier).

'N Paar drade en soldeerstowwe.

U vind BME280 -sensor en Nodemcu -modules op eBay.

Vir aluminiumpyp kies ek 'n plaaslike hardewarewinkel

Vir die DS18B20 en waterdigte omhulsel gebruik ek www.reichelt.de

www.reichelt.de/DS-18B20/3/index.html?ACTI…

www.reichelt.de/EL-FK-110/3/index.html?ACT…

en die groep kabelklier met sluitmoere

www.reichelt.de/Kabelverschraubungen-Bopla…

Vir die bme280 kan u opsioneel 'n vertakkingsblik gebruik

www.reichelt.de/Installationsmaterial/EL-D…

Stap 2: Begin met die BME 280 sensor hardeware -opstelling

Begin met die BME 280 sensor hardeware -opstelling
Begin met die BME 280 sensor hardeware -opstelling

Soldeer die strook in die BME280.

Koppel dan die BME aan die Nodemcu:

BME VIN tot 3.3V

BME GND tot GND

SCL na D4

SDA tot D3

As u wil, kan u die toestel in 'n behuizing plaas, maar maak seker dat daar 'n paar gate in die behuising is, sodat die humiditeit en temperatuurwaardes korrek is.

Stap 3: BME 280 Nodemcu ESP8266 -kode

BME 280 Nodemcu ESP8266 Kode
BME 280 Nodemcu ESP8266 Kode
BME 280 Nodemcu ESP8266 Kode
BME 280 Nodemcu ESP8266 Kode
BME 280 Nodemcu ESP8266 Kode
BME 280 Nodemcu ESP8266 Kode

Vir die kode kan u my github -bewaarplekke gebruik:

github.com/Landixus/BME280_TO_SERVER_WEEWX

Die ino -lêer benodig 'n paar insetsels van u:

Die IP -adres van u weewx -bediener of URL

en die roete waar u die php -lêer het, maak seker dat die gebied skryfbaar is.

Ek kies die public_html dir omdat dit 'n tuisbediener is.

As u die git -bewaarplekke wil kloon en git op u bediener wil laat installeer, kan u met die opdrag kloon:

"git kloon" https://github.com/Landixus/BME280_TO_SERVER_WEEWX"

Nou moet ons dinge op ons weewx -bediener doen.

U moet die paaie na u instellings maak!

in

/home/weewx/public_html

skep 'n vouerdata

skep 'n bme.txt in die datamap, byvoorbeeld met:

nano bme.txt

die lêer moet leeg wees.

maak dit skryfbaar met:

chmod -R 777 bme.txt

(u doen dit nooit op 'n internet -toeganklike bediener nie!)

in die gids

/home/weewx/public_html

jy sit die bme.php van my github repo.

Die truuk is dat die INO -lêer waardes na die bme.php stuur en die bme.php die data in bme.txt skryf

Daarna moet ons die diens in weewx byvoeg

plaas die bme.py in die gids

/home/weewx/bin/user

maak u weewx.conf in die gids oop

/huis/weewx

Dit is altyd goed om 'n rugsteun te hê voordat u hierdie lêer redigeer!

gaan af na line Engine en laat die lyn soos myne lyk:

[Enjin]

# Hierdie afdeling spesifiseer die dienste wat uitgevoer moet word. Hulle is

# gegroepeer volgens tipe, en die volgorde van dienste binne elke groep

# bepaal die volgorde waarin die dienste uitgevoer sal word.

data_services = user.pond. PondService, user.bme.bme

herbegin weewx met:

sudo /etc/init.d/weewx stop

sudo /etc/init.d/weewx begin

met die opdrag

stert -f/var/log/syslog

u kan in die logbestand soek na foute of sukses, soek na 'n uitset bme: waarde gevind van …

Gee u bediener 'n paar minute om te genereer, elke 5 minute kom 'n uitset in "my" weewx.conf.

Kontroleer u paaie as u 'n foutboodskap het.

As u waardes het, kan u dit op die webblad wys:

oop vel.conf in

/home/weewx/skins/Standard

gaan na:

# Hierdie een is waarskynlik spesifiek vir my stasie! Voeg by

extraTemp3 = BME1 TemperatureextraHumid1 = BME1 Humiditeit

stoor die lêer en maak dit in dieselfde gids oop

indeks.html.tmpl

soek 'n lyn:

#if $ day.extraTemp..

#eindig as

na die eerste #einde as u dit vind, plaas u BME -sensor met:

^^ jammer, maar dit is nie moontlik om dit as 'n teks te plaas nie:(stoor die lêer en verlaat.

Weewx hoef nie weer te begin nie.

Nou moet u die NODEMCU ESP8266 met die Arduino -lêer voer.

Moenie vergeet om u wifi en adresse in die lêer op te stel nie.

Kyk na die reeksuitset na foute na laai.

Na 'n kort tydperk moet u die waardes op u weewx -webwerf sien.

Stap 4: Sukses BME280 Sensortoestel + Probleemoplossing

Sukses BME280 Sensortoestel + Probleemoplossing
Sukses BME280 Sensortoestel + Probleemoplossing
Sukses BME280 Sensortoestel + Probleemoplossing
Sukses BME280 Sensortoestel + Probleemoplossing

'N Paar wenke vir jou:

Maak meer as 1 konsoles oop via stopverf

Maak u veranderinge op 1 konsole, en lees op die ander konsole u syslog live met:

stert -f/var/log/syslog

As u 'n fout ondervind, kyk eers na u logbestand.

U uitset behoort soortgelyk aan myne te lyk:

Stap 5: Grondopstelling van hardeware sensor

Opstelling van hardeware sensor
Opstelling van hardeware sensor
Grondopstelling van hardeware sensor
Grondopstelling van hardeware sensor
Grondopstelling van hardeware sensor
Grondopstelling van hardeware sensor

Vir die DS18B20 -sensor moet ons 'n busstelsel maak met 'n paar drade en soldeer.

Gaan u DS18B20 na

DATA, GND, VCC

Tussen VCC en DATA benodig u 'n weerstand van 4.7K. Dit is genoeg as u die weerstand by die eerste DS18B20 het

Die ander DS18B20 is ewewydig aan mekaar.

Meet die lengte volgens u behoeftes. Soldeer 'n ketting saam, ek het die penne vasgemaak met 'n krimpbuis.

Vir 'n TOETS koppel jy DATA aan D3 en VCC aan VCC (3.3V) en GND aan GND.

Vir die diep slaap -opsie moet u 'n brug tussen RST en D0 (GPIO16) heg

U moet nie nou die ketting in die aluminiumbuis plaas nie; doen eers u toetse!

Stap 6: DS18B20 Nodemcu ESP8266 -kode

DS18B20 Nodemcu ESP8266 Kode
DS18B20 Nodemcu ESP8266 Kode

Vir die kode kan u my GITHUB -bewaarplekke gebruik:

github.com/Landixus/multipleDS18B20WeeWX

Die ino -lêer benodig ook 'n paar insetsels van u: die IP -adres van u weewx -bediener of URL en die roete waarheen u die php -lêer geplaas het, maak seker dat die gebied skryfbaar is; ek kies die public_html dir omdat dit 'n tuisbediener is.

As u die git -bewaarplekke wil kloon en git op u bediener wil laat installeer, kan u kloon met die opdrag git clone

Nou moet ons dinge doen wat op ons weewx -bediener werk.

U moet die paaie na u instellings maak

/home/weewx/public_html

skep 'n gids "data" in die datamap, skep 'n ds18b20.txt byvoorbeeld nano ds18b20.txt die txt moet emtpy wees. maak dit skryfbaar met chmod -R 777 ds18b20.txt (u doen dit nooit op 'n internet -toeganklike bediener nie!) in die map/home/weewx/public_html wat u die ground.php van my github -verteenwoordiger plaas. Die truuk is dat die INO -lêer waardes na die ground.php stuur en die ground.php die data in ds18b20.txt skryf, en dan moet ons die diens byvoeg in weewx en plaas die ds18b20.py in folder/home/weewx/bin/ gebruiker

maak u weewx.conf oop in map /home /weewx

Dit is altyd goed om 'n rugsteun te hê voordat u hierdie lêer redigeer!

gaan af na die reël:

[Enjin]

# gegroepeer volgens tipe, en die volgorde van dienste binne elke groep

# bepaal die volgorde waarin die dienste uitgevoer sal word.

prep_services = weewx.engine. StdTimeSynch, data_services = user.pond. PondService, user.bme.bme, user.ds18b20.ds18b20 voeg die inline na 'n komma by

"user.ds18b20.ds18b20" moet soos die boonste reël lyk^^

herbegin weewx met:

sudo /etc/init.d/weewx stop

sudo /etc/init.d/weewx begin

Met die opdrag tail -f/var/log/syslog kan u in die logbestand kyk vir foute of sukses soek na 'n uitset ds18b20: waarde gevind van Gee u bediener 'n paar minute om te genereer, in my weewx.conf kom elke 5 minute uit sit. Kontroleer u paaie as u 'n foutboodskap het. As u waardes het, kan u dit op die bladsy wys: open

skin.conf in/home/weewx/skins/Standard gaan na:

# Hierdie een is waarskynlik spesifiek vir my stasie!

byvoeg

grondTemp1 = DS18B201

grondTemp2 = DS18B202

grondTemp3 = DS18B203

stoor die lêer en maak oop in dieselfde gids index.html.tmpl soek 'n reël:

#if $ day.extraTemp.. …

#eindig as

na die eerste #eindig, sit u GroundSensor -sensor met:

^^ jammer, maar dit is nie moontlik om dit as 'n teks te plaas nie: (stoor die lêer en verlaat. Weewx hoef nie weer te begin nie. Nou moet u die NODEMCU ESP8266 met die Arduino -lêer voer.

Moenie vergeet om u wifi en adresse in die lêer op te stel nie. Kyk na die reeksuitset na foute na laai.

Na 'n kort tydperk moet u die waardes op u weewx -webwerf sien.

Stap 7: Suksesvolle grondsensor en probleemoplossing

Suksesvolle grondsensor en probleemoplossing
Suksesvolle grondsensor en probleemoplossing

As u alles werk en waardes sien, gaan dan buite en sit die aluminiumpyp in die grond.

'N Goeie manier is om warm gom aan die een kant van die pyp te plaas en dan die buis vas te druk, dan het u 'n mooi bokant om dit makliker in die grond te bring.

Sit eers u pyp in die grond, u kan met 'n houtbord sag hamer.

As die pyp diep genoeg is, kan u u ketting ds18b20 en die kragdrade in die waterdigte boks sit.

Maak seker dat u wifi op hierdie plek werk!

As u nie weet watter sensor so diep is nie, is daar 2 moontlikhede.

Ek toets fase 1 ds18b20 tussen u vinger, die temperatuur word hoër vir hierdie een.

As die pyp reeds in die grond is, is die hoogste waarde normaalweg die diepste punt.

Stap 8: Voltooi

Voltooi
Voltooi

Net die einde

Stel u vrae en wys u grondtemp in die kommentaar!

Sluit by weewx google Groups aan vir meer hulp op:

groups.google.com/forum/#!forum/weewx-user

Aanbeveel: