Satura rādītājs:
- 1. darbība: ESP32 Pinout
- 2. solis: NodeMCU Pinout
- 3. darbība: MQTT
- 4. solis: montāža
- 5. solis: diagramma
- 6. darbība: bibliotēkas
- 7. solis: Temperatūras un mitruma lasīšanas bibliotēka
- 8. darbība: MQTT bibliotēka
- 9. solis: MQTT.ino
- 10. darbība: grafika
- 11. darbība: faili
Video: IBM Watson ar ESP32 kā galapunktu: 11 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Šodien es šeit ievietoju sērijas pirmo videoklipu par to, kā uzstādīt Endpoint ierīci ar ESP32 un pēc tam nosūtīt to uz mākoņpakalpojumu. Šajā konkrētajā epizodē es jums parādīšu, kā nosūtīt informāciju no DHT22 sensora, izmantojot MQTT protokolu IBM Watson.
Vispirms iepazīstināsim ar MQTT, kas ir protokols no mašīnām uz mašīnu, ko izmanto lietu internetā (lietiskais internets). Mēs arī nosūtīsim datus no temperatūras un mitruma sensora, izmantojot šo protokolu, un pēc tam pārbaudīsim grafiku ar šiem datiem tīmekļa lapā.
1. darbība: ESP32 Pinout
Es ievietoju šeit ESP32 Pinout, ko mēs izmantojam mūsu piemērā. Tomēr es vēlos paskaidrot, ka projekts darbojas arī ar ESP8266 un pat ar to pašu avota kodu.
2. solis: NodeMCU Pinout
3. darbība: MQTT
MQTT ir protokols no mašīnas uz mašīnu, ko izmanto IoT. Tas tika izstrādāts tā, lai tas būtu viegls un ātrs. Tā izmanto abonēšanas/publicēšanas sistēmu, kurā ierīce "abonē" tēmu ar konkrētu informāciju, kas jūs interesē, un pēc tam saņem informāciju ikreiz, kad ierīce publicē datus par šo tēmu.
Tāpat kā servera programmai, arī MQTT ir nepieciešama programmatūra. To sauc par brokeri. Šajā konkrētajā gadījumā mēs izmantosim IBM Bluemix IoT pakalpojumu. Šis pakalpojums ir bezmaksas parametru pārbaudei.
Tālāk mums ir jābūt mobilajam tālrunim vai planšetdatoram ar lietojumprogrammas pusi, tas ir, kā MQTT klientam. Mums ir arī ierīces puse, kas ir ESP puse ar termometru. Tas nosūta temperatūras un mitruma datus uz Bluemix, kas pēc tam nosūta šo informāciju uz lietojumprogrammu pusi.
4. solis: montāža
Mūsu ķēde sastāv no 4,7 kΩ pretestības starp 3,3 V un datu tapu, kā arī DHT22, kas savienots ar ESP32 vai NodeMCU GPIO4. Tādējādi tas ir mūsu galapunkts.
5. solis: diagramma
Šeit es parādīšu vairākus veidus, kā strādāt ar MQTT vietējo brokeri. Es ievietoju divus diagrammu modeļus. Video es runāju par situāciju, piemēram, izmantojot Raspberry Pi, lai atvērtu vārtus.
Iepriekš redzamajā attēlā mums ir pirmā arhitektūra, kas ar neatlaidību izmanto vietējo starpnieku, un otra arhitektūra zemāk, kas sazinās tikai ar mākoni mākonī.
Kā parādīts diagrammā, mūsu sensors nosūta temperatūras un mitruma datus uz IBM Watson. Ir svarīgi uzsvērt, ka IBM Watson šajā gadījumā datus neraksta, jo tie tiek parādīti tikai diagrammās. Tas ir tāpēc, ka šodienas piemērā mēs nerunāsim par nevienu datu bāzes darbību, bet norādīsim tikai piekļuvi ātrā sākuma lapai (https://quickstart.internetofthings.ibmcloud.com/), kurā tiks parādīts beigu punkta statuss. Shēma ir vienkārša, un datu nosūtīšanai tiek izmantots WiFi.
6. darbība: bibliotēkas
Arduino IDE dodieties uz izvēlni Skice -> Iekļaut bibliotēku -> Pārvaldīt bibliotēkas …
Atvērtajā ekrānā ievadiet meklēšanu "DHT" un instalējiet lib "DHT sensoru bibliotēku"
Pēc tam ierakstiet "PubSubClient" un instalējiet "PubSubClient" lib.
7. solis: Temperatūras un mitruma lasīšanas bibliotēka
8. darbība: MQTT bibliotēka
9. solis: MQTT.ino
Mēs sākam pirmkodu, pārbaudot, kurš ESP tiek izmantots, un importējot atbilstošo bibliotēku un WiFi. Mēs joprojām iekļaujam MQTT Libs un temperatūras un mitruma sensoru.
// 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 temperatura e umidade #include
Tālāk mēs definējam sekojošo: intervālu starp datu iesniegšanu, izmantoto MQTT serveri, diagrammas drukas informāciju un ID. Mēs arī norādījām, kādai jābūt virknei QUICK_START.
// 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" // Servera 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:";
Šajā solī mēs definējam unikālu ID. Šajā piemērā mēs izmantojam izmantotās ierīces MAC adresi. Tas kalpos kā identifikācija QuickStart vietnē. Šeit mēs arī savienojam Quickstart ID ar mūsu ierīces ID.
// Nr DEVICE_ID você deve mudar para um id único // Aqui nesse examplelo utilizamos o MAC Address // do dispitivo que estamos utilizando // Servirá como identification 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;
Pēc tam mēs konfigurējam MQTT un WiFi, kā arī objektus un mainīgos, kas saistīti ar temperatūras un mitruma vērtībām.
// Cliente WiFi que o MQTT ir utilizar para se conectarWiFiClient wifiClient; // Cliente MQTT, passamos url do server, porta // e vai klienta WiFi PubSubClient klients (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 pludiņa mitrums = 0;
MQTT.ino - iestatīšana
Iestatījumos mēs inicializēsim DHT un izveidosim savienojumu ar WiFi tīklu un MQTT serveri.
void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos à rede WiFi setupWiFi (); // Conectamos ao serveris MQTT connectMQTTServer (); }
MQTT.ino - cilpa
Ciklā mēs apkopojam sensora datus, lai izveidotu Json, kas tiks publicēts tēmā, ko IBM Watson sagaida, lai izveidotu diagrammu.
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 ("Publicēt ziņojumu:"); // 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 - setupWiFi
Šeit mums ir funkcija, kas atbild par savienojumu ar WiFi tīklu.
// Funkciju atbilde, izmantojot WiFivoid setupWiFi () {Serial.println (); Serial.print ("Savienojuma izveide"); Serial.print (SSID); // Manda o esp se conectar à rede através // do ssid e senha WiFi.begin (SSID, PASSWORD); // Espera até que a conexão com a rede seja estabelecida while (WiFi.status ()! = WL_CONNECTED) {delay (500); Sērijas nospiedums ("."); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println ("savienots WiFi"); }
MQTT.ino - connectMQTTServer
Šajā solī mēs izmantojam funkciju, kas atbild par savienojumu ar MQTT serveri.
// Funkciju atbilde uz servera MQTTvoid connectMQTTServer () {Serial.println ("Savienojuma izveide ar MQTT serveri …"); // Se conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ())) {// Se a conexão foi bem sucedida Serial.println ("connected"); } cits {// Skatiet ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}
MQTT.ino - lasīt sensoru
Šajā funkcijā ir noteikts temperatūras un mitruma datu nolasījums.
// Função responseá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 (vērtība)) {// Armazena o novo valor da temperatura temperatūra = vērtība; } // Faz a leitura da umidade value = dht.readHumidity (); // Se o valor for válido if (! Isnan (vērtība)) {// Armazena o novo valor da umidade mitrums = vērtība; }}
MQTT.ino - createJsonString
Šeit mums ir funkcija, kas ir atbildīga par Json izveidi ar nolasītajiem datiem.
// Função responseável por criar // um Json com os dados lidos String createJsonString () {String data = "{"; dati+= "\" d / ": {"; dati+= "\" temperatūra / ":"; dati+= virkne (temperatūra); dati+= ","; dati+= "\" mitrums / ":"; dati+= Stīga (mitrums); dati+= "}"; dati+= "}"; atgriezt datus; }
10. darbība: grafika
Lai skatītu sensora diagrammu, dodieties uz
uz
Laukā Ierīces ID ievadiet DEVICE_ID, ko definējāt kodā.
- Ir svarīgi nomainīt šo ierīces ID uz unikālu ID, ko izmanto tikai, lai izvairītos no pretrunām ar citas personas nosūtītajiem datiem.
Visbeidzot, pieņemiet noteikumus un noklikšķiniet uz Sākt.
Šajā projektā mēs pārbaudījām savu parametru IBM Watson serverī. Tas nodrošina, ka mūsu Arduino programma pareizi sazinās ar platformu un ka, izveidojot kontu, mūsu nosūtītos datus vienmērīgi saņems mākoņpakalpojums.
Gaidāmajā šīs sērijas videoklipā es parādīšu, kā pieteikties IBM Watson, kā arī rakstīt šī vai cita mākoņpakalpojuma, piemēram, Google, Amazon, datu bankā.
11. darbība: faili
Lejupielādējiet failus:
ES NĒ
Ieteicams:
Atdzīviniet aizvēsturisko dinozauru IBM PS2 55SX!: 15 soļi
Atdzīviniet aizvēsturisko dinozauru … IBM PS2 55SX! Starp citu, es ieteiktu izlasīt visu informāciju
Dispensador De Alimento Para Múltiples Mascotas Usando Inteligencia Artificial Con Watson: 11 soļi
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 embargo, un perro y un gato. Bet galu galā neviens nav
Darba sākšana ar ESP32 - ESP32 dēļu instalēšana Arduino IDE - ESP32 mirgojošs kods: 3 soļi
Darba sākšana ar ESP32 | ESP32 dēļu instalēšana Arduino IDE | ESP32 mirgošanas kods: šajā pamācībā mēs redzēsim, kā sākt strādāt ar esp32 un kā instalēt esp32 plates Arduino IDE, un mēs programēsim esp 32, lai palaistu mirgojošu kodu, izmantojot arduino ide
IoT hidroponika - IBM Watson izmantošana PH un EC mērījumiem: 7 soļi (ar attēliem)
IoT hidroponika - IBM Watson izmantošana PH un EC mērījumiem: Šī pamācība parādīs, kā uzraudzīt hidroponikas iestatījumu EK, pH un temperatūru un augšupielādēt datus IBM Watson pakalpojumā. Vatsons var brīvi sākt darbu. Ir maksas plāni, taču bezmaksas plāns šim projektam ir vairāk nekā pietiekams
AWS un IBM: IoT pakalpojumu salīdzinājums: 4 soļi
AWS un IBM: IoT pakalpojumu salīdzinājums: Šodien mēs salīdzinām divas kaudzes, kas ļauj izstrādāt IoT lietojumprogrammas, ņemot vērā dažādus pakalpojumu piedāvājumus