Tartalomjegyzék:
- 1. lépés: ESP32 Pinout
- 2. lépés: NodeMCU Pinout
- 3. lépés: MQTT
- 4. lépés: Összeszerelés
- 5. lépés: Diagram
- 6. lépés: Könyvtárak
- 7. lépés: Hőmérséklet és páratartalom olvasókönyvtár
- 8. lépés: MQTT könyvtár
- 9. lépés: MQTT.ino
- 10. lépés: Grafikus
- 11. lépés: Fájlok
Videó: IBM Watson ESP32 végponttal: 11 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Ma közzéteszem itt az első videót egy sorozatról, amely arról szól, hogyan lehet Endpoint eszközt ESP32 -vel felszerelni, majd elküldeni egy felhőszolgáltatáshoz. Ebben a konkrét epizódban megmutatom, hogyan lehet információt küldeni egy DHT22 érzékelőből az IBM Watson MQTT protokolljával.
Először bemutatjuk az MQTT-t, amely gépek közötti protokoll, amelyet az IoT (Internet of Things) használ. A protokoll használatával adatokat küldünk a hőmérséklet- és páratartalom -érzékelőről is, majd ellenőrizzük a grafikont ezen adatokkal egy weboldalon.
1. lépés: ESP32 Pinout
Itt helyeztem el az ESP32 Pinout -ját, amelyet példánkban használunk. Szeretném azonban világossá tenni, hogy a projekt ESP8266 -al is működik, és még ugyanazzal a forráskóddal is.
2. lépés: NodeMCU Pinout
3. lépés: MQTT
Az MQTT egy gépek közötti protokoll, amelyet az IoT-ban használnak. Úgy tervezték, hogy könnyű és gyors legyen. Feliratkozási/közzétételi rendszert használ, ahol egy eszköz "feliratkozik" egy témára az Ön számára érdekes információkkal, majd megkapja az információkat, amikor egy eszköz közzéteszi a témával kapcsolatos adatokat.
A szerverprogramokhoz hasonlóan az MQTT szoftverre is szüksége van. Ezt Brókernek hívják. Ebben a konkrét esetben az IBM Bluemix IoT szolgáltatását fogjuk használni. Ez a szolgáltatás ingyenes a végpont teszteléséhez.
Ezután rendelkeznünk kell egy mobiltelefonnal vagy táblagéppel az Alkalmazás oldallal, azaz MQTT ügyfélként. Rendelkezünk a készülék oldallal is, amely az ESP oldala, hőmérővel. Ez elküldi a hőmérséklet- és páratartalom -adatokat a Bluemix -hez, amely ezt követően elküldi ezeket az információkat az alkalmazásoldalra.
4. lépés: Összeszerelés
Az áramkörünk egy 4,7 k ohmos ellenállásból áll a 3,3 V és az adatcsap között, valamint egy DHT22 -ből, amely egy ESP32 vagy NodeMCU GPIO4 -hez van csatlakoztatva. Így ez a végpontunk.
5. lépés: Diagram
Itt bemutatom az MQTT Local Brokerrel való együttműködés számos módját. Két diagrammodellt helyeztem el. A videóban egy olyan helyzetről beszélek, amelyen például egy Raspberry Pi -t használnak a kapu megnyitásához.
A fenti képen megvan az első architektúra, amely kitartóan használ helyi bróker, és egy második architektúra, amely csak a felhőben kommunikál a közvetítővel.
Az ábrán látható módon érzékelőnk elküldi a hőmérséklet és páratartalom adatait az IBM Watson -nak. Fontos hangsúlyozni, hogy az IBM Watson ebben az esetben nem írja az adatokat, mivel csak grafikonokon jelennek meg. Ennek az az oka, hogy a mai példában nem foglalkozunk semmilyen adatbázis -művelettel, hanem csak a gyorsindító oldalhoz (https://quickstart.internetofthings.ibmcloud.com/) való hozzáférést jelezzük, amely megjeleníti a végpont állapotát. A rendszer egyszerű, és WiFi -t használ az adatok küldéséhez.
6. lépés: Könyvtárak
Az Arduino IDE -ben lépjen a Vázlat menübe -> Könyvtár bevonása -> Könyvtárak kezelése…
A megnyíló képernyőn írja be a "DHT" keresést, és telepítse a "DHT szenzortár" kifejezést.
Ezután írja be a "PubSubClient" parancsot, és telepítse a "PubSubClient" lib.
7. lépés: Hőmérséklet és páratartalom olvasókönyvtár
8. lépés: MQTT könyvtár
9. lépés: MQTT.ino
A forráskódot azzal kezdjük, hogy ellenőrizzük, melyik ESP -t használjuk, és importáljuk a megfelelő könyvtárat és WiFi -t. Továbbra is tartalmazza az MQTT Libeket és a hőmérséklet- és páratartalom -érzékelőt.
// Verifica quality ESP está sendo utilizado // e importa a lib e wifi levelező #if meghatározott (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de Temperature e umidade #include
Ezután a következőket határozzuk meg: az adatküldések közötti időköz, a használni kívánt MQTT -kiszolgáló, a diagram nyomtatási információi és az azonosító. Arra is felhívtuk a figyelmet, hogy milyen legyen a QUICK_START karakterlánc.
// Intervalo entre os envios #define INTERVAL 1000 // Substitua pelo SSID da sua rede #define SSID "TesteESP" // Substitua pela senha da sua rede #define PASSWORD "87654321" // Szerver 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:";
Ebben a lépésben egyedi azonosítót definiálunk. Ebben a példában a használt eszköz MAC -címét használjuk. Ez azonosításként szolgál a QuickStart webhelyen. Itt is összekapcsoljuk a gyorsindító azonosítót a készülékünk azonosítójával.
// 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;
Ezután konfiguráljuk az MQTT -t és a WiFi -t, valamint a hőmérséklet és páratartalom értékeivel kapcsolatos objektumokat és változókat.
// Cliente WiFi que o MQTT ira utilizar para se conectarWiFiClient wifiClient; // Client MQTT, passamos url do server, porta // e vagy kliens WiFi PubSubClient kliens (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 páratartalom = 0;
MQTT.ino - beállítás
A beállításban inicializáljuk a DHT -t, és csatlakozunk a WiFi hálózathoz és az MQTT szerverhez.
void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos à rede WiFi setupWiFi (); // Conectamos ao szerver MQTT connectMQTTServer (); }
MQTT.ino - hurok
A ciklusban összegyűjtjük az érzékelő adatait, hogy létrehozzuk azt a Json -t, amely az IBM Watson által a grafikon előállítására váró témakörben jelenik meg.
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 ("Üzenet közzététele:"); // Criamos o json que enviaremos para o server mqtt String msg = createJsonString (); Serial.println (msg); // Publicamos no tópico onde o servidor espera para receber // e gerar o gráfico client.publish (TOPIC_NAME, msg.c_str ()); }}
MQTT.ino - Wi -Fi beállítása
Itt a WiFi hálózathoz való csatlakozásért felelős funkcióval rendelkezünk.
// Função responseavel por conectar à rede WiFivoid setupWiFi () {Serial.println (); Serial.print ("Csatlakozás"); Serial.print (SSID); // Manda o esp se conectar à rede através // do ssid e senha WiFi.begin (SSID, JELSZÓ); // Espera até que a conexão com a rede seja estabelecida while (WiFi.status ()! = WL_CONNECTED) {delay (500); Soros.nyomtatás ("."); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println ("WiFi csatlakoztatva"); }
MQTT.ino - connectMQTTServer
Ebben a lépésben az MQTT szerverhez való csatlakozásért felelős funkciót használjuk.
// Função responseavel by conectar ao server MQTTvoid connectMQTTServer () {Serial.println ("Csatlakozás az MQTT szerverhez …"); // Se conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ())) {// Se a conexão foi bem sucedida Serial.println ("connected"); } else {// Se ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}
MQTT.ino - readSensor
Ez a funkció határozza meg a hőmérséklet és páratartalom adatait.
// Função responsável por realizar a leitura // da temperatura e umidade void readSensor () {float value; // Faz a leitura da temperatura value = dht.readTemperature (); // Se o valor lido é válido if (! Isnan (érték)) {// Armazena o novo valor da temperatura hőmérséklet = érték; } // Faz a leitura da umidade value = dht.readHumidity (); // Se o valor for válido if (! Isnan (value)) {// Armazena o novo valor da umidade páratartalom = érték; }}
MQTT.ino - createJsonString
Itt a funkció felelős a Json létrehozásáért az olvasott adatokkal.
// Função responseável por criar // um Json com os dados lidos String createJsonString () {String data = "{"; adatok+= "\" d / ": {"; adatok+= "\" hőmérséklet / ":"; adatok+= String (hőmérséklet); adatok+= ","; adatok+= "\" páratartalom / ":"; adatok+= String (páratartalom); adatok+= "}"; adatok+= "}"; adatok visszaadása; }
10. lépés: Grafikus
Az érzékelő grafikonjának megtekintéséhez lépjen
a https://quickstart.internetofthings.ibmcloud.com címre
Az Eszközazonosító mezőbe írja be a kódban megadott DEVICE_ID azonosítót.
- Fontos, hogy ezt az eszközazonosítót egyedi azonosítóra változtassa, amelyet csak azért használnak, hogy elkerüljék a más személy által küldött adatokkal való ütközést.
Végül fogadja el a feltételeket, majd kattintson az Ugrás gombra.
Ebben a projektben teszteltük a végpontunkat az IBM Watson szerveren. Ez biztosítja, hogy Arduino programunk megfelelően kommunikáljon a platformmal, és hogy az általunk küldött adatokat zökkenőmentesen fogadja a felhőszolgáltatás, ha fiókot hozunk létre.
A sorozat egy soron következő videójában megmutatom, hogyan kell bejelentkezni az IBM Watson -ba, valamint írni kell ennek vagy egy másik felhőszolgáltatásnak, például a Google -nak, az Amazonnak az adatbankjába.
11. lépés: Fájlok
Töltse le a fájlokat:
ÉN NEM
Ajánlott:
Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Mesterséges Con Watson: 11 lépés
Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson: En este Instructable aprenderemos como hacer un dispensador de alimento para sus mascotas, por lo general, o al menos en mi caso siempre he querido hacer un dispensador autom á tico, sin embgogo, un perro y un gato. Por ende no tengo una
LED bekapcsolása Watson -beszélgetéssel: 6 lépés
Kapcsoljon be egy LED -et Watson -beszélgetéssel: Amire szüksége lesz: Zagros Mesterséges Intelligencia Raspberry Pi Kit
Első lépések az ESP32 -vel - ESP32 táblák telepítése Arduino IDE - -be ESP32 villogó kód: 3 lépés
Első lépések az ESP32 -vel | ESP32 táblák telepítése Arduino IDE | -be ESP32 villogó kód: Ebben az utasításban látni fogjuk, hogyan kell elkezdeni az esp32 -vel való munkát, és hogyan kell telepíteni az esp32 táblákat az Arduino IDE -be, és beprogramozzuk az esp 32 -et, hogy futtassa a villogó kódot az arduino ide használatával
IoT hidroponika - Az IBM Watson használata PH és EC mérésekhez: 7 lépés (képekkel)
IoT hidroponika - Az IBM Watson használata PH és EC mérésekhez: Ez az oktatóanyag bemutatja, hogyan kell figyelni a hidroponikai beállítások EC -jét, pH -ját és hőmérsékletét, és feltölteni az adatokat az IBM Watson szolgáltatásába. Watson szabadon kezdheti. Vannak fizetett tervek, de az ingyenes terv több mint elég ehhez a projekthez
Bank Boss - Watson játék: 6 lépés (képekkel)
Bank Boss - Watson játék: A Winchester művészeti iskola (Southamptoni Egyetem) Jam csapatának 3 napja volt, hogy készítsen egy erőforrás -kezelő játékot az IBM Watson API rendszerei segítségével, hogy olyan játékot hozzon létre, amelyet teljes mértékben a beszéd irányít. ennek a játéknak a létrehozásához