Sisällysluettelo:
- Vaihe 1: Laitteisto- ja ohjelmistomääritykset
- Vaihe 2: vangitsevan portaalin luominen
- Vaihe 3: WiFi- ja UbiDots -käyttöoikeustietojen tarjoaminen
- Vaihe 4: Anturilukujen julkaiseminen UbiDotsiin
- Vaihe 5: Tietojen visualisointi
- Vaihe 6: Yleinen koodi
Video: UbiDots-ESP32: n yhdistäminen ja useiden anturitietojen julkaiseminen: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
ESP32 ja ESP 8266 ovat hyvin tuttuja SoC IoT -alalla. Nämä ovat eräänlainen siunaus IoT -projekteille. ESP 32 on laite, jossa on integroitu WiFi ja BLE. Anna vain SSID, salasana ja IP -määritykset ja integroi asiat pilveen. Tässä tässä ohjeessa pohdimme joitain IoT: n perusehtoja, kuten IoT -alusta, MQTT, vankeusportaalit jne. Joten käydään se läpi
- IoT -arkkitehtuuri koostuu hyvin yksinkertaisesti sanottuna sulautetusta laitteesta ja IoT -alustasta laitteen asettamiseksi pilveen. Täällä käytämme UbiDots IoT -alustaa visualisoimaan anturitietoja.
- IP -asetusten ja käyttäjätietojen hallinta voi olla päänsärky käyttäjälle. Mitä jos käyttäjä haluaa muuttaa WiFi -tunnistetietoja? Entä jos käyttäjä haluaa vaihtaa DHCP/Staattinen IP -asetuksia? ESP32: n vilkkuminen joka kerta ei ole luotettava eikä edes ratkaisu näihin ongelmiin. Joten käymme läpi vankeusportaalin tallentaaksemme WiFi -tunnistetiedot ja muut kokoonpanot.
- MQTT: stä on tulossa hyvin yleinen termi IoT -maailmassa. se on ohittanut julkaisun ja tilauksen pyynnöt ja vastaukset (HTTP) nopean, vankan ja kevyen arkkitehtuurin vuoksi.
Tässä tässä ohjeessa aiomme osoittaa.
- WiFi- ja MQTT -tunnistetietojen antaminen Captive Portal -palvelun avulla.
- Useiden anturitietojen julkaiseminen ja tilaaminen UbiDotsiin.
- Anturitietojen lukeminen langattomista lämpötila- ja kosteusantureista.
- Verkkolomakkeen ylläpito ESP32: sta.
- Lukeminen ja kirjoittaminen SPIFFS ESP32: sta.
Vaihe 1: Laitteisto- ja ohjelmistomääritykset
- ESP32 WiFi/BLE
- Langaton lämpötila- ja kosteusanturi
Ohjelmiston tiedot
Arduino IDE
Vaihe 2: vangitsevan portaalin luominen
Kytketty portaali on verkkosivu, joka näytetään äskettäin yhdistetyille käyttäjille ennen kuin heille annetaan laajempi pääsy verkkoresursseihin. Tässä palvelemme kolmea verkkosivua, joista voit valita DHCP- tai staattisen IP -asetuksen välillä. voimme määrittää IP -osoitteen ESP: lle kahdella tavalla.
- DHCP IP-osoite- se on tapa määrittää IP-osoite dynaamisesti laitteelle. ESP: n oletus -IP -osoite on 192.168.4.1
- Staattinen IP-osoite- pysyvän IP-osoitteen määrittäminen verkkolaitteellemme. jotta voimme tarjota laitteelle staattisen IP -osoitteen, meidän on määritettävä IP -osoite, yhdyskäytävän osoite ja aliverkon peite.
Ensimmäistä verkkosivua isännöidään osoitteessa 192.168.1.77. Tässä käyttäjä voi valita DHCP- ja Staattinen IP -asetusten välillä. Seuraavalla verkkosivulla meidän on annettava IP -tiedot, jotta voimme jatkaa eteenpäin.
HTML -koodi
Verkkosivujen HTML -koodi löytyy tästä Github -tietovarastosta. Voit käyttää mitä tahansa IDE- tai tekstieditoria, kuten Sublime tai muistilehtiö ++ HTML -verkkosivujen luomiseen.
- Luo ensin HTML -verkkosivu, joka sisältää kaksi valintanappia valitaksesi DHCP- tai Staattiset IP -asetukset.
- Luo nyt painike lähettääksesi vastauksesi
- Anna valintanäppäimille jokin nimi.
- ESP -verkkopalvelinluokka ottaa nämä nimet argumentteiksi ja saa valintanappien vastauksen käyttämällä näitä argumentteja
- Lisää nyt "Lähetä" -painike lähettääksesi vastauksen laitteelle. Muilla verkkosivuilla on tekstiruutuja.
- Anna nimen arvo ja syöttötyyppi tekstikenttään ja lisää Lähetä -painike "Lähetä" vastauksen lähettämiseen.
- Luo RESET -painike nollataksesi tekstikentän sisällön.
Vaihe 3: WiFi- ja UbiDots -käyttöoikeustietojen tarjoaminen
Suurin ongelma ilmenee WiFi -tunnistetietojen hallinnassa. Vaikka meillä on WiFiMulti -kirjasto, jossa voimme antaa laitteelle useita SSID -tunnuksia ja salasanoja ja laite muodostaa yhteyden käytettävissä olevaan verkkoon. Mutta entä jos käytettävissä oleva verkko ei ole WiFiMulti -luettelossa. ESP32 -laitteen vilkkuminen jatkuvasti ei ole luotettava ratkaisu.
Tämän ongelman ratkaisemiseksi isännöimme verkkosivua, jossa käyttäjä voi lähettää käytettävissä olevan verkon SSID -tunnuksen ja salasanan. Se toimii seuraavasti.
- Verkkosivua isännöidään staattisella IP- tai DHCP -IP -osoitteella, jonka käyttäjä on valinnut kytkösportaalista
- Tämä verkkosivu sisältää tekstikenttiä SSID: n, salasanan ja UBIDOTS -tunnuksen syöttämiseksi laitteen yhdistämiseksi UbiDots -laitteeseen.
- Kirjoita paikallisen WiFi -verkon SSID ja salasana syöttökenttiin, kirjoita UbiDot -tunnuksen tunnus ja kirjoita LÄHETÄ
- Nämä kirjautumistiedot tallennetaan ESP32: n EEPROM -tiedostoon
- 60 sekunnin kuluttua laite katkaisee yhteyden AP: hen automaattisesti
- Seuraavan kerran, kun käynnistät laitteen, käyttäjän ei tarvitse noudattaa tätä menettelyä. Laite hakee käyttäjän tunnistetiedot automaattisesti EEPROMista ja jatkaa anturien lukemien julkaisemista UbiDots -laitteeseen.
Vaihe 4: Anturilukujen julkaiseminen UbiDotsiin
Täällä käytämme langattomia lämpötila- ja kosteusantureita ESP 32 -laitteen kanssa lämpötila- ja kosteustietojen saamiseksi. Lähetämme tiedot UbiDotsille käyttäen MQTT -protokollaa. MQTT noudattaa julkaisu- ja tilausmekanismia pikemminkin kuin pyyntöä ja vastausta. Se on nopeampi ja luotettavampi kuin HTTP. Tämä toimii seuraavasti.
- Käytämme Tehtävien ajoitus -toimintoa tehtävän ajoittamiseen, kuten tietojen noutamiseen antureista, anturilukemien julkaisemiseen, MQTT -tilaukseen.
- Sisällytä ensin Task Scheduler -otsikkotiedostot, sen ilmentymä ja aikatauluta tehtävät.
- Olemme suunnitelleet kaksi tehtävää, jotka viittaavat kahteen eri ohjaustoimintoon.
#define _TASK_TIMEOUT#include
Ajastin ts;
// --------- Tehtävät ------------ // Tehtävä tSensor (4 * TASK_SECOND, TASK_FOREVER, & taskSensorCallback, & ts, false, NULL ja & taskSensorDisable); Tehtävä tWiFi (10* TASK_SECOND, TASK_FOREVER, & taskWiFiCallback, & ts, false, NULL ja & taskWiFiDisable);
Tehtävä 1 on anturin arvon lukemiseen, tämä tehtävä kestää 1 sekunnin, kunnes se saavuttaa 10 sekunnin aikakatkaisun
- Kun Task1 saavuttaa aikansa, muodostamme yhteyden paikalliseen Wifi- ja MQTT -välittäjään.
-
Nyt tehtävä 2 on käytössä ja poistamme tehtävän 1 käytöstä
- Tehtävä 2 on anturitietojen julkaiseminen UbiDots MQTT -välittäjälle, tämä tehtävä kestää 20 sekuntia, kunnes se saavuttaa 20 sekunnin aikakatkaisun
- Kun tehtävä2 saavuttaa aikakatkaisunsa, tehtävä 1 on jälleen käytössä ja tehtävä 2 on poistettu käytöstä. Täällä taas saamme päivitetyn arvon ja prosessi jatkuu.
I2C -anturitietojen lukeminen
Saamme 29 tavun kehyksen langattomista lämpötila- ja kosteusantureista. Tätä kehystä käsitellään todellisten lämpötila- ja kosteustietojen saamiseksi
uint8_t -tiedot [29];
data [0] = Sarja1.luku (); viive (k); // chck for start byte if (data [0] == 0x7E) {while (! Serial1.available ()); for (i = 1; i <29; i ++) {data = Serial1.read (); viive (1); } if (data [15] == 0x7F) /////// tarkistaaksesi, että recive -tiedot ovat oikein {if (data [22] == 1) //////// varmista, että anturin tyyppi on oikein {
kosteus = (((((tiedot [24]) * 256) + tiedot [25]) /100,0); kosteus /=10,0; cTempint = (((uint16_t) (data [26]) << 8) | data [27]); cTemp = (kelluva) cTempint /100,0; cTemp /= 10,0; fTemp = cTemp * 1,8 + 32; fTemp /= 10,0; akku = satunnainen (100, 327); jännite = akku/100; nodeId = data [16];}
Yhdistetään UbiDots MQTT -sovellusliittymään
Sisällytä MQTT -prosessin otsikkotiedosto
#sisältää
määritä muut muuttujat MQTT: lle, kuten asiakkaan nimi, välittäjän osoite, tunnuksen tunnus (haemme tunnuksen tunnusta EEPROMista)
#define MQTT_CLIENT_NAME "ClientVBShightime123"
char mqttBroker = "things.ubidots.com";
char -hyötykuorma [100]; char -aihe [150];
// luo muuttuja tunnuksen tunnisteen tallentamiseen
Merkkijono tokenId;
Luo muuttujia eri anturitietojen tallentamiseen ja luo char -muuttuja aiheen tallentamiseen
#define VARIABLE_LABEL_TEMPF "tempF" // Muuttujan tunnisteen määrittäminen #define VARIABLE_LABEL_TEMPC "tempC" // Muuttujan tunnisteen määrittäminen #define VARIABLE_LABEL_BAT "bat" #define VARIABLE_LABEL_HUMID "kostea muuttuja" // Assing
char topic1 [100]; char topic2 [100]; char topic3 [100];
julkaise tiedot mainitussa MQTT -aiheessa, hyötykuorma näyttää tältä: {"tempc": {value: "tempData"}}
sprintf (aihe1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (hyötykuorma, "%s", ""); // Puhdistaa hyötykuorman sprintf (hyötykuorma, "{"%s / ":", VARIABLE_LABEL_TEMPC); // Lisää arvon sprintf (hyötykuorma, "%s {" arvo / ":%s}", hyötykuorma, str_cTemp); // Lisää arvon sprintf (hyötykuorma, "%s}", hyötykuorma); // Sulkee sanaston hakasulkeet Serial.println (hyötykuorma); Serial.println (client.publish (aihe1, hyötykuorma)? "Published": "notpublished");
// Tee sama myös muille aiheille
client.publish () julkaisee tiedot UbiDotsissa
Vaihe 5: Tietojen visualisointi
- Siirry Ubidotsiin ja kirjaudu tiliisi.
- Siirry hallintapaneeliin ylhäällä olevasta Tiedot -välilehdestä.
- Napsauta nyt "+" -kuvaketta lisätäksesi uudet widgetit.
- Valitse widget luettelosta ja lisää muuttuja ja laitteet.
- Anturitiedot voidaan visualisoida kojelaudalla eri widgetien avulla.
Vaihe 6: Yleinen koodi
HTML- ja ESP32 -tiedostojen ylikoodi löytyy tästä GitHub -arkistosta.
Laajuus
- ncd ESP32 katkaisulauta.
- ncd Langattomat lämpötila- ja kosteusanturit.
- pubiasiakas
- UbiDots
- Tehtävien ajoitus
Suositeltava:
Valo- ja lämpötila -anturitietojen lukeminen ja piirtäminen Raspberry Pi: llä: 5 vaihetta
Valo- ja lämpötila -anturitietojen lukeminen ja piirtäminen Raspberry Pi: n avulla: Tässä opetusohjelmassa opit lukemaan valo- ja lämpötila -anturin vadelma pi: n ja ADS1115 -analogia -digitaalimuuntimen avulla ja piirtämään sen matplotlibin avulla. Aloitetaan tarvittavista materiaaleista
Ohjattavan julkaiseminen: 7 vaihetta
Ohjeen julkaiseminen: Joten olet päättänyt siirtyä lukemisesta ohjekirjojen luomiseen? Mutta … sinulla ei ole aavistustakaan, miten tehdä mitään? No on erittäin helppoa, joten opetan askel askeleelta kuinka luoda opastettava
HELPPO Arduino OLED -anturitietojen näyttö: 4 vaihetta
HELPPO Arduino OLED -anturinäyttö: Jos olet koskaan työskennellyt Arduinon kanssa, olet luultavasti halunnut sen näyttävän anturilukemat. liikaa nastoja. Tietysti on parempi
Langattomien anturitietojen visualisointi Google -kaavioiden avulla: 6 vaihetta
Langattomien anturitietojen visualisointi Google Chartsin avulla: Koneiden ennakoiva analyysi on erittäin välttämätöntä koneen seisokkien minimoimiseksi. Säännöllinen tarkastus pidentää koneen käyttöaikaa ja parantaa sen vikasietoisuutta. Langaton tärinä- ja lämpötila -anturi
Useiden painikkeiden yhdistäminen yhteen nastaan Arduinossa: 4 vaihetta
Useiden painikkeiden yhdistäminen yhteen nastaan Arduinossa: Hei kaikki! Näytän sinulle temppun, jota voit käyttää, jos sinulla voi olla useita painikkeita, jotka kaikki on kytketty samaan analogiseen nastaan