Kazalo:
- 1. korak: Specifikacije strojne in programske opreme
- 2. korak: Ustvarite portal za ujetništvo
- 3. korak: Zagotavljanje poverilnic za WiFi in UbiDots
- 4. korak: objava odčitkov senzorjev v UbiDots
- 5. korak: Vizualizacija podatkov
- 6. korak: Splošna koda
Video: UbiDots-Povezovanje ESP32 in objava podatkov z več senzorji: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
ESP32 in ESP 8266 sta zelo znana SoC na področju interneta stvari. To je nekakšen dar za projekte IoT. ESP 32 je naprava z vgrajenim WiFi in BLE. Samo podajte svoje nastavitve SSID, geslo in IP ter stvari vključite v oblak. Tukaj, v tem navodilu, bomo razmislili o nekaterih osnovnih pogojih interneta stvari, kot so platforma IoT, MQTT, zaprti portali itd.
- Arhitektura IoT z zelo preprostimi besedami je sestavljena iz vgrajene naprave in platforme IoT, ki napravo postavi v oblak. Tukaj uporabljamo platformo UbiDots IoT za vizualizacijo podatkov senzorja.
- Upravljanje nastavitev IP in uporabniških poverilnic je lahko za uporabnika glavobol. Kaj pa, če želi uporabnik spremeniti poverilnice WiFi? Kaj pa, če želi uporabnik preklopiti nastavitve DHCP/Statični IP? Vsakič utripanje ESP32 ni zanesljivo in niti ni rešitev za te težave. Tako bomo šli skozi zaporni portal, da shranimo poverilnice WiFi in druge konfiguracije.
- MQTT postaja zelo pogost izraz v svetu IoT. zaradi hitre, robustne in vitke arhitekture je presegel zahteve in odzive (HTTP) s strani Publish and Subscribe.
Tukaj v tem navodilu bomo pokazali.
- Dajanje poverilnic za WiFi in MQTT z uporabo Captive Portal.
- Objavljanje in naročanje več podatkov senzorjev na UbiDots.
- Branje podatkov tipala iz brezžičnih senzorjev temperature in vlažnosti.
- Gostovanje spletnega obrazca iz ESP32.
- Branje in pisanje iz SPIFFS ESP32.
1. korak: Specifikacije strojne in programske opreme
- ESP32 WiFi/BLE
- Brezžični senzor temperature in vlažnosti
Specifikacije programske opreme
Arduino IDE
2. korak: Ustvarite portal za ujetništvo
Zaprti portal je spletna stran, ki se prikaže novo povezanim uporabnikom, preden jim odobri širši dostop do omrežnih virov. Tukaj prikazujemo tri spletne strani za izbiro med nastavitvami DHCP in statičnim IP. IP naslov ESP lahko definiramo na dva načina.
- Naslov IP DHCP- to je način za dinamično dodelitev naslova IP napravi. Privzeti naslov IP ESP je 192.168.4.1
- Statični naslov IP- dodelitev stalnega naslova IP naši omrežni napravi. Za zagotovitev statičnega IP -ja napravi moramo določiti naslov IP, naslov prehoda in masko podomrežja.
Prva spletna stran gostuje na naslovu 192.168.1.77. Tu so uporabniku na voljo izbirni gumbi za izbiro med nastavitvami DHCP in statičnega IP. Na naslednji spletni strani moramo za nadaljnjo uporabo posredovati informacije, povezane z IP.
Koda HTML
Kodo HTML za spletne strani najdete v tem skladišču Github. Za izdelavo spletnih strani HTML lahko uporabite kateri koli IDE ali urejevalnik besedil, na primer Sublime ali notepad ++.
- Najprej ustvarite spletno stran HTML, ki vsebuje dva izbirna gumba za izbiro med nastavitvami DHCP in statičnim IP.
- Zdaj ustvarite gumb za pošiljanje svojega odgovora
- Izbirnim gumbom dajte ime.
- Razred spletnega strežnika ESP bo ta imena vzel kot argumente in s temi argumenti dobil odziv izbirnih gumbov
- Zdaj vstavite gumb "POŠLJI", da pošljete odgovor na napravo. Na drugih spletnih straneh imamo polja z besedilom.
- V besedilno polje vnesite vrednost imena in vrsto vnosa ter dodajte gumb za predložitev, da »POŠLJI« pošljite odgovor.
- Ustvarite gumb 'RESET' za ponastavitev vsebine besedilnega polja.
3. korak: Zagotavljanje poverilnic za WiFi in UbiDots
Glavna težava se pojavi pri upravljanju poverilnic WiFi. Čeprav imamo za to knjižnico WiFiMulti, kjer lahko napravi damo več SSID -jev in gesel, naprava pa se bo povezala z razpoložljivim omrežjem. Kaj pa, če razpoložljivega omrežja ni na seznamu WiFiMulti. Nenehno utripanje naprave ESP32 ni zanesljiva rešitev.
Za rešitev te težave gostujemo na spletni strani, kjer lahko uporabnik predloži SSID in geslo razpoložljivega omrežja. Deluje na naslednji način.
- Spletna stran gostuje na statičnem IP ali DHCP IP naslovu, ki ga izbere uporabnik s spletnega portala
- Ta spletna stran vsebuje besedilna polja za vnos SSID, gesla in ID žetona UBIDOTS za povezavo naprave z UbiDots.
- V vnosna polja vnesite SSID in geslo lokalnega WiFi, vnesite ID žetona UbiDot in vnesite SUBMIT
- Te poverilnice se shranijo v EEPROM ESP32
- Po 60 sekundah se naprava samodejno prekine z dostopno točko
- Naslednjič, ko vklopite napravo, uporabniku ni treba upoštevati tega postopka, naprava bo samodejno pridobila uporabniške poverilnice iz EEPROM -a in nadaljevala z objavo odčitkov senzorja v UbiDots.
4. korak: objava odčitkov senzorjev v UbiDots
Tukaj uporabljamo brezžične senzorje temperature in vlažnosti z napravo ESP 32, da dobimo podatke o temperaturi in vlažnosti. Podatke pošiljamo na UbiDots s protokolom MQTT. MQTT sledi mehanizmu objave in naročnine in ne tej zahtevi in odgovoru. Je hitrejši in zanesljivejši od HTTP. To deluje na naslednji način.
- Za načrtovanje naloge uporabljamo načrtovalnik opravil, na primer pridobivanje podatkov iz senzorjev, objavo odčitkov senzorjev, naročanje na temo MQTT.
- Najprej vključite datoteke glave razporejevalnika opravil, njegov primerek in razporedi opravila.
- Načrtovali smo dve nalogi, ki se nanašata na dve različni operaciji nadzora.
#define _TASK_TIMEOUT#include
Načrtovalec ts;
// --------- Opravila ------------ // Task tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL in & taskSensorDisable); Opravilo tWiFi (10* TASK_SECOND, TASK_FOREVER in & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
Naloga 1 je za branje vrednosti senzorja, ki traja 1 sekundo, dokler ne doseže časovne omejitve 10 sekund
- Ko poteče Task1, se povezujemo z lokalnim posrednikom Wifi in MQTT.
- Zdaj je 2. naloga omogočena in onemogočamo 1.
-
Naloga 2 je za objavo podatkov senzorja posredniku UbiDots MQTT, to opravilo traja 20 sekund, dokler ne doseže časovne omejitve 20 sekund
- Ko Task2 poteče, se 1. naloga znova omogoči, Task2 pa onemogoči. Tu spet dobivamo posodobljeno vrednost in postopek se nadaljuje.
Branje podatkov senzorja I2C
Od brezžičnih senzorjev temperature in vlažnosti dobimo 29-bajtni okvir. Ta okvir se manipulira, da dobite podatke o dejanski temperaturi in vlažnosti
uint8_t podatki [29];
podatki [0] = Serial1.read (); zamuda (k); // chck za začetni bajt if (data [0] == 0x7E) {while (! Serial1.available ()); za (i = 1; i <29; i ++) {podatki = Serial1.read (); zamuda (1); } if (data [15] == 0x7F) ///////, da preverite, ali so sprejemljivi podatki pravilni {if (data [22] == 1) //////// se prepričajte o tipu senzorja je pravilen {
vlažnost = ((((podatki [24]) * 256) + podatki [25]) /100,0); vlažnost /=10,0; cTempint = (((uint16_t) (podatki [26]) << 8) | podatki [27]); cTemp = (float) cTempint /100,0; cTemp /= 10,0; fTemp = cTemp * 1,8 + 32; fTemp /= 10,0; baterija = naključna (100, 327); napetost = baterija/100; nodeId = podatki [16];}
Povezovanje z API -jem UbiDots MQTT
Vključite datoteko glave za postopek MQTT
#vključi
določite druge spremenljivke za MQTT, kot so ime odjemalca, naslov posrednika, ID žetona (ID žetona pridobivamo iz EEPROM -a)
#define MQTT_CLIENT_NAME "ClientVBShightime123"
char mqttBroker = "things.ubidots.com";
tovor char [100]; tema char [150];
// ustvari spremenljivko za shranjevanje ID -ja žetona
Niz tokenId;
Ustvarite spremenljivke za shranjevanje različnih podatkov senzorjev in ustvarite spremenljivko char za shranjevanje teme
#define VARIABLE_LABEL_TEMPF "tempF" // Določanje oznake spremenljivke #define VARIABLE_LABEL_TEMPC "tempC" // Določanje oznake spremenljivke #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "label" humid "// Assing the variable label
char topic1 [100]; char topic2 [100]; char topic3 [100];
objavi podatke na omenjeno temo MQTT, bo tovor videti kot {"tempc": {vrednost: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (tema1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (koristna obremenitev, "%s", ""); // Počisti koristno obremenitev sprintf (koristna obremenitev, "{"%s / ":", VARIABLE_LABEL_TEMPC); // doda vrednost sprintf (koristna obremenitev, "%s {" vrednost / ":%s}", koristna obremenitev, str_cTemp); // doda vrednost sprintf (koristna obremenitev, "%s}", koristna obremenitev); // Zapira slovarske oklepaje Serial.println (koristna obremenitev); Serial.println (client.publish (topic1, koristna obremenitev)? "Objavljeno": "ni objavljeno");
// Enako storite tudi za drugo temo
client.publish () objavi podatke v UbiDots
5. korak: Vizualizacija podatkov
- Pojdite na Ubidots in se prijavite v svoj račun.
- Pomaknite se do nadzorne plošče na zavihku Podatki, ki je naveden na vrhu.
- Zdaj kliknite ikono "+", da dodate nove pripomočke.
- Izberite gradnik s seznama in dodajte spremenljivko in naprave.
- Podatke senzorja si lahko ogledate na armaturni plošči z različnimi pripomočki.
6. korak: Splošna koda
Kodo Over za HTML in ESP32 najdete v tem skladišču GitHub.
Krediti
- ncd ESP32 odklopna plošča.
- ncd brezžični senzorji temperature in vlažnosti.
- pubsubclient
- UbiDots
- Načrtovalnik opravil
Priporočena:
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD - Simulacija zapisovalnika podatkov DHT11 v Proteusu: 5 korakov
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD | Simulacija zapisovalnika podatkov DHT11 v Proteusu: Uvod: zdravo, to je Liono Maker, tukaj je povezava YouTube. Z Arduinom ustvarjamo projekt in delamo na vgrajenih sistemih. Data-Logger: Zapisovalnik podatkov (tudi zapisovalnik podatkov ali zapisovalnik podatkov) je elektronska naprava, ki sčasoma beleži podatke z
2.4 TFT vremenska postaja Arduino z več senzorji: 7 korakov
2.4 TFT vremenska postaja Arduino z več senzorji: Prenosna vremenska postaja Arduino z LCD zaslonom TFT in nekaj senzorji
Termometer s temperaturno relativno barvo na 2 "TFT zaslonu in več senzorji: 5 korakov
Termometer s temperaturno relativno barvo na 2 -palčnem TFT zaslonu in več senzorji: naredil sem zaslon, ki prikazuje meritve več temperaturnih senzorjev. Kul je, da se barva vrednosti spreminja s temperaturo: > 75 stopinj Celzija = RDEČA > 60 > 75 = ORANGE > 40 < 60 = YELLOW > 30 < 40
EAM-Industri4.0-RFID zbirka podatkov do baze podatkov: 10 korakov (s slikami)
EAM-Industri4.0-RFID podatkovno razvrščanje podatkovnih zbirk v zbirko podatkov: Dette projekt omhandler opsamling af v æ gtdata, register up identiteter vha. RFID, zaostajanje podatkov v bazi podatkov MySQL vha. node-RED, samostojno obnašanje in ravnanje z opsamlede podatki v programu et C#, ki se oblikujejo v aplikaciji Windows Form.
Objava na BlogSpot po e-pošti: 6 korakov
Objava na BlogSpot po e-pošti: Na svojem spletnem dnevniku BlogSpot lahko objavite po e-pošti. Na žalost lahko pošiljate samo besedilne objave, saj ne sprejemajo slik po e-pošti. Te informacije najdete tudi v razdelku za pomoč Bloggerja