Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:55
Bu gün ESP32 ilə bir Endpoint cihazının necə qurulacağı və sonra bir bulud xidmətinə göndəriləcəyi ilə bağlı bir seriyanın ilk videosunu burada yerləşdirirəm. Bu xüsusi epizodda sizə IBM Watson üçün MQTT protokolundan istifadə edərək DHT22 sensorundan məlumat göndərməyin yollarını göstərəcəyəm.
Əvvəlcə IoT-də (Əşyaların İnterneti) istifadə olunan maşın-maşın protokolu olan MQTT-ni təqdim edəcəyik. Həm də bu protokoldan istifadə edərək temperatur və rütubət sensöründən məlumatlar göndərəcəyik və sonra bu məlumatların qrafikini bir veb səhifədə yoxlayacağıq.
Addım 1: ESP32 Pinout
Burada nümunəmizdə istifadə etdiyimiz ESP32 Pinoutunu qoydum. Bununla birlikdə, layihənin ESP8266 və hətta eyni mənbə kodu ilə işlədiyini aydınlaşdırmaq istəyirəm.
Addım 2: NodeMCU Pinout
Addım 3: MQTT
MQTT, IoT-də istifadə olunan maşından maşına protokoldur. Yüngül və sürətli olması üçün hazırlanmışdır. Bir cihazın maraqlandığınız xüsusi məlumatı olan bir mövzuya "abunə olduğu" və sonra bir cihaz bu mövzu ilə bağlı məlumatları dərc edəndə məlumatı aldığı bir abunə/nəşr sistemindən istifadə edir.
Bir server proqramı kimi, MQTT də proqram təminatına ehtiyac duyur. Buna Broker deyilir. Bu vəziyyətdə, IBM -in Bluemix IoT Xidmətindən istifadə edəcəyik. Bu xidmət son nöqtə testi üçün pulsuzdur.
Sonra, tətbiq tərəfində, yəni bir MQTT müştəri olaraq bir cib telefonu və ya tabletə sahib olmalıyıq. Cihazın yan tərəfi də var, bu da termometrli ESP tərəfidir. Bu, temperatur və rütubət məlumatlarını Bluemix -ə göndərir, sonra da bu məlumatları tətbiq tərəfinə göndərir.
Addım 4: Montaj
Dövrümüz, 3.3v və məlumat pin arasındakı 4.7k Ohm müqavimətçidən və ESP32 və ya NodeMCU -nun GPIO4 -ə qoşulmuş DHT22 -dən ibarətdir. Beləliklə, bu bizim son nöqtəmizdir.
Addım 5: Diaqram
Burada MQTT Yerli Brokerlə işləməyin bir neçə yolunu göstərirəm. İki diaqram modeli qoydum. Videoda, məsələn, bir qapı açmaq üçün Raspberry Pi istifadə edərək bir vəziyyətdən bəhs edirəm.
Yuxarıdakı şəkildə, inadkarlıqla yerli Brokerdən istifadə edən ilk arxitektura və aşağıda yalnız buludda brokerlə ünsiyyət quran ikinci bir arxitektura sahibik.
Diaqramda göstərildiyi kimi, sensorumuz temperatur və rütubət məlumatlarını IBM Watson -a göndərir. Yalnız qrafiklərdə göstərildiyi üçün IBM Watson -un bu vəziyyətdə məlumat yazmadığını vurğulamaq vacibdir. Bunun səbəbi, bugünkü nümunədə heç bir verilənlər bazası əməliyyatına toxunmayacağıq, ancaq son nöqtənin vəziyyətini göstərəcək Quickstart səhifəsinə (https://quickstart.internetofthings.ibmcloud.com/) daxil olmağı göstəririk. Sxem sadədir və məlumat göndərmək üçün WiFi istifadə edir.
Addım 6: Kitabxanalar
Arduino IDE -də, Sketch menyusuna gedin -> Kitabxanaya daxil et -> Kitabxanaları idarə et …
Açılan ekranda "DHT" axtarışına daxil olun və "DHT sensor kitabxanası" libini quraşdırın.
Sonra "PubSubClient" yazın və "PubSubClient" libini quraşdırın.
Addım 7: Temperatur və Rütubət Oxu Kitabxanası
Addım 8: MQTT Kitabxanası
Addım 9: MQTT.ino
Mənbə kodunu hansı ESP -nin istifadə edildiyini yoxlamaqla və müvafiq kitabxananı və WiFi -ni idxal etməklə başlayırıq. Hələ də MQTT Libs və Temperatur və Rütubət Sensorunu daxil edirik.
// Verifica qual ESP está sendo utilizado // e a import a a lib e wifi reportyor #if defined (ESP8266) #include #else #include #endif // Lib de MQTT #include // Sensor temperatura və ümid etmək #daxil edin
Sonra, aşağıdakıları təyin edirik: məlumatların təqdim edilməsi arasındakı müddət, istifadə ediləcək MQTT serveri, qrafikdəki çap məlumatları və ID. QUICK_START siminin necə olması lazım olduğunu da qeyd etdik.
// Intervalo entre os envios #INTERVAL 1000 -i təyin edin // SSID -ni əvəz edin #TesteESP -i təyin edin // "87654321" parolunu təyin edin // Server MQTT -ni təyin edin #MQTst_SERVER -i təyin edin.messaging.internetofthings.ibmcloud.com "// Necə deyərlər, heç bir şey etməzlər // heç bir iş görmədikləri üçün #define TOPIC_NAME" iot-2/evt/status/fmt/json "// Şəxsiyyət vəsiqəsi // QUICK_START inkişaf etdirmək üçün String QUICK_START = "d: faststart: arduino:";
Bu addımda unikal bir identifikator təyin edirik. Bu nümunədə, istifadə etdiyimiz cihazın MAC ünvanını istifadə edirik. Bu, QuickStart saytında identifikasiya rolunu oynayacaq. Burada, həmçinin Quickstart ID -ni cihazımızın ID -si ilə əlaqələndiririk.
// DEVICE_ID -in heç bir yeri yoxdur // MAC Ünvanı istifadə edilə bilər // istifadə etmək üçün heç bir şərt yoxdur // heç bir sayt tanımlanmır //https://quickstart.internetofthings.ibmcloud.com String DEVICE_ID = "240ac40e3fd0"; // Tez başlanğıc və ya əlaqələndirmə işlərinin aparılması // dispositivo const String CLIENT_ID = QUICK_START + DEVICE_ID;
Daha sonra MQTT və WiFi -ni, həmçinin temperatur və rütubət dəyərləri ilə əlaqəli obyektləri və dəyişənləri konfiqurasiya edirik.
// Wi -Fi müştəri ilə əlaqə qurmaq üçün MQTT -dən istifadə edən WiFi; // Cliente MQTT, bir url serveri, bir porta // WiFi PubSubClient müştərisi (MQTT_SERVER, 1883, wifiClient); // Müvəqqəti işlər uzun müddət davam edən LastPublishTime = 0; // İstifadəçi üçün hər hansı bir temperatur və ya DHT dht (4, DHT22); // Dəyişkənlik temperaturunun dəyişmə temperaturu = 0; // Dəyişikliklər üçün rütubət = 0;
MQTT.ino - quraşdırma
Quraşdırmada DHT -ni işə salacağıq və WiFi şəbəkəsinə və MQTT serverinə qoşulacağıq.
void setup () {Serial.begin (115200); // Incializamos o dht dht.begin (); // Wi -Fi qurulmasını tənzimləyinWiFi (); // MQTT connectMQTTServer serveri ilə əlaqə qurun (); }
MQTT.ino - döngə
Döngədə, IBM Watson -un qrafiki yaratmağı gözlədiyi mövzuda nəşr olunacaq Json yaratmaq üçün sensor məlumatlarını toplayırıq.
void loop () {// Tempos agora em milisegundos uzun zamandır = millis (); // İstəsəniz, indi (lastPublishTime> INTERVAL) {/atualizamos tempo em que ocorreu oúttimo enVio lastPublishTime = now; // OxumaqSensor () və ya temperatura ilə əlaqəli problemlər. Serial.print ("Mesajı yayımla:"); // Serverin mqtt String msg = createJsonString (); Serial.println (msg); // İstifadəçilərə heç bir xidmət göstərilmədiyi təqdirdə // müştəri.publish (TOPIC_NAME, msg.c_str ()); }}
MQTT.ino - Wi -Fi qurulması
Burada WiFi şəbəkəsinə qoşulmaqdan məsul bir funksiyamız var.
// WiFivoid setupWiFi () {Serial.println (); Serial.print ("Bağlanır"); Serial.print (SSID); // İstifadəçilərə kömək etmək üçün Wi -Fi.begin (SSID, PASSWORD); // Espera at a que que conexão com a reche seo installecida while (WiFi.status ()! = WL_CONNECTED) {delay (500); Serial.print ("."); } // Serial.println ("") ilə əlaqə qurun; Serial.println ("WiFi bağlıdır"); }
MQTT.ino - qoşunMQTTServer
Bu addımda MQTT serverinə qoşulmaqdan məsul olan funksiyadan istifadə edirik.
// MQTTvoid connectMQTTServer () {Serial.println ("MQTT Server -ə qoşulur …") ilə əlaqəli cavablar. // Axtardığınız təqdirdə, əgər (client.connect (CLIENT_ID.c_str ()))) {// Serial.println ("bağlı") ilə əlaqə qurun; } başqa {// Serial.print ("error ="); Serial.println (client.state ()); }}
MQTT.ino - readSensor
İstilik və rütubət məlumatlarının oxunması bu funksiyada müəyyən edilir.
// Funksiya cavablandırıldıqdan sonra oxunuş sensoru () {şamandır dəyəri; // Faz a leitura da temperatura dəyəri = dht.readTemperature (); // Se o valor lido é válido if (! İsnan (dəyər)) {// Armazena o novo valor da temperatura temperatur = dəyər; } // Faz a leitura da umidade value = dht.readHumidity (); // Se v valor for válido if (! İsnan (dəyər)) {// Armazena o novo valor da umidade nem = dəyər; }}
MQTT.ino - createJsonString
Burada, oxunan məlumatlarla bir Json yaratmaqdan məsul olan bir funksiyamız var.
// Funksiyaların cavablandırılması // əmrlərin verilməsi String createJsonString () {String data = "{"; data+= "\" d / ": {"; data+= "\" temperatur / ":"; data+= String (temperatur); məlumatlar+= ","; data+= "\" rütubət / ":"; data+= String (rütubət); data+= "}"; data+= "}"; məlumatların qaytarılması; }
Addım 10: Qrafik
Sensor qrafikinə baxmaq üçün gedin
quickstart.internetofthings.ibmcloud.com saytına
Cihaz ID sahəsinə kodda təyin etdiyiniz DEVICE_ID daxil edin.
- Bu Cihaz ID -ni yalnız başqa bir şəxs tərəfindən göndərilən məlumatlar ilə ziddiyyətin qarşısını almaq üçün istifadə edilən unikal bir ID -yə dəyişdirmək vacibdir.
Nəhayət, şərtləri qəbul edin və Git düyməsini basın.
Bu layihədə son nöqtəmizi IBM Watson serverində sınadıq. Bu, Arduino proqramımızın platforma ilə düzgün ünsiyyət qurmasını və hesab yaratdığımız zaman göndərdiyimiz məlumatların bulud xidməti tərəfindən rəvan şəkildə alınmasını təmin edir.
Bu silsilədən gələcək bir videoda, sizə IBM Watson -a necə daxil olacağınızı, habelə Google və ya Amazon kimi bu və ya digər bulud xidmətinin məlumat bankına yazmağı göstərəcəyəm.
Addım 11: Fayllar
Faylları yükləyin:
MƏN YOX
Tövsiyə:
Arduino ISP olaraq -- AVR -də Hex Faylını Yazın -- AVR -də qoruyucu -- Proqramçı olaraq Arduino: 10 addım
Arduino ISP olaraq || AVR -də Hex Faylını Yazın || AVR -də qoruyucu || Proqramçı olaraq Arduino: ……………………… Daha çox video üçün YouTube kanalıma ABUNƏ OLUN …….. Bu məqalə isp kimi hər şey arduino ilə əlaqədardır. Hex faylını yükləmək istəyirsinizsə və ya qoruyucunuzu AVR -də qurmaq istəyirsinizsə, bir proqramçı almağa ehtiyacınız yoxdur, edə bilərsiniz
İkili Çürümə Eurorack Noktadan Nöqtə Dövrü: 12 Addım
Dual Decay Eurorack Point-to-Point Circuit: Bu təlimatın məqsədi, modul sintezatorunuz üçün İKİ ÇÖZÜM dövrəsini necə qura biləcəyinizi göstərməkdir. Bu, hər hansı bir pcb olmayan bir nöqtədən-nöqtəyə dövrədir və minimum hissələri olan funksional sintezator sxemləri qurmağın başqa bir yolunu göstərir
Google Xəritələrinizi Google Cədvəllərinizə Avtomatik olaraq və Pulsuz olaraq əlavə edin: 6 Addım
Google Xəritələrinizi Google Cədvəllərinizə Asanlıqla Əlavə Edin: Bir çox İstehsalçı kimi, bir neçə GPS izləyici layihəsi də qurdum. Bu gün, hər hansı bir xarici veb sayt və ya API istifadə etmədən, GPS nöqtələrini birbaşa Google Cədvəllərdə tez bir zamanda görüntüləyə biləcəyik. Ən yaxşısı, PULSUZDUR
İki Qatar Çalışan Dəmiryolu Modelindən Sadə Avtomatik Nöqtə: 13 Addım (Şəkillərlə)
Sadə Avtomatlaşdırılmış Noktadan Nöqtəyə İki Qatarda Model Model: Arduino mikro nəzarətçiləri, ucuz qiymətə mövcudluğu, açıq mənbəli aparat və proqram təminatı və sizə kömək etmək üçün böyük bir icma sayəsində model dəmir yolu planlarının avtomatlaşdırılmasının əla bir yoludur. Model dəmir yolları üçün, Arduino mikrokontrolörləri bir şirkət olduğunu sübut edə bilər
Şamları Sensor Olaraq İstifadə edən Kompüter Siçanı Olaraq Wiimote Necə İstifadə Edilir !!: 3 addım
Şamları Sensor Olaraq İstifadə edən Kompüter Siçanı Olaraq Wiimote -dan Necə İstifadə Edin !!: Bu təlimat Wii Uzaqdan (Wiimote) cihazınızı kompüterinizə necə bağlayacağınızı və siçan kimi necə istifadə edəcəyinizi göstərəcək