Mündəricat:

IoT Asanlığı: ESP-MicroPython-MQTT-ThingSpeak: 12 addım
IoT Asanlığı: ESP-MicroPython-MQTT-ThingSpeak: 12 addım

Video: IoT Asanlığı: ESP-MicroPython-MQTT-ThingSpeak: 12 addım

Video: IoT Asanlığı: ESP-MicroPython-MQTT-ThingSpeak: 12 addım
Video: İŞLƏRİ ASANLAŞDIRAN DUA - Allahdan bir iş üçün asanlıq istəmə duası (Dua və Zikrlərin mənaları) -33A 2024, Iyul
Anonim
IoT Asanlığı: ESP-MicroPython-MQTT-ThingSpeak
IoT Asanlığı: ESP-MicroPython-MQTT-ThingSpeak

Əvvəlki dərsliyimdə, Jupyter istifadə edərək ESP üzrə MicroPython, bir ESP cihazına MicroPython -un necə qurulacağını və işlədiləcəyini öyrəndik. İnkişaf mühiti olaraq Jupyter Notebook-dan istifadə edərək, sensorlardan oxumağı da öyrəndik (Temperatur, Rütubət və Parlaqlıq), Analoq, Rəqəmsal, 1-Telli və I2C bir neçə ünsiyyət protokollarından və metodlarından istifadə edirik. OLED displeydəki məlumatlar.

İndi, bir MQTT protokolu istifadə edən bu təlimatda, əldə edilən bütün məlumatları əldə edərək onları IoT xidmətinə, ThingSpeak.com -a və məlumatlarla daxil olub oynaya biləcəyimiz mobil tətbiqə (Thingsview) göndərəcəyik.

Budur, layihəmizin blok diaqramı:

Şəkil
Şəkil

Addım 1: BoM - Material Bill

  1. NodeMCU - 8.39 ABŞ dolları
  2. DHT22 Temperatur və Nisbi Nəmlik Sensoru - USD 9.95
  3. DS18B20 Su keçirməyən Temperatur Sensoru - 5.95 USD
  4. OLED Ekran SSD1366- USD 8.99 (isteğe bağlı)
  5. LDR (1x)
  6. LEDlər (1x) (İsteğe bağlı)
  7. Düymə (1x)
  8. Rezistor 4K7 ohm (2x)
  9. Rezistor 10K ohm (1x)
  10. Rezistor 220 ohm (1x)

Addım 2: Hw

Ss
Ss

Burada istifadə edəcəyimiz Hw, təlimatda istifadə olunanla eynidir: Jupyter istifadə edərək ESP -də Micropython. Bütün HW əlaqələri üçün ona baxın.

İstisna Servo, bu layihədə istifadə edilməyəcəyimizdir.

Yuxarıda tam HW -ni görə bilərsiniz. Cihazları orada göstərildiyi kimi bağlayın.

Addım 3: Micropython, REPL, Jupyter

Micropython, REPL, Jupyter
Micropython, REPL, Jupyter
Micropython, REPL, Jupyter
Micropython, REPL, Jupyter

ESP cihazınıza yüklənmiş bir Micropython tərcüməçiniz olmalıdır. Yükləndikdən sonra, ESP -ni mövcud olan hər hansı bir yolu/IDE -dən istifadə edərək proqramlaşdırmalısınız:

  • REPL
  • Jupyter Noutbuku
  • Mu
  • ESPCut (yalnız Windows)
  • … Və s

Dərsliyimdə, Jupyter istifadə edərək ESP haqqında Micropython, ESP cihazlarını idarə etmək üçün MicroPython tərcüməçisini, ESPToolu necə yükləyib quracağımı və İnkişaf Mühiti olaraq Jupyter Notebook -dan necə istifadə edəcəyimi izah etdim. Sizin üçün daha rahat olanı istifadə etməkdən çekinmeyin.

Adətən bütün inkişafı Jupyter Notebook -da edirəm və son kodu əldə etdikdən sonra onları Geany -ə kopyalayıram və Ampy istifadə edərək ESP -ə yükləyirəm.

