Orodha ya maudhui:

IBM Watson Na ESP32 Kama Mwisho: Hatua 11
IBM Watson Na ESP32 Kama Mwisho: Hatua 11

Video: IBM Watson Na ESP32 Kama Mwisho: Hatua 11

Video: IBM Watson Na ESP32 Kama Mwisho: Hatua 11
Video: අජාට phone eka මාට්ටු🤕😬🤒|අජින්ත දිසානායක | A/L combine maths | Current ගියාම පංති ඉවර කරන්නේ කෝමද 2024, Julai
Anonim
Image
Image
Pinout ya ESP32
Pinout ya ESP32

Ninatuma hapa leo video ya kwanza ya safu ya jinsi ya kuweka kifaa cha Endpoint na ESP32, na kisha kuituma kwa huduma ya wingu. Katika kipindi hiki maalum, nitakuonyesha jinsi ya kutuma habari kutoka kwa sensorer ya DHT22 ukitumia itifaki ya MQTT ya IBM Watson.

Kwanza tutaanzisha MQTT, ambayo ni itifaki ya mashine-kwa-mashine inayotumiwa katika IoT (Mtandao wa Vitu). Tutatuma pia data kutoka kwa sensorer ya joto na unyevu kutumia itifaki hii, na kisha angalia grafu na data hii kwenye ukurasa wa wavuti.

Hatua ya 1: ESP32 Pinout

Niliweka hapa Pinout ya ESP32, ambayo tunatumia katika mfano wetu. Walakini, nataka kuweka wazi kuwa mradi pia unafanya kazi na ESP8266, na hata na nambari sawa ya chanzo.

Hatua ya 2: NodeMCU Pinout

NodeMCU Pinout
NodeMCU Pinout

Hatua ya 3: MQTT

MQTT
MQTT

MQTT ni itifaki ya mashine-kwa-mashine inayotumiwa katika IoT. Iliundwa kuwa nyepesi na haraka. Inatumia mfumo wa kujisajili / kuchapisha, ambapo kifaa "hujiandikisha" kwa mada iliyo na habari maalum ya masilahi yako, na kisha hupokea habari wakati wowote kifaa kinapochapisha data kuhusu mada hii.

Kama programu ya seva, MQTT inahitaji programu. Hii inaitwa Broker. Katika kesi hii maalum, tutatumia Huduma ya IBM ya Bluemix IoT. Huduma hii ni bure kwa majaribio ya mwisho.

Ifuatayo, tunahitaji kuwa na simu ya rununu au kompyuta kibao na upande wa Maombi, ambayo ni kama mteja wa MQTT. Pia tuna upande wa Kifaa, ambao ni upande wa ESP na kipima joto. Hii inapeleka data ya joto na unyevu kwenye Bluemix, ambayo hutuma habari hii kwa Upande wa Maombi.

Hatua ya 4: Mkutano

Mkutano
Mkutano

Mzunguko wetu una kipinzani cha 4.7k Ohms kati ya 3.3v na pini ya data, pamoja na DHT22 iliyounganishwa na GPIO4 ya ESP32 au NodeMCU. Kwa hivyo, hii ndio mwisho wetu.

Hatua ya 5: Mchoro

Mchoro
Mchoro
Mchoro
Mchoro

Ninaonyesha hapa njia kadhaa za kufanya kazi na MQTT Broker wa Mtaa. Niliweka mifano miwili ya mchoro. Kwenye video, nazungumza juu ya hali ya kutumia Raspberry Pi kufungua lango, kwa mfano.

Katika picha hapo juu, tuna usanifu wa kwanza ambao hutumia Broker wa karibu na uvumilivu, na usanifu wa pili hapa chini ambao unawasiliana tu na broker katika wingu.

Kama inavyoonyeshwa kwenye mchoro, sensa yetu hutuma data ya joto na unyevu kwa IBM Watson. Ni muhimu kusisitiza kwamba IBM Watson haandiki data katika kesi hii, kwani inaonyeshwa tu kwenye grafu. Hii ni kwa sababu hatutashughulikia shughuli zozote za hifadhidata katika mfano wa leo, lakini tu onyesha ufikiaji wa ukurasa wa Quickstart (https://quickstart.internetofthings.ibmcloud.com/), ambayo itaonyesha hadhi ya Endpoint. Mpango huo ni rahisi na hutumia WiFi kutuma data.

Hatua ya 6: Maktaba

Katika IDE ya Arduino, nenda kwenye menyu ya Mchoro -> Jumuisha Maktaba -> Dhibiti Maktaba…

Kwenye skrini inayofungua, ingiza katika utaftaji "DHT" na usakinishe lib "maktaba ya sensorer ya DHT"

Kisha, andika "PubSubClient" na usakinishe "PubSubClient" lib.

Hatua ya 7: Maktaba ya Kusoma Joto na Unyevu

Maktaba ya Kusoma Joto na Unyevu
Maktaba ya Kusoma Joto na Unyevu

Hatua ya 8: Maktaba ya MQTT

Maktaba ya MQTT
Maktaba ya MQTT

Hatua ya 9: MQTT.ino

Tunaanza nambari ya chanzo kwa kuangalia ni ESP gani inatumiwa na kuagiza maktaba inayofanana na WiFi. Bado tunajumuisha MQTT Libs na Joto na sensorer ya unyevu.

// Verifica qual ESP estendo sendo utilizado // e import a lib e wifi correspondente #if defined (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de temperatura e umidade #include

Ifuatayo, tunafafanua yafuatayo: muda kati ya uwasilishaji wa data, seva ya MQTT ambayo itatumika, habari ya kuchapisha kwenye chati, na kitambulisho. Tulielezea pia jinsi kamba QUICK_START inapaswa kuwa.

// Intervalo entre os envios # define INTERVAL 1000 // Substitua pelo SSID da sua rede #fine SSID "TesteESP" // Substitua pela senha da sua rede #fasili PASSWORD "87654321" // Server MQTT que iremos utlizar #fine MQTT_SERVER "haraka.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 Kamba QUICK_START = "d: haraka: arduino:";

Katika hatua hii, tunafafanua kitambulisho cha kipekee. Katika mfano huu, tunatumia Anwani ya MAC ya kifaa tunachotumia. Hii itatumika kama kitambulisho kwenye wavuti ya QuickStart. Hapa, tunaunganisha pia Kitambulisho cha Haraka na kitambulisho cha kifaa chetu.

// Hakuna kifaa cha DEVICE_ID cha kufanya mudar para um id único // Aqui ense exemplo utilizamos o Anwani ya MAC // utaftaji wa huduma hizi // Servirá como identificaçã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 Kamba CLIENT_ID = QUICK_START + DEVICE_ID;

Kisha tunasanidi MQTT na WiFi, pamoja na vitu na anuwai zinazohusika na maadili ya joto na unyevu.

// Wifi ya Wateja wa MQTT inaweza kutumika kwa matumizi ya WifiMteja wa Wifi ya Wateja; // Cliente MQTT, hupitisha url kufanya seva, porta // e o cliente WiFi PubSubClient mteja (MQTT_SERVER, 1883, wifiClient); // Tempo em que o último envio foi feito long lastPublishTime = 0; // Objeto que realiza a leitura da temperatura and da umidade DHT dht (4, DHT22); // Variável para guardarmos o valor da temperatura float joto = 0; // Variável para guardarmos o valor da umidade kuelea unyevu = 0;

MQTT.ino - kuanzisha

Katika Usanidi, tutasasisha DHT, na tuunganishe kwenye mtandao wa WiFi na seva ya MQTT.

kuanzisha batili () {Serial.begin (115200); // Incializamos o dht dht. Kuanza (); // Conectamos inafanya rede WiFi setupWiFi (); // Conectamos ao server MQTT unganishaMQTTServer (); }

MQTT.ino - kitanzi

Katika Kitanzi, tunakusanya data ya sensorer kuunda Json ambayo itachapishwa katika mada ambayo IBM Watson anatarajia kutoa grafu.

kitanzi batili () {// 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 = sasa; // Fazemos a leitura da temperatura na umidade readSensor (); Serial.print ("Chapisha ujumbe:"); // 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 mteja.chapisha (TOPIC_NAME, msg.c_str ()); }}

MQTT.ino - kuanzishaWiFi

Hapa, tuna jukumu la kuwajibika kwa kuungana na mtandao wa WiFi.

// Função Respável por conectar to rede WiFivoid setupWiFi () {Serial.println (); Serial.print ("Kuunganisha kwa"); Printa ya serial (SSID); // Manda o esp se conectar à rede através // do ssid e senha WiFi.begin (SSID, PASSWORD); // Espera at the conexão com a rede seja solidelecida wakati (WiFi.status ()! = WL_CONNECTED) {kuchelewesha (500); Printa ya serial ("."); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println ("WiFi imeunganishwa"); }

MQTT.ino - unganisha MQTTServer

Katika hatua hii, tunatumia kazi inayohusika na kuungana na seva ya MQTT.

// Função Respável por conectar ao server MQTTvoid connectMQTTServer () {Serial.println ("Kuunganisha kwa Seva ya MQTT…"); // Tafuta maoni kama haya ikiwa (mteja.connect (CLIENT_ID.c_str ())) {// Tazama mfano wa siri ya Serial.println ("imeunganishwa"); } mwingine {// Se ocorreu algum erro Serial.print ("error ="); Serial.println (mteja.state ()); }}

MQTT.ino - somaSensor

Usomaji wa data ya joto na unyevu hufafanuliwa katika kazi hii.

// Função Respável por realizar a leitura // da temperatura na umidade batili readSensor () {float value; // Faz a leitura da temperatura value = dht.readTemperature (); // Se lou valor é válido if (! Isnan (value)) {// Armazena o novo valor da temperatura joto = thamani; } // Faz a leitura da umidade value = dht.readHumidity (); // Angalia nguvu kwa vido ikiwa (! Isnan (thamani)) {// Armazena o valor da umidade humidity = value; }}

MQTT.ino - tengenezaJsonString

Hapa, tuna jukumu la kuwajibika kwa kuunda Json na data iliyosomwa.

// Função Respável por criar // um Json com os dados lidos String createJsonString () {String data = "{"; data + = "\" d / ": {"; data + = "\" joto / ":"; data + = Kamba (joto); data + = ","; data + = "\" unyevu / ":"; data + = Kamba (unyevu); data + = "}"; data + = "}"; data ya kurudi; }

Hatua ya 10: Picha

Picha
Picha
Picha
Picha

Ili kuona grafu ya sensa, nenda

kwa

Kwenye uwanja wa Kitambulisho cha Kifaa, ingiza DEVICE_ID ambayo umefafanua kwenye nambari.

- Ni muhimu kubadilisha Kitambulisho hiki cha kifaa kuwa kitambulisho cha kipekee, kinachotumiwa tu kuzuia mgongano na data iliyotumwa na mtu mwingine.

Mwishowe, kubali masharti na bonyeza Nenda.

Katika mradi huu, tulijaribu Mwisho wetu kwenye seva ya IBM Watson. Hii inahakikisha kuwa mpango wetu wa Arduino unawasiliana vizuri na jukwaa, na kwamba data tunayotuma itapokelewa vizuri na huduma ya wingu ikiwa tutaunda akaunti.

Katika video inayokuja katika safu hii, nitakuonyesha jinsi ya kuingia kwenye IBM Watson, na pia kuandika kwenye daftari la hii au huduma nyingine ya wingu, kama Google, Amazon, kati ya zingine.

Hatua ya 11: Faili

Pakua faili:

PDF

INO

Ilipendekeza: