Përmbajtje:
- Hapi 1: Specifikimet e harduerit dhe softuerit
- Hapi 2: Krijimi i një Portali të Kapur
- Hapi 3: Sigurimi i kredencialeve WiFi dhe UbiDots
- Hapi 4: Publikimi i leximeve të sensorëve në UbiDots
- Hapi 5: Vizualizimi i të dhënave
- Hapi 6: Kodi i përgjithshëm
Video: UbiDots-Lidhja e një ESP32 dhe publikimi i të dhënave të shumëfishta të sensorit: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:19
ESP32 dheESP 8266 janë SoC shumë të njohura në fushën e IoT. Këto janë një lloj ndihme për projektet IoT. ESP 32 është një pajisje me WiFi dhe BLE të integruar. Thjesht jepni konfigurimin tuaj SSID, fjalëkalimin dhe IP dhe integroni gjërat në cloud. Këtu në këtë udhëzues, Ne do të meditojmë përmes disa prej kushteve themelore të IoT si platforma IoT, MQTT, Portalet e Kapur etj. Pra, le të kalojmë nëpër të
- Arkitektura IoT me fjalë shumë të thjeshta përbëhet nga një pajisje e ngulitur dhe platforma IoT për ta vënë pajisjen në re. Këtu po përdorim platformën UbiDots IoT për të vizualizuar të dhënat e sensorit.
- Menaxhimi i cilësimeve IP dhe kredencialet e përdoruesit mund të jetë një dhimbje koke për përdoruesit. Po nëse Përdoruesi dëshiron të ndryshojë kredencialet WiFi? Po sikur përdoruesi të ndryshojë cilësimet e DHCP/IP statike? Ndezja e ESP32 çdo herë nuk është e besueshme dhe as zgjidhje për këto probleme. Pra, ne do të kalojmë përmes portalit të kapur për të ruajtur kredencialet WiFi dhe konfigurimet e tjera.
- MQTT tani po bëhet një term shumë i zakonshëm në botën IoT. ka tejkaluar kërkesën dhe përgjigjet (HTTP) nga Publish and Subscribe për shkak të arkitekturës së shpejtë, të fuqishme dhe të dobët.
Këtu në këtë udhëzues, ne do të demonstrojmë.
- Dhënia e kredencialeve WiFi dhe MQTT duke përdorur Portalin e Kapur.
- Publikimi dhe Abonimi i të dhënave të shumta të Sensorit në UbiDots.
- Leximi i të dhënave të sensorit nga sensorët e temperaturës dhe lagështisë pa tela.
- Pritja e një forme uebi nga ESP32.
- Leximi dhe Shkrimi nga SPIFFS ESP32.
Hapi 1: Specifikimet e harduerit dhe softuerit
- ESP32 WiFi/BLE
- Sensori i temperaturës dhe lagështisë pa tel
Specifikimi i Softuerit
Arduino IDE
Hapi 2: Krijimi i një Portali të Kapur
Një portal i kapur është një faqe në internet që u shfaqet përdoruesve të sapo lidhur para se t'u jepet qasje më e gjerë në burimet e rrjetit. Këtu po shërbejmë tre faqe në internet për të zgjedhur midis DHCP dhe cilësimeve IP statike. ne mund të përcaktojmë adresën IP të ESP në dy mënyra.
- Adresa IP DHCP- është një mënyrë për të caktuar në mënyrë dinamike adresën IP të pajisjes. Adresa IP e paracaktuar e ESP është 192.168.4.1
- Adresa IP statike- caktimi i një Adrese IP të përhershme në pajisjen tonë të rrjetit. për të siguruar IP statike për pajisjen duhet të përcaktojmë adresën IP, adresën e portës dhe maskën e nën -rrjetës.
Faqja e parë në internet po mbahet në 192.168.1.77. Këtu Përdoruesi pajiset me butonat e radios për të zgjedhur midis cilësimeve të DHCP dhe IP statike. Në faqen tjetër, ne duhet të sigurojmë informacionin e lidhur me IP për të vazhduar më tej.
Kodi HTML
Kodi HTML për faqet e internetit mund të gjendet në këtë depo Github. Ju mund të përdorni çdo IDE ose redaktues teksti si Sublime ose notepad ++ për të bërë faqe në internet HTML.
- Së pari krijoni një faqe në internet HTML që përmban dy butona radio për të zgjedhur midis DHCP dhe cilësimeve IP statike.
- Tani krijoni butonin për të paraqitur përgjigjen tuaj
- Jepni ndonjë emër butonave të radios.
- Klasa e serverit ESP në internet do t'i marrë këto emra si argumente dhe do të marrë përgjigjen e butonave të radios duke përdorur këto argumente
- Tani futni një buton 'SUBMIT' për të dërguar përgjigjen në pajisje. Në faqet e tjera të internetit, ne kemi kuti teksti.
- Jepni vlerën e emrit dhe llojin e hyrjes në kutinë e tekstit dhe shtoni një buton dorëzimi në 'PUBRDORIM' dorëzoni përgjigjen.
- Krijoni një buton 'RESET' për të rivendosur përmbajtjen e fushës së tekstit.
Hapi 3: Sigurimi i kredencialeve WiFi dhe UbiDots
Problemi kryesor ndodh gjatë menaxhimit të kredencialeve të WiFi. Edhe pse kemi bibliotekë WiFiMulti për atë ku mund të japim SSID dhe fjalëkalime të shumta në pajisje dhe pajisja do të lidhet me rrjetin në dispozicion. Por, çfarë nëse rrjeti i disponueshëm nuk është në listën WiFiMulti. Ndezja e pajisjes ESP32 gjatë gjithë kohës nuk është një zgjidhje e besueshme.
Për të zgjidhur këtë problem, Ne po presim një faqe në internet ku përdoruesi mund të paraqesë SSID dhe Fjalëkalimin e rrjetit në dispozicion. Punon si më poshtë.
- Faqja e internetit mbahet në IP statike ose IP DHCP siç zgjidhet nga përdoruesi nga portali i kapur
- Kjo faqe në internet përmban fusha teksti për të futur SSID, fjalëkalim dhe ID -në e shenjës UBIDOTS për të lidhur pajisjen me UbiDots.
- Vendosni SSID -in dhe fjalëkalimin e WiFi -it tuaj lokal në fushat e hyrjes, futni ID -në e UbiDot -it dhe futni NUBNSHIRIM
- Këto kredenciale ruhen në EEPROM të ESP32
- Pas 60 sekondash Pajisja do të shkëputet automatikisht nga AP
- Herën tjetër kur të ndizni pajisjen, Përdoruesi nuk duhet të ndjekë këtë procedurë, Pajisja do të marrë automatikisht kredencialet e përdoruesit nga EEPROM dhe do të vazhdojë me publikimin e leximeve të sensorit në UbiDots.
Hapi 4: Publikimi i leximeve të sensorëve në UbiDots
Këtu ne po përdorim sensorë pa temperaturë dhe lagështi pa tel me pajisjen ESP 32 për të marrë të dhënat e temperaturës dhe lagështisë. Ne po i dërgojmë të dhënat në UbiDots duke përdorur protokollin MQTT. MQTT ndjek një mekanizëm publikimi dhe abonimi më tepër se kërkesën dhe përgjigjen. Isshtë më i shpejtë dhe i besueshëm se HTTP. Kjo funksionon si më poshtë.
- Ne po përdorim Task Scheduler për të planifikuar detyrën si marrja e të dhënave nga sensorët, Publikimi i leximeve të sensorëve, Abonimi në temën MQTT.
- Së pari, përfshini skedarët e titullit të Task Scheduler, është shembulli dhe cakton detyrat.
- Ne kemi planifikuar dy detyra që i referohen dy operacioneve të ndryshme të kontrollit.
#define _TASK_TIMEOUT#përfshijnë
Planifikues ts;
// --------- Detyrat ------------ // Detyra tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL, & taskSensorDisable); Detyra tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL, & taskWiFiDisable);
Detyra 1 është për të lexuar vlerën e sensorit, kjo detyrë funksionon për 1 sekondë derisa të arrijë afatin prej 10 sekondash
- Kur Task1 arrin kohën e tij Ne jemi duke u lidhur me ndërmjetësin lokal Wifi dhe MQTT.
-
Tani Detyra 2 është aktivizuar dhe ne po e çaktivizojmë Detyrën 1
- Detyra 2 është për publikimin e të dhënave të sensorit tek ndërmjetësi UbiDots MQTT, kjo detyrë funksionon për 20 sekonda derisa të arrijë afatin prej 20 sekondash
- Kur Task2 arrin kohën e vet, Detyra 1 aktivizohet përsëri dhe Task2 është çaktivizuar. Këtu përsëri, ne po marrim vlerën e përditësuar dhe procesi vazhdon.
Leximi i të dhënave të sensorit I2C
Ne po marrim një kornizë 29-bajtësh nga sensorët e temperaturës dhe lagështisë pa tela. Ky kuadër është manipuluar për të marrë të dhënat aktuale të temperaturës dhe lagështisë
uint8_t të dhëna [29];
të dhënat [0] = Serial1.lex (); vonesa (k); // kontrolloni për fillimin e bajtit nëse (të dhënat [0] == 0x7E) {ndërsa (! Serial1.disponueshëm ()); për (i = 1; i <29; i ++) {të dhënat = Serial1.lex (); vonesa (1); } nëse (të dhënat [15] == 0x7F) /////// për të kontrolluar nëse të dhënat e nxjerra janë të sakta {nëse (të dhënat [22] == 1) //////// sigurohuni që lloji i sensorit eshte e sakte {
lagështia = ((((të dhënat [24]) * 256) + të dhënat [25]) /100.0); lagështia /=10.0; cTempint = ((((uint16_t) (të dhëna [26]) << 8) | të dhëna [27]); cTemp = (noton) cTempint /100.0; cTemp /= 10.0; fTemp = cTemp * 1.8 + 32; fTemp /= 10.0; bateri = e rastësishme (100, 327); tension = bateri/100; nodeId = të dhënat [16];}
Lidhja me UbiDots MQTT API
Përfshini skedarin e kokës për procesin MQTT
#përfshi
përcaktoni variabla të tjerë për MQTT si emri i klientit, adresa e ndërmjetësit, ID -ja e shenjës (Ne po marrim ID -në e shenjës nga EEPROM)
#përcakto MQTT_CLIENT_NAME "KlientiVBShightime123"
char mqttBroker = "things.ubidots.com";
ngarkesa char [100]; tema char [150];
// krijoni ndryshore për të ruajtur ID -në e shenjës
Shenja e vargutId;
Krijoni variabla për të ruajtur të dhëna të ndryshme të sensorit dhe krijoni një ndryshore char për të ruajtur temën
#define VARIABLE_LABEL_TEMPF "tempF" // Vlerësimi i etiketës së ndryshores #define VARIABLE_LABEL_TEMPC "tempC" // Vlerësimi i etiketës së ndryshueshme #përcaktoni VARIABLE_LABEL_BAT "bat" #përcaktoni VARIABLE_LABEL_HUMID "etiketën e lagësht" // Vlerësimi
tema char1 [100]; tema e kar22 [100]; tema char3 [100];
publikoni të dhënat në temën e përmendur MQTT, ngarkesa do të duket si {"tempc": {vlera: "tempData"}}
sprintf (tema1, "%s", ""); sprintf (tema1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (ngarkesa, "%s", ""); // Pastron sprintf -in e ngarkesës (ngarkesa, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Shton vlerën sprintf (ngarkesa, "%s {" vlera / ":%s}", ngarkesa, str_cTemp); // Shton vlerën sprintf (ngarkesa, "%s}", ngarkesa); // Mbyll kllapat e fjalorit Serial.println (ngarkesa); Serial.println (client.publish (topic1, payload)? "Published": "notpublished");
// Bëni të njëjtën gjë edhe për tema të tjera
client.publish () publikon të dhënat në UbiDots
Hapi 5: Vizualizimi i të dhënave
- Shkoni te Ubidots dhe Hyni në llogarinë tuaj.
- Shkoni te Paneli i Kontrollit nga skeda e të dhënave e shënuar në krye.
- Tani klikoni ikonën "+" për të shtuar widget -et e reja.
- Zgjidhni një widget nga lista dhe shtoni një ndryshore dhe pajisje.
- Të dhënat e sensorit mund të vizualizohen në pult duke përdorur pajisje të ndryshme.
Hapi 6: Kodi i përgjithshëm
Kodi Over për HTML dhe ESP32 mund të gjendet në këtë depo GitHub.
Kredite
- ncd ESP32 bordi i shpërthimit.
- ncd Sensorë të temperaturës pa tel dhe lagështisë.
- pubsubclient
- UbiDots
- Programi i detyrave
Recommended:
Leximi dhe grafikimi i të dhënave të sensorit të dritës dhe temperaturës me mjedër Pi: 5 hapa
Leximi dhe grafikimi i të dhënave të sensorit të dritës dhe temperaturës me Raspberry Pi: Në këtë Udhëzues do të mësoni se si të lexoni një sensor të dritës dhe temperaturës me mjedër pi dhe konvertues analog në digjital ADS1115 dhe ta grafikoni atë duke përdorur matplotlib. Le të fillojmë me materialet e nevojshme
Si të bëni lagështi dhe temperaturë Regjistruese të të dhënave në kohë reale me Arduino UNO dhe SD-Card - Simulimi DHT11 Regjistruesi i të dhënave në Proteus: 5 hapa
Si të bëni lagështi dhe temperaturë Regjistruese të të dhënave në kohë reale me Arduino UNO dhe SD-Card | Simulimi i regjistruesit të të dhënave DHT11 në Proteus: Hyrje: përshëndetje, ky është Liono Maker, këtu është lidhja në YouTube. Ne po bëjmë projekt krijues me Arduino dhe po punojmë në sisteme të ngulitura. Data-Logger: Një regjistrues i të dhënave (gjithashtu regjistrues i të dhënave ose regjistrues i të dhënave) është një pajisje elektronike që regjistron të dhëna me kalimin e kohës me
Ndërtoni një pajisje të sensorit të temperaturës Apple HomeKit duke përdorur një ESP8266 dhe një BME280: 10 hapa
Ndërtoni një pajisje të sensorit të temperaturës Apple HomeKit duke përdorur një ESP8266 dhe një BME280: Në udhëzimet e sotme, ne do të bëjmë sensorë të temperaturës, lagështisë dhe lagështisë me kosto të ulët bazuar në sensorin e temperaturës/lagështisë AOSONG AM2302/DHT22 ose BME280, sensor lagështie YL-69 dhe platformën ESP8266/Nodemcu. Dhe për shfaqjen
Blerja e të Dhënave dhe Sistemi i Vizualizimit të të Dhënave për një Biçikletë Garash MotoStudente Elektrike: 23 hapa
Sistemi i marrjes së të dhënave dhe vizualizimi i të dhënave për një motoçikletë MotoStudent Electric Racing: Një sistem i marrjes së të dhënave është një koleksion i pajisjeve dhe programeve kompjuterike që punojnë së bashku për të mbledhur të dhëna nga sensorë të jashtëm, për t'i ruajtur dhe përpunuar ato më pas në mënyrë që të mund të vizualizohen dhe analizohen, duke lejuar inxhinierët të bëjnë
Publikimi i të dhënave të sensorit të presionit pa tel duke përdorur MQTT: 7 hapa
Publikimi i të dhënave të sensorit të presionit pa tel duke përdorur MQTT: ESP32 dheESP 8266 janë SoC shumë të njohura në fushën e IoT. Këto janë një lloj ndihme për projektet IoT. ESP 32 është një pajisje me WiFi dhe BLE të integruar. Thjesht jepni konfigurimin tuaj SSID, fjalëkalimin dhe IP dhe integroni gjërat në