Addım 4: Sensorlar

Sensorlar
Sensorlar

Kitabxanaları quraşdıraq, GPIO təyin edək, ayrı -ayrı bütün sensorlar üçün obyektlər, funksiyalar yaradaq:

A. DHT (Temperatur və Rütubət)

DHT kitabxanasını quraq və bir obyekt yaradaq:

DHT22 idxalından

maşın idxalından Pin dht22 = DHT22 (Pin (12))

İndi DHT sensorunu oxumaq üçün bir funksiya yaradın:

def readDht ():

dht22. ölçü () qayıt dht22.sıcaklıq (), dht22. rütubət () DHT funksiyasını yoxlayın

çap et (readDht ())

Nəticə belə olmalıdır:

(17.7, 43.4)

B. DS18B20 (Xarici Temperatur)

Kitabxanaları quraşdıraq və bir obyekt yaradaq:

onewire idxal edin, ds18x20

idxal vaxtı # 1 telli cihazın hansı pinlə bağlanacağını təyin edin ==> pin 2 (D4) dat = Pin (2) # onewire obyekti yaradın ds = ds18x20. DS18X20 (onewire. OneWire (dat)) Bu cihazları axtarın

sensorlar = ds.scan ()

çap ('tapılan cihazlar:', sensorlar)

Çap olunan nəticə həqiqətən vacib deyil, bizə lazım olan ilk aşkarlanan sensordur: sensorlar [0]. İndi sensor məlumatlarını oxumaq üçün bir funksiya qura bilərik:

def readDs ():

ds.convert_temp () time.sleep_ms (750) qayıt ds.read_temp (sensorlar [0])

Yaradılmış funksiyadan istifadə edərək sensoru yoxlamaq həmişə vacibdir

çap (readDs ()) Bir temperatur dəyəri alsanız, kodunuz doğrudur

17.5

C. LDR (Parlaqlıq)

LDR, ESP -nin analoq pinindən istifadə edəcək (ESP8266 -da yalnız bir və ESP32 -də birdir).

Ətraflı məlumat üçün ESP32 dərsliyimə baxın.

Əvvəlki kimi eyni:

# idxal kitabxanası

maşın idxalından ADC # Obyekti təyin et adc = ADC (0) Sadə bir funksiya: adc.read () ADC dəyərini oxumaq üçün istifadə edilə bilər. Ancaq unutmayın ki, daxili ADC 0 -dan 1023 -ə qədər dəyişən rəqəmsal dəyərlərdə 0 ilə 3.3V arasında olan gərginliyi çevirəcək. "Parlaqlıq" ilə maraqlandıqdan sonra, Max işığını sensordan əldə edilən maksimum dəyər olaraq nəzərdən keçirəcəyik (mənim case 900) və mənim vəziyyətimdə 40 olan minimum işıq. Bu dəyərlərə sahib olaraq, 40 -dan 900 -ə qədər olan dəyərin 0 -dan 100% -ə qədər "xəritələndirə" bilərik. Bunun üçün yeni bir funksiya yaradacağıq

def readLdr ():

lumPerct = (adc.read ()-40)*(10/86) # faizlə çevir ("xəritə") geri dönmə dövrü (lumPerct)

Print (readLDR ()) istifadə edərək funksiyanı yoxlamalısınız. Nəticə o ilə 100 arasında bir tam ədəd olmalıdır.

D. Push-Button (Rəqəmsal Giriş)

Burada bir rəqəmsal sensor olaraq bir Push-Button istifadə edirik, ancaq bu bir aktuatorun "əks-sədası" ola bilər (məsələn, AÇMA/KAPALI edilmiş nasos).

# pin 13-ü giriş olaraq təyin edin və daxili bir çəkmə müqavimətini işə salın:

button = Pin (13, Pin. IN, Pin. PULL_UP) # Düymə vəziyyətini oxumaq funksiyası: def readBut (): return button.value ()

Print funksiyasını oxuyan düyməni sınaya bilərsiniz (readBut ()). Nəticəni basmadan "1" olmalıdır. Düyməni basaraq nəticə "0" olmalıdır

Addım 5: Bütün Sensor Verilərinin Yerli Olaraq Alınması və Göstərilməsi

Bütün Sensor Verilərinin Yerli Olaraq Alınması və Göstərilməsi
Bütün Sensor Verilərinin Yerli Olaraq Alınması və Göstərilməsi

İndi hər sensor üçün bir funksiya yaratdıqdan sonra, hamısını eyni vaxtda oxuyacaq sonuncu funksiyanı yaradaq:

def colectData ():

temp, hum, = readDht () extTemp = readDs () lum = readLdr () butSts = readBut () return temp, hum, extTemp, lum, butSts İndi istifadə etsəniz

çap (colectData ())

Sensorlardan alınan bütün məlumatları ehtiva edən bir tuple nəticələnəcək:

(17.4, 45.2, 17.3125, 103, 1)

İsteğe bağlı olaraq bu məlumatları yerli bir ekranda göstərə bilərik:

# kitabxana idxal edin və i2c obyekti yaradın

maşın idxalından I2C i2c = I2C (scl = Pin (5), sda = Pin (4)) # idxal kitabxanası və idxal edilmiş obyekt yaradın ssd1306 i2c = I2C (scl = Pin (5), sda = Pin (4)) oled = ssd1306. SSD1306_I2C (128, 64, i2c, 0x3c) # funksiya yaradın: def displayData (temp, hum, extTemp, lum, butSts): oled.fill (0) oled.text ("Temp:" + str (temp)) + "oC", 0, 4) oled.text ("Hum:" + str (hum) + "%", 0, 16) oled.text ("ExtTemp:" + str (extTemp) + "oC", 0, 29) oled.text ("Lumin:" + str (lum) + "%", 0, 43) oled.text ("Button:" + str (butSts), 0, 57) oled.show () # DisplayData funksiyasından istifadə edərək məlumatları göstərin (temp, hum, extTemp, lum, butSts)

Bir seçim olaraq, sensorlar oxumağa başladıqda, bu məlumatlar göstərildikdən sonra sönən LED -in AÇIQ olacağını da əlavə edəcəyəm. Bu, ESP -nin PC -dən ayrıldığı və avtomatik olaraq işlədiyi zaman proqramın işlədiyini təsdiqləməyə kömək edəcək.

Beləliklə, əsas funksiya:

# Bütün sensorları oxumaq üçün əsas funksiya

def main (): # led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () funksiyası ilə məlumatları göstərin

Beləliklə, main () funksiyasını yerinə yetirərək, şəkildə göstərildiyi kimi OLED -də göstərilən sensor məlumatlarını alacağıq.

Addım 6: ESP Başlanğıcında Yerli Stansiya Kodunu Çalışdırın

ESP Başlanğıcında Yerli İstasyon Kodunun Çalıştırılması
ESP Başlanğıcında Yerli İstasyon Kodunun Çalıştırılması

İndiyə qədər inkişaf etdirilənlərin hamısını ESP tərəfindən icra ediləcək bir fayl üzərində əldə edə bilərik.

İstənilən mətn redaktorunu açaq və bütün kodu keçək:

# ümumi kitabxanaları idxal edin

maşın idxalından Pin idxal vaxtı # pin 0 -ı çıxış led olaraq təyin edin = Pin (0, Pin. OUT) # DHT dht import DHT22 dht22 = DHT22 (Pin (12)) # DHT def readDht () oxumaq funksiyası: dht22. ölçü () qayıt dht22.temperature (), dht22.humidity () # DS18B20 onewire, ds18x20 # 1 telli cihazın hansı pinlə bağlanacağını təyin edin ==> pin 2 (D4) dat = Pin (2) # Bir tel yaradın obyekt ds = ds18x20. DS18X20 (onewire. OneWire (dat)) # avtobus sensorlardakı cihazlar üçün tarama = ds.scan () # DS18B20 def readDs () oxumaq üçün # funksiya: ds.convert_temp () time.sleep_ms (750) qayıt dəyirmi (ds.read_temp (sensorlar [0]), 1) ADC maşın idxalından # LDR # Obyekti təyin edin adc = ADC (0) #funksiyanı oxumaq üçün funksiya def readLdr (): lumPerct = (adc.read ()-40) *(10/86) # faizlə çevir ("xəritə") geri dönmə (lumPerct) # pin 13-ü giriş olaraq təyin edin və daxili çəkmə müqavimətini aktiv edin: düymə = Pin (13, Pin. IN, Pin. PULL_UP) # Oxuma funksiyası düymənin vəziyyəti: def readBut (): return button.value () # Bütün məlumatları oxumaq funksiyası: def cole ctData (): temp, hum, = readDht () extTemp = readDs () lum = readLdr () butSts = readBut () temp, hum, extTemp, lum, butSts # idxal kitabxanasını qaytarın və maşın idxalı I2C i2c -dən i2c obyekti yaradın I2C (scl = Pin (5), sda = Pin (4)) # idxal kitabxanası və idxal edilmiş obyekt yaradın, 64, i2c, 0x3c) # funksiya yaradın: def displayData (temp, hum, extTemp, lum, butSts): oled.fill (0) oled.text ("Temp:" + str (temp) + "oC", 0, 4) oled.text ("Hum:" + str (hum) + "%", 0, 16) oled.text ("ExtTemp:" + str (extTemp) + "oC", 0, 29) oled. text ("Lumin:" + str (lum) + "%", 0, 43) oled.text ("Button:" + str (butSts), 0, 57) oled.show () # Bütün sensorları oxumaq üçün əsas funksiya def main (): # led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () ''- ----- əsas funksiyanı işləyin -------- '' 'main ()

Saxla, məsələn localData.py.

Bu kodu birbaşa terminalınızda işə salmaq üçün Ampy -yə ehtiyacınız olacaq.

Əvvəlcə Terminalda Serial limanımızı Ampy -yə bildirək:

ixrac AMPY_PORT =/dev/tty. SLAB_USBtoUART

İndi ESP kök qovluğumuzdakı faylları görə bilərik:

amp ls

Cavab olaraq, sistemdə işləyəcək ilk fayl olan boot.py əldə edəcəyik.

İndi Python Script LocalData.py faylımızı /main.py olaraq yükləmək üçün Ampy -dən istifadə edək, beləliklə skript açılışdan dərhal sonra işləyəcək:

ampy localData.py /main /py qoyun

İndi ls əmrindən istifadə etsək, ESP daxilində 2 fayl görəcəksiniz: boot.py və main.py

ESP -ni sıfırlayaraq, sensor məlumatlarını ekranda göstərərək localData.py proqramını avtomatik olaraq işə salacaqsınız.

Yuxarıdakı Terminal çap ekranı nə etdiyimizi göstərir.

Yuxarıdakı kodla, ekran yalnız bir dəfə göstəriləcək, ancaq main () funksiyasında hər müəyyən edilmiş vaxt aralığında (PUB_TIME_SEC) məlumatları göstərəcək bir döngə təyin edə bilərik və məsələn düyməni basana qədər:

Düymə basılana qədər # loop məlumat əldə edir

while button.value (): led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () time.sleep (PUB_TIME_SEC)

PUB_TIME_SEC dəyişən nümunələri istədiyiniz vaxt elan edilməlidir.

Kodumuzu daha da təkmilləşdirmək üçün döngədən çıxacağımızı bildirmək yaxşı olardı, bunun üçün biri ekranı təmizləmək üçün, digəri isə LED -i müəyyən dəfə yanıb sönmək üçün 2 yeni ümumi funksiya təyin edəcəyik.

# Təmiz ekran:

def displayClear (): oled.fill (0) oled.show () # bir yanıp sönmə funksiyası yaratmaq def blinkLed (sayı): i aralığında (0, sayı): led.on () yuxu (0.5) led.off () yuxu (0.5)

