Sadržaj:
- Korak 1: Specifikacija hardvera i softvera
- Korak 2: Stvaranje zarobljenog portala
- Korak 3: Pružanje WiFi i UbiDots vjerodajnica
- Korak 4: Objavljivanje očitanja senzora na UbiDots
- Korak 5: Vizualizacija podataka
- Korak 6: Opći kod
Video: UbiDots-Povezivanje ESP32 i objavljivanje podataka s više senzora: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
ESP32 i ESP 8266 vrlo su poznati SoC u području IoT -a. To su svojevrsna blagodat za IoT projekte. ESP 32 je uređaj s integriranim WiFi -om i BLE -om. Samo dajte svoje SSID, lozinku i IP konfiguracije i integrirajte stvari u oblak. Ovdje, u ovom uputstvu, razmislit ćemo o nekim od osnovnih pojmova IoT -a poput IoT platforme, MQTT -a, zarobljenih portala itd. Pa idemo kroz to
- IoT arhitektura vrlo jednostavnim riječima sastoji se od ugrađenog uređaja i IoT platforme za stavljanje uređaja u oblak. Ovdje koristimo UbiDots IoT platformu za vizualizaciju podataka senzora.
- Upravljanje IP postavkama i korisničkim vjerodajnicama može biti glavobolja za korisnika. Što ako korisnik želi promijeniti WiFi vjerodajnice? Što ako korisnik želi promijeniti postavke DHCP -a/statičkog IP -a? Svako bljeskanje ESP32 nije pouzdano, pa čak ni rješenje za ove probleme. Zato ćemo proći kroz zarobljeni portal radi spremanja vjerodajnica za WiFi i drugih konfiguracija.
- MQTT sada postaje vrlo uobičajen izraz u svijetu IoT -a. nadmašio je zahtjeve i odgovore (HTTP) od strane Publish and Subscribe zbog brze, robusne i vitke arhitekture.
Ovdje, u ovom uputstvu, pokazat ćemo.
- Davanje vjerodajnica za WiFi i MQTT pomoću Captive Portala.
- Objavljivanje i pretplata više podataka senzora na UbiDots.
- Očitavanje podataka senzora s bežičnih senzora temperature i vlažnosti.
- Hosting web obrasca s ESP32.
- Čitanje i pisanje s SPIFFS ESP32.
Korak 1: Specifikacija hardvera i softvera
- ESP32 WiFi/BLE
- Bežični senzor temperature i vlažnosti
Specifikacije softvera
Arduino IDE
Korak 2: Stvaranje zarobljenog portala
Zarobljeni portal je web stranica koja se prikazuje tek povezanim korisnicima prije nego im se odobri širi pristup mrežnim resursima. Ovdje poslužujemo tri web stranice za odabir između postavki DHCP i statičkih IP adresa. IP adresu ESP -u možemo definirati na dva načina.
- DHCP IP adresa- to je način dinamičkog dodjeljivanja IP adrese uređaju. Zadana IP adresa ESP -a je 192.168.4.1
- Statička IP adresa- dodjeljivanje stalne IP adrese našem mrežnom uređaju. za pružanje statičkog IP -a uređaju moramo definirati IP adresu, adresu pristupnika i masku podmreže.
Prva web stranica nalazi se na 192.168.1.77. Ovdje je korisniku omogućen izborni gumb za odabir između postavki DHCP -a i statičkog IP -a. Na sljedećoj web stranici moramo pružiti informacije povezane s IP -om kako bismo nastavili dalje.
HTML kod
HTML kôd za web stranice možete pronaći u ovom Github spremištu. Možete koristiti bilo koji IDE ili uređivač teksta poput Sublime ili notepad ++ za izradu HTML web stranica.
- Prvo stvorite HTML web stranicu koja sadrži dva radio gumba za odabir između DHCP i postavki statičke IP adrese.
- Sada stvorite gumb za slanje odgovora
- Dajte neki naziv radio gumbima.
- Klasa ESP web poslužitelja uzet će ta imena kao argumente i pomoću tih argumenata dobit će odgovor radijskih gumba
- Sada umetnite gumb 'SUBMIT' da pošaljete odgovor na uređaj. Na ostalim web stranicama imamo tekstualne okvire.
- Unesite vrijednost imena i vrstu unosa u tekstualni okvir i dodajte gumb za slanje da biste 'SUBMIT' poslali odgovor.
- Izradite gumb 'RESET' za poništavanje sadržaja tekstualnog polja.
Korak 3: Pružanje WiFi i UbiDots vjerodajnica
Glavni problem javlja se tijekom upravljanja vjerodajnicama za WiFi. Iako za to imamo WiFiMulti knjižnicu u kojoj možemo dati više SSID -ova i lozinki uređaju, a uređaj će se povezati s dostupnom mrežom. No, što ako dostupna mreža nije na popisu WiFiMulti. Bljeskanje ESP32 uređaja cijelo vrijeme nije pouzdano rješenje.
Da bismo riješili ovaj problem, hostiramo web stranicu na kojoj korisnik može poslati SSID i lozinku dostupne mreže. Radi na sljedeći način.
- Web stranica se nalazi na statičkom IP ili DHCP IP -u prema izboru korisnika sa zarobljenog portala
- Ova web stranica sadrži tekstualna polja za unos SSID -a, lozinke i ID tokena UBIDOTS za povezivanje uređaja s UbiDots -om.
- Unesite SSID i lozinku lokalnog WiFi -a u polja za unos, unesite ID tokena UbiDota i unesite SUBMIT
- Ove vjerodajnice spremaju se u ESPROM ESP32
- Nakon 60 sekundi uređaj će se automatski isključiti iz pristupne točke
- Sljedeći put kada uključite uređaj, korisnik ne mora slijediti ovaj postupak, uređaj će automatski dohvatiti korisničke vjerodajnice s EEPROM -a i nastaviti s objavljivanjem očitanja senzora na UbiDots.
Korak 4: Objavljivanje očitanja senzora na UbiDots
Ovdje koristimo bežične senzore temperature i vlažnosti s uređajem ESP 32 za dobivanje podataka o temperaturi i vlažnosti. Šaljemo podatke na UbiDots koristeći MQTT protokol. MQTT slijedi mehanizam objavljivanja i pretplate, a ne taj zahtjev i odgovor. Brži je i pouzdaniji od HTTP -a. Ovo funkcionira na sljedeći način.
- Koristimo Planer zadataka za planiranje zadatka poput dohvaćanja podataka sa senzora, objavljivanja očitanja senzora, pretplate na temu MQTT.
- Prvo, uključite datoteke zaglavlja Raspoređivača zadataka, njegovu instancu i raspoređuje zadatke.
- Zakazali smo dva zadatka koji se odnose na dvije različite kontrolne operacije.
#define _TASK_TIMEOUT#include
Planer ts;
// --------- Zadaci ------------ // Taster tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Zadatak tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
Zadatak 1 služi za očitavanje vrijednosti senzora. Ovaj zadatak traje 1 sekundu dok ne dosegne prekid od 10 sekundi
- Kad Task1 istekne, povezujemo se s lokalnim Wifi i MQTT posrednikom.
- Sada je omogućen 2. zadatak i onemogućujemo 1. zadatak
-
Zadatak 2 služi za objavljivanje podataka senzora UbiDots MQTT posredniku, ovaj zadatak traje 20 sekundi dok ne dosegne vremensko ograničenje od 20 sekundi
- Kad Task2 istekne vrijeme, Zadatak 1 je ponovno omogućen, a Task2 onemogućen. Ovdje opet dobivamo ažuriranu vrijednost i proces se nastavlja.
Očitavanje podataka senzora I2C
Od bežičnih senzora temperature i vlažnosti dobivamo okvir od 29 bajtova. Ovim se okvirom manipulira kako bi se dobili stvarni podaci o temperaturi i vlažnosti
uint8_t podaci [29];
data [0] = Serial1.read (); kašnjenje (k); // chck za početni bajt if (data [0] == 0x7E) {while (! Serial1.available ()); za (i = 1; i <29; i ++) {podaci = Serial1.read (); odgoda (1); } if (data [15] == 0x7F) /////// da provjerite jesu li primljeni podaci točni {if (data [22] == 1) //////// provjerite vrstu senzora je točno {
vlažnost = ((((podaci [24]) * 256) + podaci [25]) /100,0); vlažnost /=10,0; cTempint = ((((uint16_t) (podaci [26]) << 8) | podaci [27]); cTemp = (float) cTempint /100.0; cTemp /= 10,0; fTemp = cTemp * 1,8 + 32; fTemp /= 10,0; baterija = slučajna (100, 327); napon = baterija/100; nodeId = podaci [16];}
Povezivanje s UbiDots MQTT API
Uključite datoteku zaglavlja za proces MQTT
#uključi
definirajte druge varijable za MQTT poput imena klijenta, adrese brokera, ID tokena (Dohvaćamo ID tokena iz EEPROM -a)
#define MQTT_CLIENT_NAME "ClientVBShightime123"
char mqttBroker = "things.ubidots.com";
char korisni teret [100]; tema char [150];
// izrada varijable za spremanje ID -a tokena
String tokenId;
Izradite varijable za spremanje različitih podataka senzora i stvorite varijablu char za spremanje teme
#define VARIABLE_LABEL_TEMPF "tempF" // Određivanje oznake varijable #define VARIABLE_LABEL_TEMPC "tempC" // Određivanje oznake varijable #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "label
char topic1 [100]; char topic2 [100]; char topic3 [100];
objaviti podatke na spomenutu temu MQTT -a korisni teret će izgledati kao {"tempc": {value: "tempData"}}
sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (korisni teret, "%s", ""); // Čisti sprintf korisnog tereta (korisni teret, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Dodaje vrijednost sprintf (korisni teret, "%s {" vrijednost / ":%s}", korisni teret, str_cTemp); // Dodaje vrijednost sprintf (korisni teret, "%s}", korisni teret); // Zatvara zagrade rječnika Serial.println (korisni teret); Serial.println (client.publish (topic1, korisni teret)? "Objavljeno": "nije objavljeno");
// Učinite isto i za drugu temu
client.publish () objavljuje podatke na UbiDots
Korak 5: Vizualizacija podataka
- Idite na Ubidots i prijavite se na svoj račun.
- Idite na nadzornu ploču s kartice Podaci navedene na vrhu.
- Sada kliknite ikonu "+" za dodavanje novih widgeta.
- Odaberite widget s popisa i dodajte varijablu i uređaje.
- Podaci senzora mogu se vizualizirati na nadzornoj ploči pomoću različitih widgeta.
Korak 6: Opći kod
Over kod za HTML i ESP32 može se pronaći u ovom GitHub spremištu.
Zasluge
- ncd ESP32 ploča za probijanje.
- ncd Bežični osjetnici temperature i vlage.
- pubsubclient
- UbiDots
- Planer zadataka
Preporučeni:
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD karticom - DHT11 Simulator zapisivača podataka u Proteusu: 5 koraka
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD karticom | Simulacija DHT11 zapisničara u Proteusu: Uvod: Bok, ovdje Liono Maker, ovdje je veza na YouTube. Radimo na kreativnom projektu s Arduinom i radimo na ugrađenim sustavima. Zapisnik podataka: Zapisnik podataka (ujedno i zapisnik podataka ili snimač podataka) je elektronički uređaj koji bilježi podatke tijekom vremena s
Slanje podataka-of-IOT-bežičnog-senzora temperature i vlažnosti-senzora-u-MySQL: 41 korak
Slanje-IOT-bežičnih-senzora temperature-i-vlažnosti-osjetnika-za-slanje-u-MySQL: predstavljanje NCD-ovog dugoročnog IoT osjetnika temperature i vlažnosti. S rasponom do 28 milja i bežičnom mrežnom arhitekturom, ovaj senzor prenosi podatke o vlažnosti (± 1,7%) i temperaturi (± 0,3 ° C) u intervalima koje definira korisnik, spavajući
Objavljivanje podataka o bežičnom osjetniku tlaka pomoću MQTT -a: 7 koraka
Objavljivanje podataka o bežičnom osjetniku tlaka pomoću MQTT -a: ESP32 i ESP 8266 vrlo su poznati SoC u području IoT -a. To su svojevrsna blagodat za IoT projekte. ESP 32 je uređaj s integriranim WiFi -om i BLE -om. Samo dajte svoje SSID, lozinku i IP konfiguracije i integrirajte stvari u
EAL-Industri4.0-RFID skupljanje podataka do baze podataka: 10 koraka (sa slikama)
EAL-Industri4.0-RFID skupljanje podataka u bazi podataka: Dette projekt omhandler opsamling iz v æ gtdata, registracija od identiteta vha. RFID, zaostajanje podataka u MySQL bazi podataka. node-RED, samo ažuriranje i ponašanje u skladu s opsamlede podacima u et C# programu formiranim u aplikaciji Windows Form
Samostalno objavljivanje e-knjige o aplikaciji za iPhone: 6 koraka
Samostalno objavljivanje e-knjige o aplikaciji za iPhone: Moje ime je Noble Smith i ja sam objavljeni dramaturg, su-izvršni producent nagrađivanog filma Protagonist (Netflix), objavljeni romanopisac (audio knjiga iTunes ukradena od Cigana) i autor knjige e -knjiga iPhone aplikacija Warrior (iTunes App Store) .Getti