[ Príspevok: 1 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 20.12.24
Príspevky: 451
Témy: 198 | 198
Bydlisko: Poprad-okolie
NapísalOffline : 06.02.2019 2:03 | Meteostanica s ESP8266 - NodeMCU

Dnes by som vám v krátosti predstavil projekt, ktorý som tvoril už pred takmer dvomi rokmi. Bol to druhý webovo orientovaný projekt, ktorý som tvoril v súvislosti s mikrokontrolérmi a za svoju životnosť si prešiel rôznych úpravami - najmä v oblasti využitých senzorov, ktoré sa niekoľko krát menili z dôvodu spoľahlivosti, chybných meraní a ďalších javov. Po hardvérovej stránke som pre mozog projektu využil vývojovú dosku NodeMCU v3 Lolin s wifi čipom ESP8266 pre pripojenie do wifi siete a odosielanie nameraných údajov po HTTPS protokole do webového rozhrania POST metódou. Vývojovú dosku ESP8266 je možné programovať v prostredí ArduinoIDE ako klasické Arduino s knižnicou Wifi.h pre pripojenie k wifi sieti po doinštalovaní Arduino "jadra" pre ESP.

Meteostanica umožňuje ukladať do MySQL databázy:
    Teplota dnu
    Teplota von
    Vlhkosť vzduchu
    Atmosférický tlak

Poďme si bližšie predstaviť webové rozhranie a zistiť, čo vlastne ponúka pre používateľa:
    Real-time tabuľka pre zobrazenie posledných nameraných údajov so zobrazením času a tendencie - stúpa/klesá/ustálená (Štandardne je čas záznamu 5-15min)
    Zmena názvov - umiestnenie senzorov, pomenovanie senzora
    História meraní - 30 dní dozadu v tabuľkovom prevedení
    Maximá, minimá, priemer za deň / 7 dní / 30 dní - budíková reprezentácia
    Grafická reprezentácia vývoja počasia za 24 hodín / 7 dní
    Prognóza počasia - BETA (predpoveď na základe vývoja počasia)
    Vzdialený reset dosky
    Log (neúspešné prihlásenie so záznamom IP adresy, porucha senzora - neplatné hodnoty)
    Zdrojový kód pre ESP8266
    Zmena loginu, odhlásenie sa, prihlásenie sa

Dáta sú predávané serveru a spracované jazykom PHP. Na základe použitých senzorov viem, aké hodnoty vracajú pri nesprávnom zapojení, vytiahnutom kontakte a pod. Napríklad u populárnych teplotných senzorov DS18B20 na OneWire zbernici je to -127°C pri zlom zapojení (nezapojení) a pri odpojení napájacieho vodiča (Vcc) sa najčastejšie nameria teplota 85°C.
Meteostanica s ESP8266 - NodeMCU
Viem si teda tieto kritické hodnoty ošetriť a prípadný problém oznámiť do logu a zlú hodnotu nezapísať. Nakoľko som potreboval merať aj vlhkosť vzduchu - nech je už tá meteostanica poriadna :), hľadal som senzor pre dvojkombináciu teplota + vlhkosť. Narazil som na DHT22, čo je pomerne používaný senzor v tejto sfére.
Meteostanica s ESP8266 - NodeMCU
Senzor ma ale nepotešil, nakoľko mal často zlé dáta, i keď bol okolím vychválený, že nič lepšie nie je. Často krát sa namerala hodnota 0 pre teplotu i pre vlhkosť. Tento defekt - porucha priemerne vychádzala na jedno z 12 meraní, čo je dosť veľká chybovosť na jednoduchý digitálny senzor. Preto som siahol po náhrade v podobe SHT21, respektíve Si7021 (iné označenie pre modul). Modul komunikuje po I2C zbernici a osvedčil sa.
Meteostanica s ESP8266 - NodeMCU
Modul bol veľmi spoľahlivý a v prípade problému s komunikáciou doska namerala -5% vlhkosti, teda som tiež vedel ošetriť tento stav a prípadný problém hlásiť do logu a problém riešiť. Senzor sa osvedčil a počas prevádzky niekoľko mesiacov som nenarazil na problém. Keďže som meteostanicu ďalej rozširoval a chcel som zaznamenávať aj atmosférický tlak, vyskúšal som senzor BMP280, ktorý vie merať teplotu a atm. tlak vzduchu. Meranie tlaku vzduchu po prepočte na nadmorskú výšku bol s rozdielom do 0,4hPa, čo si myslím, že je na modul za euro aj niečo výborné.
Meteostanica s ESP8266 - NodeMCU
Onedlho bol senzor vymenený za BME280, ktoré vie zaznamenať teplotu, atmosférický tlak vzduchu a vlhkosť vzduchu. Naozaj kompaktný senzor 3v1, odporúčam. Tento senzor som teda umiestnil von a modul skryl do radiačného štítu, ktorý ho chráni pred vodou, či už v podobe dažďa, alebo kondenzátu.
Meteostanica s ESP8266 - NodeMCU
Moduly BMP a BME sú ľahko zameniteľné a často dochádza k omylom pri nákupe, kedy predajca zašle BMP verziu za cenu BME, býva 3x drahšia. Rozlišovať by sa mali zvýraznením písmena na senzore, ale často to nie je pravidlom. Nakoľko BMP, resp. BME280 komunikuje po I2C zbernici, má určitú adresu pod ktorou vystupuje. Problém môže nastať, ak chceme použiť viacero týchto senzorov. Riešením je emulovať softvérovo I2C zbernicu na iných pinoch, kam sa ďalší senzor pripojí, alebo prostredníctvom SDO pinu je možné napojiť ho voči Vcc (pullup), respektíve GND (pulldown), čím získame inú adresu a môžeme tak využiť viacero rovnakých senzorov na jednej hardvérovej I2C zbernici. Zaujímavosťou u týchto modulov je aj možnosť určiť nadmorskú výšku na základe teploty a absolúteho tlaku vzduchu a i ten prepočítať na relatívny v závislosti od nadmorskej výšky a teploty:
Kód:
relativny_tlak = absolutny_tlak / pow(1 - ((0.0065 *nadmorska_vyska) / (teplota + (0.0065 *nadmorska_vyska) + 273.15)), 5.257);

Doterajšie riešenie bolo vybavené takýmto typom hardvéru pre záznam dát:
    DS18B20 (teplota dnu), BME280 (tlak, teplota, vlhkosť)
    DHT22(teplota dnu, vlhkosť), BMP280 (tlak, teplota)
    DS18B20 (teplota dnu), DHT22 (vlhkosť von), BMP280 (tlak, teplota)
    DS18B20 (teplota dnu, SHT21 (vlhkosť von), BMP280 (tlak, teplota)
Webové rozhranie využíva voľne dostupnú šablónu Klorofil od Bootstrapu, AJAX-ové volania PHP scriptov pre real-time tabuľku, HTML elementy pre tlačidlové rozhranie používateľa. Pre grafy som využil hotový balík Google Charts. Zjednodušenú verziu tejto meteostanice je možné zdarma vyskúšať v pripravenom webovom rozhraní na adrese: https://arduino.php5.sk/meteostanicav2/
Ak si chcete webové rozhranie vyskúšať, máte možnosť! Pri použití Arduina s Ethernet shieldom W5100, alebo ESP8266 (NodeMCU) s hardvérom: DS18B20 (teplota dnu), DHT22 (vlhkosť), BMP280 (teplota, tlak vzduchu). ESP8266 využíva HTTPS pripojenie s knižnicou WifiClientSecure. Arduino podporuje iba HTTP spojenia. Vo webovom rozhraní meteostanice nájdete aj potrebné knižnice pre senzory.
Zdrojový program pre Arduino: https://arduino.php5.sk/meteostanica-arduino.php
Zdrojový program pre NodeMCU: https://arduino.php5.sk/meteostanica-nodemcu.php
Fotogaléria webového rozhrania: Obrázky sú ilustračné z webového rozhrania, ktorá je voľne prístupné, každý tam môže nahrať čo chce, teda dáta sú neplatné, prestrelené, atď....
Meteostanica s ESP8266 - NodeMCU
Meteostanica s ESP8266 - NodeMCU
Meteostanica s ESP8266 - NodeMCU
Meteostanica s ESP8266 - NodeMCU
Schéma zapojenia: ESP8266 + BMP280 + DHT22 + DS18B20
Meteostanica s ESP8266 - NodeMCU
Schéma zapojenia: ESP8266 + BME280 + DS18B20
Meteostanica s ESP8266 - NodeMCU


 [ Príspevok: 1 ] 


Meteostanica s ESP8266 - NodeMCU



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Hlasom ovládané auto - ESP8266 (NodeMCU)

v Články

2

1342

10.01.2020 18:25

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Inteligentný dom - NodeMCU

v Mikropočítače

1

723

24.12.2017 1:36

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Meteostanica s Arduinom a Ethernet Shieldom - HTTP

v Mikropočítače

0

775

16.09.2017 14:32

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Meteostanica s Arduino a Ethernetom vo Webclient móde

v Články

4

2898

20.10.2019 14:19

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

P: NodeMCU v3 a Basekit

v Predám

1

513

18.06.2017 1:01

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Projekt Meteostanica V2 - uvoľnený zdarma na stiahnutie v plnej verzii.

v Články

0

1268

16.08.2020 0:19

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Hľadám si brigádu ako Arduino/NodeMCU programátor (PHP)

v Dopyt práce

3

4711

18.01.2019 11:15

ironwood

V tomto fóre nie sú ďalšie neprečítané témy.

Smart rekuperacia pomocou ESP8266

v Ostatné

9

286

18.08.2023 15:12

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

Ovládanie hlasom pre Arduino/NodeMCU/ESP32/Raspberry/Orange Pi ... projekty

v Mikropočítače

1

2462

16.09.2017 9:16

ado130

V tomto fóre nie sú ďalšie neprečítané témy.

Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32

v Články

0

1357

05.11.2020 13:02

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Hladinomer - Arduino, ESP32, ESP8266 + ultrazvuk

v Články

0

1742

22.09.2019 0:01

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Kurzy (krypto)mien - Arduino / ESP32 / ESP8266

v Články

0

1435

15.11.2019 1:03

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Autonómne vykurovanie cez internet s ESP8266

v Články

0

3425

15.01.2019 18:21

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

ESP8266 - Ovládanie hlasom cez Amazon Echo Dot

v Články

3

1672

30.05.2020 23:37

stiv

V tomto fóre nie sú ďalšie neprečítané témy.

ThingSpeak - IoT platforma pre Arduino / ESP8266 / ESP32

v Články

0

1768

16.01.2020 23:59

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Wifi teplomer s ESP8266 v STA - AP móde

v Články

0

1205

04.02.2019 0:05

martinius96



© 2005 - 2024 PCforum, edited by JanoF