Beləliklə, indi əsas () funksiyamızı yenidən yaza bilərik:

while button.value ():

led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () time.sleep (PUB_TIME_SEC) blinkLed (3) displayClear ()

Son kodu GitHub -dan yükləyə bilərsiniz: localData.py və eyni zamanda tam kodun hazırlanması üçün istifadə olunan Jupyter Notebook: Jupyter Yerli Məlumat İnkişafı.

Addım 7: ESP -ni Yerli WiFi -yə bağlayın

ESP -ni Yerli WiFi -yə qoşun
ESP -ni Yerli WiFi -yə qoşun

Şəbəkə modulu WiFi bağlantısını konfiqurasiya etmək üçün istifadə olunur. İki WiFi interfeysi var, biri stansiya üçün (ESP8266 routerə qoşulduqda) və biri giriş nöqtəsi üçün (digər cihazlar ESP8266 -ya qoşulmaq üçün). Burada ESP yerli şəbəkəyə qoşulacaq. Kitabxananı çağıraq və şəbəkə məlumatlarımızı təyin edək:

idxal şəbəkəsi

WiFi_SSID = "SİZİN SİZİN" WiFi_PASS = "ŞİFRİNİZ"

Aşağıdakı funksiya ESP -ni yerli şəbəkənizə bağlamaq üçün istifadə edilə bilər:

def do_connect ():

wlan = network. WLAN (network. STA_IF) wlan.active (True) wlan.isconnected deyilsə (): çap edin ('şəbəkəyə qoşulur…') wlan.connect (WiFi_SSID, WiFi_SSID) wlan.isconnected deyil (): keçmək çap ('şəbəkə konfiqurasiyası:', wlan.ifconfig ())

Funksiyanı işlədərək nəticədə IP ünvanını əldə edə bilərsiniz:

do_connect ()

Nəticə belə olacaq:

şəbəkə konfiqurasiyası: ('10.0.1.2 ',' 255.255.255.0 ', '10.0.1.1', '10.0.1.1 ')

Mənim vəziyyətimdə, 10.0.1.2, ESP IP ünvanıdır.

Addım 8: ThingSpeak

The ThingSpeak
The ThingSpeak

Bu nöqtədə, bütün sensorlardakı məlumatları OLED -də nümayiş etdirməyi öyrəndik. İndi, bu məlumatları bir IoT platformasına, ThingSpeak -a necə göndərməyi görmək vaxtıdır.

Başlayaq!

Əvvəlcə ThinkSpeak.com -da bir hesabınız olmalıdır. Sonra, Kanal yaratmaq üçün təlimatları izləyin və Kanal ID -ni qeyd edin və API Açarını Yazın.

Yuxarıda Kanalımızda istifadə ediləcək 5 sahəni görə bilərsiniz.

Addım 9: MQTT Protokolu və ThingSpeak Bağlantısı

MQTT Protokolu və ThingSpeak Bağlantısı
MQTT Protokolu və ThingSpeak Bağlantısı

MQTT, əsasən simsiz şəbəkələr üzərindən bant genişliyi və gücü məhdud cihazları birləşdirmək üçün hazırlanmış bir nəşr/abunə arxitekturasıdır. TCP/IP yuvaları və ya WebSockets üzərində işləyən sadə və yüngül bir protokoldur. WebSockets üzərindən MQTT SSL ilə təmin edilə bilər. Nəşr/abunə arxitekturası, serverin davamlı olaraq sorğu keçirməsinə ehtiyac duymadan mesajların müştəri cihazlarına göndərilməsini təmin edir.

MQTT brokeri, ünsiyyətin mərkəzi nöqtəsidir və göndəricilərlə qanuni alıcılar arasında bütün mesajların göndərilməsindən məsuldur. Müştəri, brokerə qoşulan və məlumat əldə etmək üçün mövzuları dərc edə və ya abunə ola bilən hər hansı bir cihazdır. Bir mövzu broker üçün marşrutlaşdırma məlumatlarını ehtiva edir. Mesaj göndərmək istəyən hər bir müştəri onları müəyyən bir mövzuya göndərir və mesaj almaq istəyən hər bir müştəri müəyyən bir mövzuya abunə olur. Broker uyğun gələn mövzu ilə bütün mesajları uyğun müştərilərə çatdırır.

