Sisällysluettelo:
- Vaihe 1: ESP32 Pinout
- Vaihe 2: NodeMCU Pinout
- Vaihe 3: MQTT
- Vaihe 4: Kokoonpano
- Vaihe 5: Kaavio
- Vaihe 6: Kirjastot
- Vaihe 7: Lämpötilan ja kosteuden lukukirjasto
- Vaihe 8: MQTT -kirjasto
- Vaihe 9: MQTT.ino
- Vaihe 10: Graafinen
- Vaihe 11: Tiedostot
Video: IBM Watson, jonka päätepisteenä on ESP32: 11 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Lähetän tänne tänään ensimmäisen videon sarjasta, jossa kerrotaan, miten päätelaite asennetaan ESP32: lla ja lähetän sitten pilvipalveluun. Tässä jaksossa näytän sinulle, kuinka voit lähettää tietoja DHT22 -anturista käyttämällä IBM Watsonin MQTT -protokollaa.
Esittelemme ensin MQTT: n, joka on koneiden välinen protokolla, jota käytetään esineiden internetissä (Internet of Things). Lähetämme myös tietoja lämpötila- ja kosteusanturista käyttämällä tätä protokollaa ja tarkistamme sitten kaavion näillä tiedoilla verkkosivulla.
Vaihe 1: ESP32 Pinout
Laitoin tähän ESP32: n Pinoutin, jota käytämme esimerkissämme. Haluan kuitenkin tehdä selväksi, että projekti toimii myös ESP8266: n kanssa ja jopa samalla lähdekoodilla.
Vaihe 2: NodeMCU Pinout
Vaihe 3: MQTT
MQTT on koneiden välinen protokolla, jota käytetään IoT: ssä. Se on suunniteltu kevyeksi ja nopeaksi. Se käyttää tilaus-/julkaisujärjestelmää, jossa laite "tilaa" aiheen kiinnostavilla tiedoilla ja vastaanottaa tiedot aina, kun laite julkaisee aihetta koskevia tietoja.
Palvelinohjelman tavoin MQTT tarvitsee ohjelmiston. Tätä kutsutaan välittäjäksi. Tässä tapauksessa käytämme IBM: n Bluemix IoT -palvelua. Tämä palvelu on ilmainen päätepisteiden testaamiseen.
Seuraavaksi meillä on oltava matkapuhelin tai tabletti, jossa on sovelluspuoli eli MQTT -asiakas. Meillä on myös laitepuoli, joka on ESP -puoli lämpömittarin kanssa. Tämä lähettää lämpötila- ja kosteustiedot Bluemix -laitteelle, joka lähettää nämä tiedot sovelluspuolelle.
Vaihe 4: Kokoonpano
Piirimme koostuu 4,7 k ohmin vastuksesta 3,3 V: n ja datatapin välillä sekä DHT22: sta, joka on kytketty ESP32: n tai NodeMCU: n GPIO4: ään. Tämä on siis päätepisteemme.
Vaihe 5: Kaavio
Näytän tässä useita tapoja työskennellä MQTT Local Brokerin kanssa. Laitoin kaksi kaaviomallia. Videolla puhun tilanteesta, jossa esimerkiksi Raspberry Pi avataan portti.
Yllä olevassa kuvassa meillä on ensimmäinen arkkitehtuuri, joka käyttää paikallista välittäjää pysyvästi, ja toinen arkkitehtuuri alla, joka kommunikoi vain välittäjän kanssa pilvessä.
Kuten kaaviosta näkyy, anturi lähettää sitten lämpötila- ja kosteustiedot IBM Watsonille. On tärkeää korostaa, että IBM Watson ei kirjoita tietoja tässä tapauksessa, koska ne näytetään vain kaavioina. Tämä johtuu siitä, että emme käsittele tietokantatoimintoja tämän päivän esimerkissä, vaan ilmoitamme vain pääsyn Pika -aloitussivulle (https://quickstart.internetofthings.ibmcloud.com/), joka näyttää päätepisteen tilan. Järjestelmä on yksinkertainen ja käyttää tiedonsiirtoon WiFi -yhteyttä.
Vaihe 6: Kirjastot
Siirry Arduino IDE: ssä Luonnos -valikkoon -> Sisällytä kirjasto -> Hallitse kirjastoja…
Kirjoita avautuvalla näytöllä hakuun "DHT" ja asenna lib "DHT -anturikirjasto"
Kirjoita sitten "PubSubClient" ja asenna "PubSubClient" lib.
Vaihe 7: Lämpötilan ja kosteuden lukukirjasto
Vaihe 8: MQTT -kirjasto
Vaihe 9: MQTT.ino
Aloitamme lähdekoodin tarkistamalla, mitä ESP: tä käytetään, ja tuomalla vastaava kirjasto ja WiFi. Mukana on edelleen MQTT Libs sekä lämpötila- ja kosteusanturi.
// Verifica quality ESP está sendo utilizado // e importa a lib e wifirespondente #if define (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de Temperature e umidade #include
Seuraavaksi määritämme seuraavat: tietojen lähettämisen välinen aika, käytettävä MQTT -palvelin, kaavion tulostustiedot ja tunnus. Huomasimme myös, kuinka merkkijonon QUICK_START pitäisi olla.
// Intervalo entre os envios #define INTERVAL 1000 // Substitua pelo SSID da sua rede #define SSID "TesteESP" // Substitua pela senha da sua rede #define SALASANA "87654321" // Palvelimen MQTT que iremos utlizar #define MQTT_SERVER ".messaging.internetofthings.ibmcloud.com "// Nome do tópico que devemos enviar os dados // para que eles apareçam nos gráficos #define TOPIC_NAME" iot-2/evt/status/fmt/json "// ID que usaremos para conectar // QUICK_START deve permanecer como está const String QUICK_START = "d: quickstart: arduino:";
Tässä vaiheessa määritämme yksilöllisen tunnuksen. Tässä esimerkissä käytämme käyttämämme laitteen MAC -osoitetta. Tämä toimii tunnisteena QuickStart -sivustossa. Yhdistämme tässä myös pikakäynnistystunnuksen laitteemme tunnukseen.
// No DEVICE_ID você deve mudar para um id único // Aqui nesse examplelo utilizamos o MAC Address // do dispositivo que estamos utilizando // Servirá como identifação no site //https://quickstart.internetofthings.ibmcloud.com const String DEVICE_ID = "240ac40e3fd0"; // Concatemos o id do quickstart com o id do nosso // dispositivo const String CLIENT_ID = QUICK_START + DEVICE_ID;
Sitten määritämme MQTT: n ja WiFi: n sekä lämpötilan ja kosteuden arvoihin liittyvät objektit ja muuttujat.
// Asiakas WiFi -que tai MQTT, jota käytetään Wi -FiClient wifiClient -yhteydessä; // Client MQTT, passamos a url do server, a porta // e tai asiakas WiFi PubSubClient client (MQTT_SERVER, 1883, wifiClient); // Tempo em que o último envio foi feito long lastPublishTime = 0; // Objeto que realiza a leitura da temperatura e da umidade DHT dht (4, DHT22); // Variável para guardarmos o valor da temperatura float temperature = 0; // Variável para guardarmos o valor da umidade float kosteus = 0;
MQTT.ino - asennus
Asetuksissa alustamme DHT: n ja muodostamme yhteyden WiFi -verkkoon ja MQTT -palvelimeen.
void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos Wi -Fi -asetukset Wi -Fi (); // Conectamos -palvelin MQTT connectMQTTServer (); }
MQTT.ino - silmukka
Keräämme silmukkaan anturitietoja luodaksemme Jsonin, joka julkaistaan aiheessa, jonka IBM Watson odottaa tuottavan kaavion.
void loop () {// Tempos agora em milisegundos long now = millis (); // Se o tempo desde o último envio for maior que o intervalo de envio if (now - lastPublishTime> INTERVAL) {// Atualizamos o tempo em que ocorreu o último envio lastPublishTime = now; // Fazemos a leitura da temperatura e umidade readSensor (); Serial.print ("Julkaise viesti:"); // Criamos o json que enviaremos para server server mqtt String msg = createJsonString (); Sarja.println (msg); // Publicamos no tópico onde o servidor espera para receber // // gerar o gráfico client.publish (TOPIC_NAME, msg.c_str ()); }}
MQTT.ino - setupWiFi
Tässä meillä on toiminto, joka vastaa yhteyden muodostamisesta WiFi -verkkoon.
// Hauskat vastaukset WiFivoid setupWiFi () {Serial.println (); Serial.print ("Yhdistäminen"); Serial.print (SSID); // Manda o esp se conectar à rede através // do ssid e senha WiFi.begin (SSID, SALASANA); // Espera até que a conexão com a rede seja estabelecida while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } // Katso chegou aqui é porque conectou Serial.println (""); Serial.println ("WiFi -yhteys"); }
MQTT.ino - connectMQTTServer
Tässä vaiheessa käytämme toimintoa, joka vastaa yhteyden muodostamisesta MQTT -palvelimeen.
// Toiminnallinen vastaus palvelimen MQTTvoid connectMQTTServer () {Serial.println ("Yhdistäminen MQTT -palvelimeen…"); // Se conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ())) {// Se a conexão foi bem sucedida Serial.println ("connected"); } else {// Katso ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}
MQTT.ino - readSensor
Lämpötila- ja kosteustietojen lukeminen määritetään tässä toiminnossa.
// Funktionaalinen vastaus portaalin toteutumiseen // lämpötila ja umidade void readSensor () {float value; // Faz a leitura da temperatura value = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (value)) {// Armazena o novo valor da temperatura temperature = arvo; } // Faz a leitura da umidade value = dht.readHumidity (); // Se o valor for válido if (! Isnan (value)) {// Armazena o novo valor da umidade kosteus = arvo; }}
MQTT.ino - createJsonString
Tässä meillä on toiminto, joka vastaa Jsonin luomisesta luetuilla tiedoilla.
// Função responseável por criar // um Json com os dados lidos String createJsonString () {String data = "{"; data+= "\" d / ": {"; data+= "\" lämpötila / ":"; data+= merkkijono (lämpötila); data+= ","; data+= "\" kosteus / ":"; data+= merkkijono (kosteus); data+= "}"; data+= "}"; palauttaa tiedot; }
Vaihe 10: Graafinen
Voit tarkastella anturikaaviota siirtymällä
osoitteeseen
Kirjoita Laitetunnus -kenttään DEVICE_ID, jonka määritit koodissa.
- On tärkeää vaihtaa tämä laitetunnus yksilölliseksi tunnukseksi, jota käytetään vain välttääkseen ristiriidan toisen henkilön lähettämien tietojen kanssa.
Hyväksy lopuksi ehdot ja napsauta Siirry.
Tässä projektissa testasimme päätepistettämme IBM Watson -palvelimella. Tämä varmistaa, että Arduino -ohjelmamme kommunikoi oikein alustan kanssa ja että lähettämämme tiedot vastaanotetaan sujuvasti pilvipalvelun kautta, jos luomme tilin.
Sarjan tulevassa videossa näytän, kuinka kirjaudun IBM Watsoniin, ja kirjoitan muun muassa tämän tai toisen pilvipalvelun, kuten Googlen, Amazonin, tietopankkiin.
Vaihe 11: Tiedostot
Lataa tiedostot:
INO
Suositeltava:
LED Snapper: Todennäköisesti yksinkertaisin testilaite, jonka voit tehdä: 3 vaihetta
LED Snapper: Todennäköisesti yksinkertaisin testauslaite, jonka voit tehdä: Salli minun esitellä sinulle LED Snapper. Yksinkertainen, mutta erittäin hyödyllinen testilaite, jonka voit rakentaa helpottamaan elektroniikkaprojektien virheenkorjausta. LED Snapper on avoimen lähdekoodin painettu piirilevy, jonka avulla voit helposti lisätä
"Huomaa laatikko" - malli, jonka voit sovittaa oman pään sisälle: 7 vaihetta
"Heeds the Box" - malli, joka mahtuu hänen päänsä sisään: Olin kuullut japanilaisista pahvileluista, joissa päästä tuli koko mallin säilytyslaatikko. Yritin löytää sellaisen netistä, mutta epäonnistui. Tai ehkä onnistuin, mutta en voinut lukea japanilaista käsikirjoitusta? Anyhoo, päätin tehdä oman
Nike LED Swoosh! Tämä on loistava sisustus huoneeseen. Tämä on yksi projekti, jonka jokainen voi toistaa: 5 vaihetta
Nike LED Swoosh! Tämä on loistava sisustus huoneeseen. Tämä on yksi projekti, jonka jokainen voi toistaa. 2x puu 20-20-3000 2x vaneri 500-1000mm ruuvit (45mm) 150x ruuvit (35mm) 30x
Opas, jonka toivoisin Arduino -dronin rakentamiseen: 9 vaihetta
Opas, jonka toivoisin olevani Arduino -dronin rakentamisessa: Tämä asiakirja on eräänlainen”Ohje” -viiva -dokumentaatio, joka käy läpi prosessin, joka vei minut ymmärtämään käsitteet saavuttaakseni tavoitteeni rakentaa yksinkertainen nelikopteri, jota voisin hallita matkapuhelimestani.Tämän projektin toteuttamiseksi halusin
Biohajoavuuskoe, jonka voit tehdä lasten kanssa!: 8 vaihetta
Biohajoavuuskoe, jonka voit tehdä lasten kanssa !: On selvää, että kiehuva vesi ei ole aivan kuin kompostointiolosuhteet tai hidas, luonnollinen biohajoamisprosessi. Voit kuitenkin simuloida (jossain määrin) tapaa, jolla tietyt materiaalit hajoavat muihin verrattuna, kun energiaa, kuten lämpöä, käytetään