Mündəricat:
- Addım 1: AWS Hesabının Qurulması
- Addım 2: Avadanlıq və Proqram Xüsusiyyətləri
- Addım 3: Simsiz Vibrasiya və Temperatur Sensorları
- Addım 4: ESP32 AWS Firmware
- Addım 5: Simsiz Vibrasiya və Temperatur Sensorundan Sensor Məlumatlarının Alınması
- Addım 6: AWS -ə qoşulun
- Addım 7: AWS -də məlumatların görüntülənməsi
- Addım 8: Ümumi Kod
Video: MQTT istifadə edərək Simsiz Temperatur Sensoru olan AWS IoT ilə İşə Başlama: 8 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
Əvvəlki Təlimatlarda Azure, Ubidots, ThingSpeak, Losant kimi fərqli bulud platformalarından keçdik. Demək olar ki, bütün bulud platformalarında sensor məlumatlarını buluda göndərmək üçün MQTT protokolundan istifadə edirik. MQTT, HTTP protokolu üzərindəki üstünlükləri və faydaları haqqında daha çox məlumat üçün bu təlimata müraciət edə bilərsiniz.
Bu təlimatda, başqa bir və ən tanış Amazon Web Services bulud platformasına yaxınlaşacağıq. Bir çoxunuz AWS aka Amazon Web Services və AWS tərəfindən təmin edilən bulud funksionallığı ilə tanış ola bilərsiniz. Uzun illər veb inkişafının əsasını təşkil etdi. IoT tətbiqlərinin artan miqyası ilə AWS, AWSIoT həlli ilə çıxış etdi. AWSIoT, IoT tətbiqlərimizi yerləşdirmək üçün etibarlı bir həlldir.
Bu təlimata əməl edərək:
- IoT tətbiqiniz üçün AWS hesabı qura biləcəksiniz
- ESP32 -ni AWS IoT nüvəsinə qoşa biləcəksiniz
- MQTT və HTTP protokolundan istifadə edərək mesaj göndərin və alın
- AWS -də göndərilən məlumatları görüntüləyin
Addım 1: AWS Hesabının Qurulması
AWS hesabı qurmaq olduqca asandır. Yalnız bir neçə sertifikat yükləməlisiniz, ona siyasət əlavə etməlisiniz, cihazı qeydiyyatdan keçirməlisiniz və AWS -də sensor məlumatları almağa başlamalısınız.
AWS hesabını qurmaq üçün bu təlimatı izləyin.
Addım 2: Avadanlıq və Proqram Xüsusiyyətləri
Proqram Təminatı
AWS hesabı
Avadanlıq spesifikasiyası
- ESP32
- Simsiz Temperatur və Titrəmə Sensoru
- Zigmo Gateway qəbuledicisi
Addım 3: Simsiz Vibrasiya və Temperatur Sensorları
Bu simsiz mesh şəbəkə arxitekturasından istifadə edərək 2 mil məsafəyə qədər öyünən Uzun Menzilli Sənaye IoT simsiz vibrasiya və temperatur sensoru. 16 bitlik Titrəmə və Temperatur sensoru olan bu sensor istifadəçi tərəfindən müəyyən edilmiş vaxt aralığında yüksək dəqiqlikli vibrasiya məlumatlarını ötürür. Aşağıdakı xüsusiyyətlərə malikdir:
- ± 32 q aralığında Sənaye dərəcəli 3 oxlu Vibrasiya Sensoru
- RMS, MAX və MIN g Titrəməni hesablayır
- Aşağı keçid filtrindən istifadə edərək səs-küyün aradan qaldırılması
- Tezlik Aralığı (Bant Genişliyi) 12, 800 Hz -ə qədər
- Nümunə Hızı 25, 600 Hz -ə qədər
- 2 mil simsiz şəbəkə ilə şifrələnmiş əlaqə
- İşləmə temperaturu aralığı -40 ilə +85 ° C arasında
- Divara və ya Maqnitə Quraşdırılmış IP65 Nominal Qoşun Visual Studio və LabVIEW üçün Nümunə Proqram
- Xarici Prob Seçimi olan Vibrasiya Sensoru
- 4 AA Batareyadan 500.000 -ə qədər ötürmə Çoxlu Ağ Geçidi və Modem Seçimləri mövcuddur
Addım 4: ESP32 AWS Firmware
AWS -ə qoşulmaq və məlumatları göndərməyə başlamaq üçün aşağıdakı addımlardan keçin
- AWS kitabxanasını aşağıdakı Github deposundan yükləyin
- repo klonlayın və AWS_IOT faylını Arduino qovluğunun kitabxana qovluğuna yerləşdirin
git klonu
İndi kodu keçək:
- Bu tətbiqetmədə, WiFi məlumatlarını saxlamaq və IP parametrlərində gəzmək üçün əsir bir portaldan istifadə etdik. Əsir portal haqqında ətraflı məlumat üçün aşağıdakı təlimatlardan keçə bilərsiniz.
- Əsir portal bizə Statik və DHCP parametrləri arasında seçim etmək imkanı verir. Sadəcə Statik IP, Alt Ağ Maskası, ağ geçidi və Simsiz Sensor Ağ Geçidi kimi etimadnamələrini daxil edin ki, həmin IP -də konfiqurasiya olunsun.
- Mövcud WiFi şəbəkələrini və RSSI -ni göstərən bir siyahının olduğu bir veb səhifəsi yerləşdirilir. WiFi şəbəkəsini və şifrəni seçin və göndərin daxil edin. Etimadnamələr EEPROM -da, IP qəbulu isə SPIFFS -də saxlanılacaq. Bu barədə daha çox məlumatı bu təlimatda tapa bilərsiniz.
Addım 5: Simsiz Vibrasiya və Temperatur Sensorundan Sensor Məlumatlarının Alınması
Simsiz Temperatur və Vibrasiya Sensorlarından 54 baytlıq çərçivə alırıq. Bu çərçivə faktiki temperatur və Vibrasiya məlumatlarını əldə etmək üçün manipulyasiya olunur.
ESP32 -nin Serial istifadəsi üçün üç UART var
- RX0 GPIO 3, TX0 GPIO 1
- RX1 GPIO9, TX1 GPIO 10
- RX2 GPIO 16, TX2 GPIO 17
və 3 hardware Serial port
- Serial
- Serial 1
- Serial 2
Əvvəlcə Hardware Serial başlıq faylını işə salın. Burada RX2 və TX2 aka istifadə edəcəyik. Seriya məlumatlarını əldə etmək üçün ESP32 kartının GPIO 16 və GPIO 17 pinləri.
#daxil edin
# RXD2 müəyyən 16 # TXD2 müəyyən 17
Serial2.begin (115200, SERIAL_8N1, RXD2, TXD2); // sancaqlar 16 rx2, 17 tx2, 19200 bps, 8 bit parite yoxdur 1 stop bit
Aşağıdakı addımlar, əsl sensor dəyərlərini əldə etməyinizə səbəb olacaq
- İstilik, rütubət, batareya və digər sensor dəyərlərini saxlamaq üçün dəyişənlər yaradın
- Avadanlıq seriyası üçün Rx, tx pin, baud dərəcəsi və parite bitlərini təyin edin
- Əvvəlcə Serial1.available () istifadə edərək oxumaq üçün bir şeyin olub olmadığını yoxlayın.
- 54 bayt çərçivə alacağıq.
- Başlanğıc baytı olan 0x7E olub olmadığını yoxlayın.
- Titrəmə məlumatları 3 ox üçün RMS dəyərindən, 3 ox üçün minimum dəyərlərdən, 3 ox üçün maksimum dəyərlərdən ibarətdir.
- temperatur və batareya dəyərləri 2 bayt məlumatdan ibarət olacaq
- sensorun adını, növünü, sensor versiyasını 1 bayt məlumatdan ibarət olacaq və oradan müvafiq ünvandan əldə etmək olar
if (Serial2.available ()) {Serial.println ("Serialı Oxu"); data [0] = Serial2.read (); gecikmə (k); if (data [0] == 0x7E) {Serial.println ("Paket əldə etdim"); while (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); gecikmə (1); } if (data [15] == 0x7F) /////// recive məlumatların doğru olub olmadığını yoxlamaq üçün {if (data [22] == 0x08) //////// sensorun növündən əmin olun doğrudur {rms_x = ((uint16_t) (((data [24]) << 16) + ((data [25]) << 8) + (data [26]))/100); rms_y = ((uint16_t) (((məlumatlar [27]) << 16) + ((məlumatlar [28]) << 8) + (məlumatlar [29]))/100); rms_z = ((uint16_t) ((((məlumatlar [30]) << 16) + ((məlumatlar [31]) << 8) + (məlumatlar [32]))/100); int16_t max_x = ((uint16_t) ((((məlumatlar [33]) << 16) + ((məlumatlar [34]) << 8) + (məlumatlar [35]))/100); int16_t max_y = ((uint16_t) ((((məlumatlar [36]) << 16) + ((məlumatlar [37]) << 8) + (məlumatlar [38]))/100); int16_t max_z = ((uint16_t) ((((məlumatlar [39]) << 16) + ((məlumatlar [40]) << 8) + (məlumatlar [41]))/100);
int16_t min_x = ((uint16_t) (((məlumatlar [42]) << 16) + ((məlumatlar [43]) << 8) + (məlumatlar [44]))/100); int16_t min_y = ((uint16_t) (((məlumatlar [45]) << 16) + ((məlumatlar [46]) << 8) + (məlumatlar [47]))/100); int16_t min_z = ((uint16_t) (((məlumat [48]) << 16) + ((məlumat [49]) << 8) + (məlumat [50]))/100);
cTemp = (((((məlumat [51]) * 256) + məlumat [52])); üzən batareya = ((məlumat [18] * 256) + məlumat [19]); gərginlik = 0.00322 * batareya; Serial.print ("Sensor nömrəsi"); Serial.println (məlumatlar [16]); senseNumber = məlumatlar [16]; Serial.print ("Sensor Tipi"); Serial.println (məlumatlar [22]); Serial.print ("Firmware Versiyası"); Serial.println (məlumatlar [17]); Serial.print ("Selsi temperaturu:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("X oxunda RMS vibrasiyası:"); Serial.print (rms_x); Serial.println ("mg"); Serial.print ("Y oxunda RMS vibrasiyası:"); Serial. çap (rms_y); Serial.println ("mg"); Serial.print ("Z oxunda RMS vibrasiyası:"); Serial.print (rms_z); Serial.println ("mg");
Serial.print ("X oxunda minimum titrəmə:");
Serial. çap (min_x); Serial.println ("mg"); Serial.print ("Y oxunda minimum titrəmə:"); Serial. çap (min_y); Serial.println ("mg"); Serial.print ("Z oxunda minimum titrəmə:"); Serial. çap (min_z); Serial.println ("mg");
Serial.print ("ADC dəyəri:");
Serial.println (batareya); Serial.print ("Batareya Gərginliyi:"); Serial. çap (gərginlik); Serial.println ("\ n"); if (gərginlik <1) {Serial.println ("Batareyanı dəyişdirmə vaxtı"); }}} başqa {üçün (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); gecikmə (1); }}}}
Addım 6: AWS -ə qoşulun
- AWSIoT hub ilə əlaqə qurmaq üçün AWS_IOT.h, WiFi.h başlıq fayllarını daxil edin
- Siyasət adı olacaq Host Adınızı, Müştəri Kimliyinizi və əşyanın adı olacaq mövzu adını daxil edin
// ********* AWS Etimadnaməsi ************* // char HOST_ADDRESS = "a2smbp7clzm5uw-ats.iot.us-east-1.amazonaws.com"; char CLIENT_ID = "ncdGatewayPolicy"; char TOPIC_NAME = "ncdGatewayThing";
JSON -u saxlamaq üçün bir char dəyişənini yaradın, bu halda JSON -u saxlamaq üçün bir format yaratdıq
const char *format = "{" SensorId / ": \"%d / ", \" messageId / ":%d, \" rmsX / ":%d, \" rmsY / ":%d, \" rmsZ / ":%d, \" cTemp / ":%d, \" gərginlik / ":%. 2f}";
AWS_IOT sinifinin bir nümunəsini yaradın
AWS_IOT esp; // AWS_IOT sinifinin nümunəsi
İndi aşağıdakı metoddan istifadə edərək AWSIoT mərkəzinə qoşulun
void reconnectMQTT () {if (hornbill.connect (HOST_ADDRESS, CLIENT_ID) == 0) {Serial.println ("AWS -ə qoşuldu"); gecikmə (1000);
əgər (0 == hornbill.subscribe (TOPIC_NAME, mySubCallBackHandler))
{Serial.println ("Abunəlik Müvəffəqiyyətli"); } başqa {Serial.println ("Abunə Olmadı, Şeyin Adını və Sertifikatlarını yoxlayın"); isə (1); }} başqa {Serial.println ("AWS bağlantısı uğursuz oldu, HOST ünvanını yoxlayın"); isə (1); }
gecikmə (2000);
}
sensor məlumatlarını hər 1 dəqiqədən bir dərc edin
if (tick> = 60) // hər 5 saniyədə bir mövzuya dərc edin {tick = 0; yük yükü [PAYLOAD_MAX_LEN]; snprintf (yük, PAYLOAD_MAX_LEN, format, senseNumber, msgCount ++, rms_x, rms_y, rms_z, cTemp, gərginlik); Serial.println (faydalı yük); if (hornbill.publish (TOPIC_NAME, yük) == 0) {Serial.print ("Mesajı dərc edin:"); Serial.println (faydalı yük); } başqa {Serial.println ("Yayımlanmadı"); }} vTaskDelay (1000 / portTICK_RATE_MS); işarələyin ++;
Addım 7: AWS -də məlumatların görüntülənməsi
- AWS hesabınıza daxil olun.
- alətlər çubuğunun sol küncündə Xidmətlər sekmesini tapacaqsınız
- Bu sekməni vurun və Əşyalar İnterneti başlığı altında IoT Core seçin.
- QoS seçin və yox. abunəçilərə göndərilən mesajlar. Mövzu adını daxil edin.
Addım 8: Ümumi Kod
Ümumi kodu bu Github Deposunda tapa bilərsiniz.
Kreditlər
- Arduino Json
- Simsiz Temperatur və Nəmlik Sensorları
- ESP32
- PubSubClient
Tövsiyə:
Uzun Menzilli Simsiz Temperatur və Titrəmə Sensorları ilə İşə Başlama: 7 addım
Uzun Menzilli Kabelsiz Temperatur və Vibrasiya Sensorları ilə İşə Başlama: Bəzən vibrasiya bir çox tətbiqdə ciddi problemlərin səbəbidir. Maşın şaftlarından və rulmanlardan tutmuş sabit disk performansına qədər, vibrasiya maşın zədələnməsinə, erkən dəyişdirilməsinə, aşağı performansa səbəb olur və dəqiqliyə böyük zərbə vurur. Monitorinq
WiFi üzərindən ESP 32 Kamera Video Axını - ESP 32 CAM lövhəsi ilə işə başlama: 8 addım
WiFi üzərindən ESP 32 Kamera Video Axını | ESP 32 CAM lövhəsi ilə işə başlayın: ESP32-CAM, təxminən 10 dollara başa gələn ESP32-S çipi olan çox kiçik bir kamera moduludur. OV2640 kamerası və ətraf cihazları birləşdirmək üçün bir neçə GPIO ilə yanaşı, t ilə çəkilmiş şəkilləri saxlamaq üçün faydalı ola biləcək bir microSD kart yuvasına da malikdir
HC05 Bluetooth Modulu və Arduino ilə İşə Başlama [Dərslik]: 6 addım
HC05 Bluetooth Modulu və Arduino ilə İşə Başlama [Dərslik]: Bu və digər möhtəşəm dərsləri ElectroPeak -in rəsmi saytında oxuya bilərsiniz Bu dərslikdə HC05 Bluetooth Modulu və Arduino lövhəsindən istifadə edərək Bluetooth ilə necə ünsiyyət qurmağı və məlumat göndərməyi öyrənəcəksiniz. Bu yazının sonunda öyrənəcəksiniz
NeoPixel / WS2812 RGB LED ilə işə başlama: 8 addım (şəkillərlə)
NeoPixel / WS2812 RGB LED -ə Başlarkən: [Videonu Çal] Bu Təlimat kitabında ünvanlı RGB LED (WS2812) və ya Adafruit NeoPixel kimi tanınan mövzularda araşdıracağıq. NeoPixel üzüklər, zolaqlar, lövhələr və amp ailəsidir; nəbzli, rəngli miniatür LED çubuqları. Bunlar zəncirvari
IoT Analog Giriş - IoT ilə İşə Başlama: 8 Addım
IoT Analog Giriş - IoT ilə İşə Başlama: Analog Girişləri Anlamaq ətrafdakı şeylərin necə işlədiyini başa düşməyin vacib bir hissəsidir, əksər sensorlar analoq sensorlar olmasa da (bəzən bu sensorlar rəqəmsal hala çevrilir). Yalnız açıla və ya söndürülə bilən rəqəmsal girişlərdən fərqli olaraq, analog giriş