Სარჩევი:
- ნაბიჯი 1: ESP32 Pinout
- ნაბიჯი 2: NodeMCU Pinout
- ნაბიჯი 3: MQTT
- ნაბიჯი 4: შეკრება
- ნაბიჯი 5: დიაგრამა
- ნაბიჯი 6: ბიბლიოთეკები
- ნაბიჯი 7: ტემპერატურისა და ტენიანობის საკითხავი ბიბლიოთეკა
- ნაბიჯი 8: MQTT ბიბლიოთეკა
- ნაბიჯი 9: MQTT.ino
- ნაბიჯი 10: გრაფიკა
- ნაბიჯი 11: ფაილები
ვიდეო: IBM Watson ერთად ESP32 როგორც საბოლოო წერტილი: 11 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
მე დღეს აქ გამოვაქვეყნებ სერიის პირველ ვიდეოს, თუ როგორ უნდა დაამონტაჟოთ Endpoint მოწყობილობა ESP32– ით და შემდეგ გავაგზავნოთ ღრუბლოვან სერვისზე. ამ კონკრეტულ ეპიზოდში მე გაჩვენებთ თუ როგორ უნდა გაგზავნოთ ინფორმაცია DHT22 სენსორიდან MQTT პროტოკოლის გამოყენებით IBM Watson– ისთვის.
ჩვენ პირველ რიგში წარმოგიდგენთ MQTT- ს, რომელიც არის მანქანა-მანქანას პროტოკოლი, რომელიც გამოიყენება IoT- ში (ნივთების ინტერნეტი). ჩვენ ასევე გამოგიგზავნით მონაცემებს ტემპერატურისა და ტენიანობის სენსორიდან ამ პროტოკოლის გამოყენებით და შემდეგ შევამოწმებთ გრაფიკს ამ მონაცემებით ვებ გვერდზე.
ნაბიჯი 1: ESP32 Pinout
აქ დავდე ESP32- ის Pinout, რომელსაც ჩვენ ვიყენებთ ჩვენს მაგალითში. თუმცა, მე მინდა განვმარტო, რომ პროექტი ასევე მუშაობს ESP8266– ით და თუნდაც იგივე კოდის გამოყენებით.
ნაბიჯი 2: NodeMCU Pinout
ნაბიჯი 3: MQTT
MQTT არის მანქანა-მანქანას პროტოკოლი, რომელიც გამოიყენება IoT– ში. იგი შეიქმნა მსუბუქი და სწრაფი. ის იყენებს ხელმოწერის/გამოქვეყნების სისტემას, სადაც მოწყობილობა "იწერს" თემას თქვენი ინტერესის სპეციფიკური ინფორმაციით და შემდეგ იღებს ინფორმაციას, როდესაც მოწყობილობა გამოაქვეყნებს ამ თემასთან დაკავშირებულ მონაცემებს.
სერვერის პროგრამის მსგავსად, MQTT- ს სჭირდება პროგრამული უზრუნველყოფა. ამას ჰქვია ბროკერი. ამ კონკრეტულ შემთხვევაში, ჩვენ გამოვიყენებთ IBM– ის Bluemix IoT სერვისს. ეს სერვისი უფასოა საბოლოო წერტილის ტესტირებისთვის.
შემდეგი, ჩვენ გვჭირდება მობილური ტელეფონი ან ტაბლეტი პროგრამის გვერდით, ანუ როგორც MQTT კლიენტი. ჩვენ ასევე გვაქვს მოწყობილობის მხარე, რომელიც არის ESP მხარე თერმომეტრით. ეს აგზავნის ტემპერატურისა და ტენიანობის მონაცემებს Bluemix– ში, რომელიც შემდეგ აგზავნის ამ ინფორმაციას განაცხადის მხარეს.
ნაბიჯი 4: შეკრება
ჩვენი წრე შედგება 4.7k Ohms რეზისტორისგან 3.3v და მონაცემთა pin შორის, ასევე DHT22, რომელიც დაკავშირებულია ESP32 ან NodeMCU– ის GPIO4– თან. ამრიგად, ეს არის ჩვენი საბოლოო წერტილი.
ნაბიჯი 5: დიაგრამა
მე აქ ვაჩვენებ MQTT ადგილობრივ ბროკერთან მუშაობის რამდენიმე გზას. დავდე დიაგრამის ორი მოდელი. ვიდეოში მე ვსაუბრობ სიტუაციაზე, როგორიცაა Raspberry Pi, მაგალითად, კარიბჭის გასახსნელად.
ზემოთ მოცემულ სურათზე ჩვენ გვაქვს პირველი არქიტექტურა, რომელიც იყენებს ადგილობრივ ბროკერს დაჟინებით, ხოლო მეორე არქიტექტურა, რომელიც მხოლოდ ღრუბელში არსებულ ბროკერთან ურთიერთობს.
როგორც დიაგრამაზეა ნაჩვენები, ჩვენი სენსორი შემდეგ აგზავნის ტემპერატურისა და ტენიანობის მონაცემებს IBM Watson– ს. მნიშვნელოვანია აღინიშნოს, რომ IBM Watson არ წერს მონაცემებს ამ შემთხვევაში, რადგან ის მხოლოდ გრაფიკებშია ნაჩვენები. ეს იმიტომ ხდება, რომ ჩვენ არ განვიხილავთ მონაცემთა ბაზის ნებისმიერ ოპერაციას დღევანდელ მაგალითში, არამედ მხოლოდ მიუთითებთ წვდომას Quickstart გვერდზე (https://quickstart.internetofthings.ibmcloud.com/), რომელიც აჩვენებს საბოლოო წერტილის სტატუსს. სქემა მარტივია და იყენებს WiFi მონაცემების გასაგზავნად.
ნაბიჯი 6: ბიბლიოთეკები
Arduino IDE– ში გადადით ესკიზის მენიუში -> ბიბლიოთეკის ჩართვა -> ბიბლიოთეკების მართვა…
ეკრანზე, რომელიც იხსნება, ჩაწერეთ ძიებაში "DHT" და დააინსტალირეთ lib "DHT სენსორების ბიბლიოთეკა"
შემდეგ ჩაწერეთ "PubSubClient" და დააინსტალირეთ "PubSubClient" lib.
ნაბიჯი 7: ტემპერატურისა და ტენიანობის საკითხავი ბიბლიოთეკა
ნაბიჯი 8: MQTT ბიბლიოთეკა
ნაბიჯი 9: MQTT.ino
ჩვენ ვიწყებთ წყაროს კოდის შემოწმებას, რომელი ESP გამოიყენება და შესაბამისი ბიბლიოთეკისა და WiFi- ის იმპორტირება. ჩვენ ჯერ კიდევ მოიცავს MQTT Libs და ტემპერატურის და ტენიანობის სენსორი.
// Verifica qual ESP está sendo utilizado // e import 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.
// ინტერვალი შესვლისთვის #განსაზღვრეთ INTERVAL 1000 // შეცვალეთ SSID– ით, რომ შეცვალოთ #განსაზღვრეთ SSID "TesteESP" // შეიცვალეთ ის, როგორც გამოაქვეყნეთ #განსაზღვრეთ PASSWORD "87654321" // სერვერი MQTT რაც შეიძლება მალე გამოიყენოთ #განსაზღვრეთ MQTT_S.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 მუდმივი დამხმარე პროგრამა არის სიმებიანი QUICK_START = "d: quickstart: arduino:";
ამ ეტაპზე ჩვენ განვსაზღვრავთ უნიკალურ პირადობის მოწმობას. ამ მაგალითში ჩვენ ვიყენებთ იმ მოწყობილობის MAC მისამართს, რომელსაც ჩვენ ვიყენებთ. ეს იქნება იდენტიფიკაცია QuickStart საიტზე. აქ ჩვენ ასევე ვუკავშირდებით Quickstart ID– ს ჩვენი მოწყობილობის ID– სთან.
// არ არის DEVICE_ID ხმის მიცემა id único // არ გამოვიყენო MAC მისამართი // გამოვიყენო ისარგებლეთ // გამოვიყენო ინფორმაცია // არ გამოვიყენო საიტები //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;
შემდეგ ჩვენ ვაკონფიგურირებთ MQTT და WiFi- ს, ასევე ობიექტებსა და ცვლადებს, რომლებიც ჩართულია ტემპერატურისა და ტენიანობის მნიშვნელობებში.
// კლიენტის WiFi, რომელიც არის MQTT და იყენებს conectarWiFiClient wifiClient; // კლიენტის MQTT, passamos url do სერვერი, პორტა // ე ან კლიენტი WiFi PubSubClient კლიენტი (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 - კონფიგურაცია
კონფიგურაციაში, ჩვენ ვიწყებთ DHT– ს და დავუკავშირდებით WiFi ქსელსა და MQTT სერვერს.
void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Conectamos de rede WiFi setupWiFi (); // Conectamos ao server MQTT connectMQTTServer (); }
MQTT.ino - მარყუჟი
მარყუჟში, ჩვენ ვაგროვებთ სენსორის მონაცემებს 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 ან სერვერის mqtt სიმებიანი 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 ქსელთან დაკავშირებაზე.
// გაეცით პასუხი 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) {delay (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
ამ ფუნქციაში განისაზღვრება ტემპერატურისა და ტენიანობის მონაცემების კითხვა.
// Funchã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 ტემპერატურა = მნიშვნელობა; } // Faz a leitura da umidade მნიშვნელობა = dht.readHumidity (); // Se o valor for válido if (! Isnan (მნიშვნელობა)) {// Armazena o novo valor da umidade ტენიანობა = მნიშვნელობა; }}
MQTT.ino - createJsonString
აქ, ჩვენ გვაქვს ფუნქცია პასუხისმგებელი Json– ის წაკითხული მონაცემებით.
// Funchão responsável por criar // um Json com os dados lidos String createJsonString () {String data = "{"; მონაცემები+= "\" d / ": {"; მონაცემები+= "\" ტემპერატურა / ":"; მონაცემები+= სიმებიანი (ტემპერატურა); მონაცემები+= ","; მონაცემები+= "\" ტენიანობა / ":"; მონაცემები+= სიმებიანი (ტენიანობა); მონაცემები+= "}"; მონაცემები+= "}"; მონაცემების დაბრუნება; }
ნაბიჯი 10: გრაფიკა
სენსორის გრაფიკის სანახავად, წადით
quickstart.internetofthings.ibmcloud.com
მოწყობილობის ID ველში შეიყვანეთ DEVICE_ID, რომელიც თქვენ განსაზღვრეთ კოდში.
- მნიშვნელოვანია ამ მოწყობილობის ID- ს შეცვლა უნიკალურ პირადობის მოწმობით, რომელიც გამოიყენება მხოლოდ სხვა პირის მიერ გაგზავნილ მონაცემებთან კონფლიქტის თავიდან ასაცილებლად.
დაბოლოს, მიიღეთ პირობები და დააწკაპუნეთ გადასვლაზე.
ამ პროექტში ჩვენ შევამოწმეთ ჩვენი Endpoint IBM Watson სერვერზე. ეს უზრუნველყოფს, რომ ჩვენი Arduino პროგრამა სათანადოდ დაუკავშირდეს პლატფორმას და რომ ჩვენ მიერ გაგზავნილ მონაცემებს შეუფერხებლად მიიღებს ღრუბლოვანი სერვისი, თუ შევქმნით ანგარიშს.
ამ სერიის უახლოეს ვიდეოში მე გაჩვენებთ როგორ შეხვიდეთ IBM Watson– ში, ასევე ჩაწეროთ ამა თუ იმ ღრუბლოვანი სერვისის მონაცემთა ბანკში, როგორიცაა Google, Amazon და სხვა.
ნაბიჯი 11: ფაილები
ჩამოტვირთეთ ფაილები:
ინო
გირჩევთ:
არდუინო როგორც პროვაიდერი -- ჩაწერეთ ექვსკუთხა ფაილი AVR -- - ში დაუკრავენ AVR -- Arduino როგორც პროგრამისტი: 10 ნაბიჯი
არდუინო როგორც პროვაიდერი || ჩაწერეთ Hex ფაილი AVR || დაუკრავენ AVR || Arduino როგორც პროგრამისტი: ……………………… გთხოვთ გამოიწეროთ ჩემი YouTube არხი სხვა ვიდეოებისთვის …….. ეს სტატია ეს ყველაფერი არდუინოს შესახებ isp. თუ გსურთ ატვირთოთ ექვსკუთხა ფაილი ან გსურთ დააყენოთ თქვენი დაუკრავენ AVR– ში, მაშინ არ გჭირდებათ პროგრამისტის ყიდვა, შეგიძლიათ გააკეთოთ
Little Wizard - PC/Android თამაში როგორც მამა და შვილი პროექტი ბავშვებთან ერთად (unit3d): 5 ნაბიჯი
Little Wizard - PC/Android თამაში როგორც მამა და შვილი პროექტი ბავშვებთან ერთად (unit3d): მე მინდა ვაჩვენო, რამდენად ადვილი და სახალისოა თამაშის გაკეთება. მე შევქმენი ჩემი თამაში, როგორც მამა -შვილის პროექტი, გარკვეული დროის გასატარებლად ჩემი შვილი და ისწავლე მას რაღაც მაგარი. პირველ რიგში მინდა ვთქვა, რომ მე არ ვარ თამაშის შემქმნელი და მეორე, რომ ეს არის
როგორ გამოვიყენოთ Wiimote როგორც კომპიუტერის მაუსი სანთლების სახით როგორც სენსორი !!: 3 ნაბიჯი
როგორ გამოვიყენოთ Wiimote როგორც კომპიუტერის მაუსი სანთლების სახით როგორც სენსორი !!: ეს სახელმძღვანელო გაჩვენებთ თუ როგორ დაუკავშიროთ თქვენი Wii Remote (Wiimote) თქვენს კომპიუტერს და გამოიყენოთ იგი როგორც მაუსი
იაფი (როგორც უფასო [როგორც ლუდი]) მრავალმეტრიანი სადგამი: 4 ნაბიჯი
იაფი (როგორც უფასო [როგორც ლუდიში]) მრავალმეტრიანი სადგამი: მე მაღიზიანებს იმით, რომ კისერზე ამწევი მაქვს ან ჩემს დაბალანსებულ 4 დოლარად იაფად ვაბალანსებ სადმე რეალურად ეკრანის წაკითხვას. ასე რომ, მე გადავწყვიტე, რომ საქმეები ჩემს ხელში ავიღო! ესეც ჩემი პირველი სტრუქტურირებადია, ასე რომ, თუ ვინმეს რაიმე დამხმარე აქვს
არდ-ე: რობოტი არდუინოსთან ერთად, როგორც ტვინი: 9 ნაბიჯი
Ard-e: Robot With Arduino As a Brain: როგორ შევქმნათ ღია კოდის Arduino კონტროლირებადი რობოტი 100 დოლარამდე. ვიმედოვნებთ, რომ ამ სახელმძღვანელოს წაკითხვის შემდეგ თქვენ შეძლებთ გადადგათ პირველი ნაბიჯი რობოტიკაში. Ard-e ღირს დაახლოებით $ 90-დან $ 130-მდე იმისდა მიხედვით, თუ რამდენი სათადარიგო ელექტრონიკა გაქვთ