Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevok: 1 ] 
AutorSpráva
Offline

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

Registrovaný: 17.02.14
Prihlásený: 31.03.24
Príspevky: 450
Témy: 198
Bydlisko: Poprad-okolie
Príspevok NapísalOffline : 06.02.2019 2:03

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


Odpovedať na tému [ Príspevok: 1 ] 


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

990

10.01.2020 18:25

martinius96 Zobrazenie posledných príspevkov

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

v Mikropočítače

1

673

24.12.2017 1:36

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Meteostanica s Arduinom a Ethernet Shieldom - HTTP

v Mikropočítače

0

726

16.09.2017 14:32

martinius96 Zobrazenie posledných príspevkov

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

2704

20.10.2019 14:19

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. P: NodeMCU v3 a Basekit

v Predám

1

455

18.06.2017 1:01

martinius96 Zobrazenie posledných príspevkov

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

1100

16.08.2020 0:19

martinius96 Zobrazenie posledných príspevkov

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

4648

18.01.2019 11:15

ironwood Zobrazenie posledných príspevkov

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

v Ostatné

9

220

18.08.2023 15:12

Fico Zobrazenie posledných príspevkov

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

2070

16.09.2017 9:16

ado130 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladinomer - Arduino, ESP32, ESP8266 + ultrazvuk

v Články

0

1299

22.09.2019 0:01

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladinomer + Zrážkomer - Arduino / ESP8266 / ESP32

v Články

0

930

05.11.2020 13:02

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Autonómne vykurovanie cez internet s ESP8266

v Články

0

3350

15.01.2019 18:21

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Kurzy (krypto)mien - Arduino / ESP32 / ESP8266

v Články

0

1021

15.11.2019 1:03

martinius96 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ESP8266 - Ovládanie hlasom cez Amazon Echo Dot

v Články

3

1234

30.05.2020 23:37

stiv Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. ThingSpeak - IoT platforma pre Arduino / ESP8266 / ESP32

v Články

0

1328

16.01.2020 23:59

martinius96 Zobrazenie posledných príspevkov

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

1161

04.02.2019 0:05

martinius96 Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra