Բովանդակություն:
- Քայլ 1: ESP32 Pinout
- Քայլ 2: NodeMCU Pinout
- Քայլ 3: MQTT
- Քայլ 4: Հավաքում
- Քայլ 5: Դիագրամ
- Քայլ 6: Գրադարաններ
- Քայլ 7. peratերմաստիճանի և խոնավության ընթերցման գրադարան
- Քայլ 8: MQTT գրադարան
- Քայլ 9: MQTT.ino
- Քայլ 10: Գրաֆիկական պատկեր
- Քայլ 11: Ֆայլեր
Video: IBM Watson ESP32- ով որպես վերջնակետ ՝ 11 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Այսօր այստեղ տեղադրում եմ շարքի առաջին տեսահոլովակը, թե ինչպես կարելի է վերջնական սարքը միացնել ESP32- ով, այնուհետև այն ուղարկել ամպային ծառայության: Այս կոնկրետ դրվագում ես ձեզ ցույց կտամ, թե ինչպես ուղարկել տեղեկատվություն DHT22 սենսորից ՝ օգտագործելով IQM Watson- ի MQTT արձանագրությունը:
Նախ մենք կներկայացնենք MQTT- ը, որը մեքենա-մեքենա արձանագրություն է, որն օգտագործվում է IoT- ում (Իրերի ինտերնետ): Մենք նաև ջերմաստիճանի և խոնավության տվիչից տվյալներ կուղարկենք այս արձանագրության միջոցով, այնուհետև կստուգենք այս տվյալների հետ գրաֆիկը վեբ էջում:
Քայլ 1: ESP32 Pinout
Ես այստեղ տեղադրեցի ESP32- ի Pinout- ը, որը մենք օգտագործում ենք մեր օրինակում: Այնուամենայնիվ, ես ուզում եմ հստակեցնել, որ նախագիծը նույնպես աշխատում է ESP8266- ի և նույնիսկ նույն աղբյուրի կոդի հետ:
Քայլ 2: NodeMCU Pinout
Քայլ 3: MQTT
MQTT- ը մեքենա-մեքենա արձանագրություն է, որն օգտագործվում է IoT- ում: Այն նախագծված էր թեթև և արագ: Այն օգտագործում է բաժանորդագրման/հրապարակման համակարգը, որտեղ սարքը «բաժանորդագրվում» է թեմային ՝ ձեզ հետաքրքրող կոնկրետ տեղեկատվությամբ, այնուհետև ստանում է տեղեկատվությունը, երբ սարքը հրապարակում է տվյալ թեմայի վերաբերյալ տվյալներ:
Սերվերային ծրագրի նման, MQTT- ին անհրաժեշտ է ծրագրային ապահովում: Սա կոչվում է միջնորդ: Այս կոնկրետ դեպքում մենք կօգտագործենք IBM- ի Bluemix IoT ծառայությունը: Այս ծառայությունը անվճար է վերջնական կետի փորձարկման համար:
Հաջորդը, մենք պետք է ունենանք բջջային հեռախոս կամ պլանշետ ՝ Դիմումի կողմով, այսինքն ՝ որպես MQTT հաճախորդ: Մենք ունենք նաև Սարքի կողմը, որը ESP կողմն է `ջերմաչափով: Սա ջերմաստիճանի և խոնավության տվյալները ուղարկում է Bluemix, որն այնուհետև ուղարկում է այս տեղեկությունները Դիմումի Կողքին:
Քայլ 4: Հավաքում
Մեր սխեման բաղկացած է 3.7 վ -ի և տվյալների քորոցի միջև 4.7k Ohms դիմադրիչից, ինչպես նաև DHT22- ից, որը միացված է ESP32- ի կամ NodeMCU- ի GPIO4- ին: Այսպիսով, սա մեր վերջնակետն է:
Քայլ 5: Դիագրամ
Ես այստեղ ցույց եմ տալիս MQTT Local Broker- ի հետ աշխատելու մի քանի եղանակներ: Ես տեղադրեցի դիագրամների երկու մոդել: Տեսահոլովակում ես խոսում եմ մի իրավիճակի մասին, որն օգտագործում է Raspberry Pi- ն, օրինակ, դարպաս բացելու համար:
Վերևի պատկերում մենք ունենք առաջին ճարտարապետությունը, որը համառությամբ օգտագործում է տեղական միջնորդին, և ներքևում գտնվող երկրորդ ճարտարապետությունը միայն շփվում է միջնորդի հետ ամպի մեջ:
Ինչպես ցույց է տրված դիագրամում, մեր տվիչը ջերմաստիճանի և խոնավության տվյալները ուղարկում է IBM Watson- ին: Կարևոր է ընդգծել, որ IBM Watson- ը տվյալ դեպքում տվյալներ չի գրում, քանի որ դրանք ցուցադրվում են միայն գծապատկերներում: Դա պայմանավորված է նրանով, որ այսօրվա օրինակում մենք չենք անդրադառնա տվյալների բազայի որևէ գործողության, այլ միայն մատնանշում ենք մուտքը Quickstart էջ (https://quickstart.internetofthings.ibmcloud.com/), որը կցուցադրի վերջնակետի կարգավիճակը: Սխեման պարզ է և օգտագործում է WiFi ՝ տվյալներ ուղարկելու համար:
Քայլ 6: Գրադարաններ
Arduino IDE- ում գնացեք «Էսքիզ» ընտրացանկ -> ներառել գրադարան -> կառավարել գրադարանները …
Բացվող էկրանին մուտքագրեք «DHT» որոնման մեջ և տեղադրեք lib «DHT տվիչների գրադարան»
Այնուհետև մուտքագրեք «PubSubClient» և տեղադրեք «PubSubClient» lib- ը:
Քայլ 7. peratերմաստիճանի և խոնավության ընթերցման գրադարան
Քայլ 8: MQTT գրադարան
Քայլ 9: MQTT.ino
Մենք սկսում ենք աղբյուրի կոդը ՝ ստուգելով, թե որն է օգտագործվում ESP- ը և ներմուծելով համապատասխան գրադարանը և WiFi- ը: Մենք դեռ ներառում ենք MQTT Libs- ը և ջերմաստիճանի և խոնավության ցուցիչը:
// Verifica qual ESP está sendo utilizado // e importa a lib e wifirespondente #if defined (ESP8266) #include #else #include #endif // Lib de MQTT #include // Lib do sensor de temperatura e umidade #include
Հաջորդը, մենք սահմանում ենք հետևյալը `տվյալների ներկայացման, MQTT սերվերի միջև օգտագործվող միջակայքը, գծապատկերում տպված տեղեկատվությունը և ID- ն: Մենք նաև մատնանշեցինք, թե ինչպիսին պետք է լինի QUICK_START տողը:
// Intervalo entre os envios #define INTERVAL 1000 // Substitua pelo SSID- ը կօգնի #սահմանել SSID «TesteESP» // Փոխարինել այն, ինչպես նաև օգտագործել #define PASSWORD "87654321" // Server MQTT que iremos utlizar #define MQTT_SER.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 մշտական / u200b / u200b ընթացակարգ ՝ որպես լարային QUICK_START = "d: quickstart: arduino:";
Այս քայլում մենք սահմանում ենք եզակի ID: Այս օրինակում մենք օգտագործում ենք մեր օգտագործած սարքի MAC հասցեն: Սա կծառայի որպես նույնականացում QuickStart կայքում: Այստեղ մենք նաև միացնում ենք Quickstart ID- ն մեր սարքի ID- ին:
// Չկա DEVICE_ID ձայնային փոխանցում ՝ ի id id único // Aqui nesse exemplo utilisamos o MAC Address // do dispitivo que estamos useizando // Servirá como identificaçoo no site //https://quickstart.internetofthings.ibmcloud.com const String DEVICE_ID = "240ac40e3fd0"; // Concatemos o id do quickstart com o id do nosso // dispositivo const Լար CLIENT_ID = QUICK_START + DEVICE_ID;
Այնուհետև մենք կարգավորում ենք MQTT և WiFi, ինչպես նաև ջերմաստիճանի և խոնավության արժեքների հետ կապված օբյեկտներն ու փոփոխականները:
// Հաճախորդի WiFi, որը կամ MQTT- ն օգտագործում է conectarWiFiClient wifiClient- ը; // Cliente MQTT, passamos a url do server, porta // e կամ cliente 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 խոնավություն = 0;
MQTT.ino - կարգավորում
Setup- ում մենք նախաստորագրելու ենք DHT- ն և միանալու ենք WiFi ցանցին և MQTT սերվերին:
void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos de rede WiFi setupWiFi (); // Conectamos ao սերվեր MQTT connectMQTTServer (); }
MQTT.ino - հանգույց
Loop- ում մենք հավաքում ենք տվիչների տվյալները ՝ ստեղծելու Json- ը, որը կհրապարակվի այն թեմայում, որը IBM Watson- ն ակնկալում է գրաֆիկի ստեղծումից:
void loop () {// Tempos agora em milisegundos երկար հիմա = 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 ("Հրապարակել հաղորդագրությունը."); // Criamos o json que enviaremos կամ 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
Այստեղ մենք ունենք WiFi ցանցին միանալու համար պատասխանատու գործառույթ:
// Funchão responsável for conectar à rede WiFivoid setupWiFi () {Serial.println (); Serial.print («Միացում»); 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) {հետաձգում (500); Serial.print ("."); } // Se chegou aqui é porque conectou Serial.println (""); Serial.println («WiFi միացված է»); }
MQTT.ino - միացրեք MQTTS սերվեր
Այս քայլում մենք օգտագործում ենք MQTT սերվերին միանալու համար պատասխանատու գործառույթը:
// Ֆունկցիոնալ պատասխան ՝ կոնտակտային կամ սերվերի MQTTvoid connectMQTTServer () {Serial.println ("Միացում MQTT սերվերին …"); // Se conecta ao id que definimos if (client.connect (CLIENT_ID.c_str ())) {// Se a conexão foi bem sucedida Serial.println («կապված»); } else {// Se ocorreu algum erro Serial.print ("error ="); Serial.println (client.state ()); }}
MQTT.ino - readSensor
Այս գործառույթում սահմանվում է ջերմաստիճանի և խոնավության տվյալների ընթերցումը:
// 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 (արժեքը)) {// Armazena o novo valor da temperatura temperature = value; } // Faz a leitura da umidade value = dht.readHumidity (); // Se o valor for válido if (! Isnan (արժեք)) {// Armazena o novo valor da umidade խոնավություն = արժեք; }}
MQTT.ino - ստեղծելJsonString
Այստեղ մենք ունենք գործառույթ, որը պատասխանատու է ընթերցված տվյալներով Json ստեղծելու համար:
// Função responsável por criar // um Json com os dados lidos String createJsonString () {String data = "{"; տվյալներ+= "\" d / ": {"; տվյալներ+= "\" ջերմաստիճան / ":"; տվյալներ+= լարային (ջերմաստիճան); տվյալներ+= ","; տվյալներ+= "\" խոնավություն / ":"; տվյալներ+= Լար (խոնավություն); տվյալներ+= "}"; տվյալներ+= "}"; վերադարձնել տվյալները; }
Քայլ 10: Գրաֆիկական պատկեր
Սենսորների գրաֆիկը դիտելու համար գնացեք
դեպի
Սարքի ID դաշտում մուտքագրեք DEVICE_ID- ը, որը սահմանել եք ծածկագրում:
- Կարևոր է փոխել այս Սարքի ID- ն եզակի ID- ի, որն օգտագործվում է միայն այլ անձի ուղարկած տվյալների հետ կոնֆլիկտից խուսափելու համար:
Վերջապես, ընդունեք պայմանները և կտտացրեք Գնալ:
Այս նախագծում մենք փորձարկեցինք մեր Endpoint- ը IBM Watson սերվերի վրա: Սա երաշխավորում է, որ մեր Arduino ծրագիրը պատշաճ կերպով շփվում է հարթակի հետ, և որ մեր ուղարկած տվյալները սահուն կստանան ամպային ծառայության կողմից, եթե հաշիվ ստեղծենք:
Այս շարքի առաջիկա տեսահոլովակում ես ձեզ ցույց կտամ, թե ինչպես մուտք գործել IBM Watson, ինչպես նաև գրել այս կամ այլ ամպային ծառայության տվյալների բազայում, ինչպիսիք են Google- ը, Amazon- ը և այլն:
Քայլ 11: Ֆայլեր
Ներբեռնեք ֆայլերը.
ԻՆՈ
Խորհուրդ ենք տալիս:
ԿԱKՎԱ Servo Motor- ը որպես մոդել գնացք: 17 քայլ
ԿԱKՎԱ Servo Motor As Model Train Driver. Բավարար բյուջե չունե՞ք գնելու այդ բոլոր թանկարժեք գնացքների վերահսկիչները: Մի՛ անհանգստացեք: Այս խրատելիքում ես ձեզ ցույց կտամ, թե ինչպես կարող եք պատրաստել ձեր ցածր բյուջետային գնացքի վերահսկիչը ՝ կոտրելով սերվո շարժիչը: Այսպիսով, եկեք
ELEGOO Kit Lab կամ Ինչպես ավելի հեշտացնել իմ կյանքը որպես ծրագրավորող. 5 քայլ (նկարներով)
ELEGOO Kit Lab կամ Ինչպես ավելի հեշտացնել իմ կյանքը որպես ծրագրավորող. Projectրագրի նպատակները Մեզանից շատերը խնդիրներ ունեն ՄԱԿ-ի վերահսկիչների շուրջ ծաղրված մոդելի հետ: Հաճախ բաղադրիչների լարերը դժվարանում են բազմաթիվ բաղադրիչների դեպքում: Մյուս կողմից, Arduino- ի ներքո ծրագրավորումը կարող է լինել բարդ և կարող է պահանջել շատ
Arduino որպես ISP -- Այրեք վեցանկյուն ֆայլ AVR- ում -- Ապահովիչ AVR -- Arduino- ն որպես ծրագրավորող. 10 քայլ
Arduino- ն որպես ISP || Այրեք վեցանկյուն ֆայլ AVR- ում || Ապահովիչ AVR || Arduino- ն որպես ծրագրավորող. ………………….. ամեն ինչ arduino- ի մասին է, ինչպես isp: Եթե ցանկանում եք վերբեռնել վեցանկյուն ֆայլ կամ եթե ցանկանում եք տեղադրել ձեր ապահովիչը AVR- ում, ապա կարիք չկա ծրագրավորող գնել, կարող եք անել
IoT Hydroponics - IBM's Watson- ի օգտագործումը PH և EC չափումների համար. 7 քայլ (նկարներով)
IoT Hydroponics. IBM's Watson- ի օգտագործումը PH և EC չափումների համար. Սկսելու համար Վաթսոնը ազատ է: Կան վճարովի ծրագրեր, բայց անվճար ծրագիրն ավելի քան բավարար է այս նախագծի համար
Ինչպես օգտագործել Wiimote- ը որպես համակարգչային մկնիկ ՝ օգտագործելով մոմերը որպես սենսոր !!: 3 քայլ
Ինչպես օգտագործել Wiimote- ը որպես համակարգչային մկնիկ ՝ օգտագործելով մոմերը որպես սենսոր