ThingSpeak ™ mqtt.thingspeak.com URL və 1883 limanında bir MQTT brokerinə malikdir. ThingSpeak broker həm MQTT nəşrini, həm də MQTT abunəsini dəstəkləyir.

Bizim vəziyyətimizdə istifadə edəcəyik: MQTT Publish

Şəkil
Şəkil

Şəkil mövzunun quruluşunu təsvir edir. Dərc etmək üçün Write API Açarı tələb olunur. Broker CONNACK ilə düzgün bir CONNECTrequest qəbul edir.

MQTT protokolu Micropython ikili sənədlərindəki daxili kitabxanada dəstəklənir-bu protokol WIFI üzərindən ESP8266-dan məlumatları pulsuz bir bulud verilənlər bazasına göndərmək üçün istifadə edilə bilər.

Umqtt.simple kitabxanasından istifadə edək:

umqtt.sadə idxal MQTTClient -dən

SERVER ID -nizi bilməklə MQTT müştəri obyektimizi yaratmaq mümkündür:

SUNUCU = "mqtt.thingspeak.com"

müştəri = MQTTClient ("umqtt_client", SERVER)

İndi ThingSpeak etimadnamənizi əlinizdə tutaraq:

CHANNEL_ID = "KANAL IDİNİZ"

WRITE_API_KEY = "AÇARINIZ BURADA"

MQTT "Mövzumuzu" yaradaq:

mövzu = "kanallar/" + KANAL_ID + "/yayımla/" + WRITE_API_KEY

Yaradılmış funksiyanı istifadə edərək məlumatlarımızı ThingSpeak IoT Xidmətinə göndərilməsini təmin edək və cavabını xüsusi məlumat dəyişənləri ilə əlaqələndirək:

temp, hum, extTemp, lum, butSts = colectData ()

Bu dəyişənlərin yenilənməsi ilə "MQTT Yükü" nü yarada bilərik:

payload = "field1 ="+str (temp)+"& field2 ="+str (hum)+"& field3 ="+str (extTemp)+"& field4 ="+str (lum)+"& field5 ="+str (butSts))

Və bu qədər! Aşağıdakı 3 satır kodunu istifadə edərək ThinsSpeak -ə məlumat göndərməyə hazırıq:

müştəri.connect ()

client.publish (mövzu, faydalı yük) client.disconnect ()

İndi kanal səhifənizə daxil olsanız (yuxarıdakı kimi) 5 sahənin hər birində sensorlarınızla əlaqəli məlumatların olacağını görəcəksiniz.

Addım 10: Sensor Data Logger

Sensor Məlumat Qeydiyyatçısı
Sensor Məlumat Qeydiyyatçısı

İndi bilirik ki, yalnız bir neçə kod xətti ilə məlumatları bir IoT xidmətinə yükləmək mümkündür, bunu müəyyən bir zaman aralığında avtomatik olaraq yerinə yetirmək üçün bir döngə funksiyası yaradaq ("Yerli məlumatlar" ilə etdiyimizə bənzər) ").

Daha əvvəl elan edilmiş eyni dəyişəndən (PUB_TIME_SEC) istifadə edərək, məlumatları davamlı olaraq kanalımıza daxil etmək üçün sadə bir əsas funksiya olacaq:

Doğru halda:

temp, hum, extTemp, lum, butSts = colectData () payload = "field1 ="+str (temp)+"& field2 ="+str (hum)+"& field3 ="+str (extTemp)+"& field4 ="+ str (lum)+"& field5 ="+str (butSts) client.connect () client.publish (mövzu, yük) client.disconnect () time.sleep (PUB_TIME_SEC)

Diqqət yetirin ki, "mövzu" kanalımızın etimadnaməsi ilə əlaqədardır və dəyişməyəcək.

ThingSpeak kanal səhifənizi axtararkən, məlumatların hər bir sahəyə davamlı olaraq yüklənəcəyini müşahidə edəcəksiniz. LDR -ni əhatə edə bilər, əlinizi temp/hum sensorlarına qoyub, düyməni basa bilərsiniz və s. Kanalın gələcək analiz üçün avtomatik olaraq bu məlumatları necə "qeyd" edəcəyini görə bilərsiniz.

Ümumiyyətlə, Məlumat Qeydiyyatı üçün mümkün olduğu qədər az enerji istifadə etməyə çalışmalıyıq, buna görə LED -dən istifadə etməyəcəyik və ya ekranı yerli olaraq göstərməyəcəyik. ESP cihazlarında da "dərin yuxu" vəziyyətinə salın, bu zaman mikroprosessor məlumatları tutub IoT platformasına göndərmə vaxtı çatana qədər minimum enerji vəziyyətində olacaq.

Ancaq burada fikir öyrənildikdə, əvvəllər olduğu kimi ekranı və LED -i də daxil edək. Bunu edərkən "qeydiyyatçı" funksiyamız olacaq:

while button.value ():

led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () temp, hum, extTemp, lum, butSts = colectData () payload = "field1 ="+str (temp)+"& field2 ="+str (hum)+"& field3 ="+str (extTemp)+"& field4 ="+str (lum)+"& field5 ="+str (butSts) müştəri.connect () client.publish (mövzu, faydalı yük) client.disconnect () time.sleep (PUB_TIME_SEC) blinkLed (3) displayClear ()

Tam microPython skriptini burada tapa bilərsiniz: dataLoggerTS_EXT.py və inkişaf üçün istifadə olunan Jupyter notebooku da burada tapa bilərsiniz: IoT ThingSpeak Data Logger EXT.ipynb.

Ssenarini ESP -də yükləmək üçün terminalınızda əmrdən istifadə edin:

ampy dataLoggerTS.py /main.py qoyur

Və ESP - sıfırlama düyməsini basın. ESP məlumatları tutacaq və ThingSpeak.com -da aşağıya basılana qədər onları qeyd edəcəksiniz (LED -in 3 dəfə yanıb -sönməsini və OLED -nin sönməsini gözləyin).

Addım 11: ThingView Tətbiqi

ThingView Tətbiqi
ThingView Tətbiqi

Daxil edilmiş məlumatları birbaşa ThingSpeak.com saytında və ya bir tətbiq vasitəsi ilə görmək olar, məsələn ThingsView!

ThingView, ThingSpeak kanallarınızı asan bir şəkildə görselleştirmenize imkan verən CINETICA tərəfindən hazırlanmış bir tətbiqdir, sadəcə kanal kimliğini daxil edin və getməyə hazırsınız.

İctimai kanallar üçün tətbiq pəncərə parametrlərinizə hörmət edəcək: rəng, vaxt cədvəli, qrafik növü və nəticələrin sayı. Mövcud versiya xətt və sütun qrafiklərini dəstəkləyir, spline qrafikləri xətt qrafikləri kimi göstərilir.

Şəxsi kanallar üçün məlumatlar, yalnız API açarı ilə xüsusi pəncərə parametrlərini oxumaq üçün heç bir yol olmadığı üçün standart parametrlərdən istifadə edərək göstəriləcəkdir.

ThingView APP ANDROID və IPHONE üçün endirilə bilər.

Addım 12: Nəticə

Nəticə
Nəticə

Həmişə olduğu kimi, ümid edirəm ki, bu layihə başqalarına maraqlı elektronika dünyasına yol tapmağa kömək edə bilər!

Detallar və son kod üçün GitHub depozitarımı ziyarət edin: IoT_TS_MQTT

Daha çox layihə üçün blogumu ziyarət edin: MJRoBot.org

Dünyanın cənubundan salamlar!

Növbəti təlimatımda görüşənədək!

Çox sağ ol, Marcelo

Tövsiyə: