İçindekiler:

IoT Kolaylaştı: ESP-MicroPython-MQTT-ThingSpeak: 12 Adım
IoT Kolaylaştı: ESP-MicroPython-MQTT-ThingSpeak: 12 Adım

Video: IoT Kolaylaştı: ESP-MicroPython-MQTT-ThingSpeak: 12 Adım

Video: IoT Kolaylaştı: ESP-MicroPython-MQTT-ThingSpeak: 12 Adım
Video: Hayatınızı kolaylaştıracak ilginç ve pratik bilgiler 😋 Hangi sayıyı beğendiniz ? #shorts 2024, Temmuz
Anonim
IoT Kolaylaştı: ESP-MicroPython-MQTT-ThingSpeak
IoT Kolaylaştı: ESP-MicroPython-MQTT-ThingSpeak

Jupyter kullanarak ESP üzerinde MicroPython adlı önceki eğitimimde, MicroPython'un bir ESP cihazına nasıl kurulacağını ve çalıştırılacağını öğrendik. Geliştirme ortamımız olarak Jupyter Notebook'u kullanarak sensörlerden (Sıcaklık, Nem ve Parlaklık) okumayı da öğrendik. OLED ekrandaki veriler.

Şimdi, bir MQTT protokolü kullanan bu öğreticide, yakalanan tüm verileri alacağız ve bunları bir IoT hizmetine, ThingSpeak.com'a ve verilerle oturum açıp verilerle oynayabileceğimiz bir mobil Uygulamaya (Thingsview) göndereceğiz.

İşte projemizin blok şeması:

resim
resim

Adım 1: Malzeme Listesi - Malzeme Listesi

  1. NodeMCU - 8,39 ABD Doları
  2. DHT22 Sıcaklık ve Bağıl Nem Sensörü - USD 9.95
  3. DS18B20 Su Geçirmez Sıcaklık Sensörü - USD 5,95
  4. OLED Ekran SSD1366- USD 8,99 (isteğe bağlı)
  5. LDR (1x)
  6. LED'ler (1x) (Opsiyonel)
  7. Basma Düğmesi (1x)
  8. Direnç 4K7 ohm (2x)
  9. Direnç 10K ohm (1x)
  10. Direnç 220 ohm (1x)

2. Adım: Hw

Hw
Hw

Burada kullanacağımız Hw temel olarak öğreticide kullanılanla aynıdır: Jupyter Kullanan ESP'de Micropython. Tüm HW bağlantıları için buna bakın.

İstisna, bu projede kullanılmayacak olan Servo'dur.

Yukarıda tam HW'yi görebilirsiniz. Cihazları orada gösterildiği gibi bağlayın.

Adım 3: Micropython, REPL, Jupyter

Micropython, REPL, Jüpiter
Micropython, REPL, Jüpiter
Micropython, REPL, Jüpiter
Micropython, REPL, Jüpiter

ESP cihazınızda bir Micropython yorumlayıcısının yüklü olması gerekir. Yüklendikten sonra, ESP'nizi aşağıdakiler gibi mevcut yollardan/IDE'lerden herhangi birini kullanarak programlamalısınız:

  • REPL
  • Jüpiter Defter
  • ESPCut (yalnızca Windows)
  • … vesaire

Jupyter Kullanarak ESP'de Micropython adlı eğitimimde, MicroPython yorumlayıcısının nasıl indirileceğini ve kurulacağını, ESP cihazlarını yönetmek için ESPTool'u ve Geliştirme Ortamı olarak Jupyter Notebook'un nasıl kullanılacağını ayrıntılı olarak anlattım. Sizin için daha rahat olanı kullanmaktan çekinmeyin.

Genelde tüm geliştirmeleri Jupyter Notebook üzerinde yaparım ve son kodu aldığımda bunları Geany'ye kopyalarım ve Ampy kullanarak ESP'me yüklerim.

Adım 4: Sensörler

Sensörler
Sensörler

Kütüphaneleri kuralım, GPIO tanımlayalım, nesneler oluşturalım, tüm sensörler için ayrı ayrı işlevler yapalım:

A. DHT (Sıcaklık ve Nem)

DHT kütüphanesini kurup bir nesne oluşturalım:

dht'den DHT22'yi içe aktar

makineden içe aktarma Pin dht22 = DHT22(Pin(12))

Şimdi, DHT sensörünü okumak için bir fonksiyon oluşturun:

def readDht():

dht22.measure() dönüş dht22.temperature(), dht22.humidity() DHT işlevini test edin

yazdır (readDht())

Sonuç örneğin şöyle olmalıdır:

(17.7, 43.4)

B. DS18B20 (Dış Sıcaklık)

Kütüphaneleri kuralım ve bir nesne oluşturalım:

tek kabloyu içe aktar, ds18x20

alma zamanı # 1-telli cihazın hangi pinin bağlanacağını tanımlayın ==> pin 2 (D4) dat = Pin(2) # onewire nesnesini oluşturun ds = ds18x20. DS18X20(onewire. OneWire(dat)) Bu üzerindeki cihazları tarayın

sensörler = ds.scan()

print('bulunan cihazlar:', sensörler)

Yazdırılan sonuç gerçekten önemli değil, ihtiyacımız olan ilk algılanan sensör: sensörler[0]. Ve şimdi sensör verilerini okumak için bir fonksiyon oluşturabiliriz:

def readDs():

ds.convert_temp() time.sleep_ms(750) ds.read_temp(sensörler[0]) döndürür

Oluşturulan işlevi kullanarak sensörü test etmek her zaman önemlidir.

yazdır(readDs()) Bir sıcaklık değeri alırsanız, kodunuz doğrudur

17.5

C. LDR (Parlaklık)

LDR, ESP'mizin analog pinini kullanacaktır (ESP8266'da sadece bir tane ve ESP32'de birkaç tanedir).

Ayrıntılar için ESP32 eğitimime bakın.

Daha önce yapılanla aynı:

# içe aktarma kitaplığı

makineden içe aktarma ADC # Nesneyi tanımla adc = ADC(0) Basit bir işlev: adc.read(), ADC değerini okumak için kullanılabilir. Ancak, dahili ADC'nin 0 ila 1023 arasında değişen karşılık gelen dijital değerlerde 0 ila 3,3V arasındaki voltajları dönüştüreceğini unutmayın. "Parlaklık" ile ilgilendiğimizde, Maks ışığını sensörden yakalanan maksimum değer olarak kabul edeceğiz (benim fikrimde). durum 900) ve benim durumumdaki minimum ışık 40'tır. Bu değerlere sahip olarak, parlaklığın 0 ila %100'ünde 40 ila 900 arasındaki değeri "haritalayabiliriz". Bunun için yeni bir fonksiyon oluşturacağız.

def readLdr():

lumPerct = (adc.read()-40)*(10/86) # yüzde olarak dönüştür ("harita") dönüş turu(lumPerct)

işlevi print (readLDR()) kullanarak test etmelisiniz. Sonuç, o ile 100 arasında bir tam sayı olmalıdır.

D. Buton (Dijital Giriş)

Burada dijital sensör olarak bir Basmalı Düğme kullanıyoruz, ancak bu bir aktüatörün "yankı" olabilir (örneğin, AÇIK/KAPALI konuma getirilmiş bir pompa).

# pin 13'ü bir giriş olarak tanımlayın ve dahili bir Pull-up direncini etkinleştirin:

button = Pin(13, Pin. IN, Pin. PULL_UP) # Düğme durumunu okumak için fonksiyon: def readBut(): button.value() döndür

Düğmeyi print(readBut()) işlevini okuyarak test edebilirsiniz. Sonuç basmadan "1" olmalıdır. Düğmeye basıldığında sonuç "0" olmalıdır

Adım 5: Tüm Sensör Verilerini Yerel Olarak Yakalama ve Görüntüleme

Tüm Sensör Verilerini Yerel Olarak Yakalama ve Görüntüleme
Tüm Sensör Verilerini Yerel Olarak Yakalama ve Görüntüleme

Artık her sensör için bir fonksiyon oluşturduğumuza göre, hepsini aynı anda okuyacak sonuncuyu oluşturalım:

def colectData():

temp, uğultu, = readDht() extTemp = readDs() lum = readLdr() butSts = readBut() dönüş temp, uğultu, extTemp, lum, butSts Şimdi eğer kullanırsan

yazdır(colectData())

Sensörlerden alınan tüm verileri içeren bir demet ile sonuçlanacaktır:

(17.4, 45.2, 17.3125, 103, 1)

İsteğe bağlı olarak bu verileri yerel bir ekranda da gösterebiliriz:

# kitaplığı içe aktar ve i2c nesnesi oluştur

makineden içe aktar I2C i2c = I2C(scl=Pin(5), sda=Pin(4)) # kitaplığı içe aktar ve oled nesnesini içe aktar ssd1306 i2c = I2C(scl=Pin(5), sda=Pin(4)) oled = ssd1306. SSD1306_I2C(128, 64, i2c, 0x3c) # bir fonksiyon yarat: 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("HariciTemp: " + str(extTemp) + "oC", 0, 29) oled.text("Lumin: " + str(lum) + "%", 0, 43) oled.text("Button: " + str(butSts), 0, 57) oled.show() # displayData(temp, hum, extTemp, lum, butSts) işlevini kullanarak verileri görüntüleyin

Bir seçenek olarak, sensörleri okumaya başladığımızda AÇIK olacak, bu veriler görüntülendikten sonra KAPALI olacak LED'i de dahil edeceğim. Bunu yapmak, ESP'yi bilgisayardan ayırdığımızda ve otomatik olarak çalıştığında programın çalıştığını doğrulamaya yardımcı olacaktır.

Yani, ana işlev şöyle olacaktır:

# Tüm sensörleri okumak için ana fonksiyon

def main(): # verileri bir işlevle göster led.on() temp, hum, extTemp, lum, butSts = colectData() displayData(temp, hum, extTemp, lum, butSts) led.off()

Böylece, main()'i çalıştırarak, resimde gösterildiği gibi OLED'de görüntülenen sensör verilerini alacağız.

Adım 6: ESP Başlatmada Yerel İstasyon Kodunu Çalıştırma

ESP Başlatmada Yerel İstasyon Kodunu Çalıştırma
ESP Başlatmada Yerel İstasyon Kodunu Çalıştırma

Şimdiye kadar geliştirilen her şeyi ESP'miz tarafından yürütülmek üzere tek bir dosyada alabiliriz.

Herhangi bir metin düzenleyiciyi açalım ve üzerine tüm kodları yapıştıralım:

# genel kitaplıkları içe aktar

makineden içe aktarma Pin alma zamanı # pin 0'ı çıkış olarak tanımla led = Pin(0, Pin. OUT) # DHT'den DHT import DHT22 dht22 = DHT22(Pin(12)) # DHT okuma fonksiyonu def readDht(): dht22.measure () dönüş dht22.temperature(), dht22.humidity() # DS18B20 import onewire, ds18x20 # 1-telli cihazın hangi pinin bağlanacağını tanımlayın ==> pin 2 (D4) dat = Pin(2) # Tek kabloyu oluşturun nesne ds = ds18x20. DS18X20(onewire. OneWire(dat)) # veri yolundaki aygıtları tara sensörler = ds.scan() # DS18B20 okuma işlevi def readDs(): ds.convert_temp() time.sleep_ms(750) return round(ds.read_temp(sensors[0]), 1) # makine içe aktarımından LDR ADC # Nesne tanımla adc = ADC(0) #parlaklığı okumak için işlev def readLdr(): lumPerct = (adc.read()-40) *(10/86) # yüzde olarak dönüştür ("harita") dönüş turu(lumPerct) # pin 13'ü bir giriş olarak tanımlayın ve dahili bir Pull-up direncini etkinleştirin: button = Pin(13, Pin. IN, Pin. PULL_UP) # Düğme durumunu okumak için işlev: def readBut(): button.value() dönmek için # Tüm verileri okumak için işlev: def cole ctData(): temp, uğultu, = readDht() extTemp = readDs() lum = readLdr() butSts = readBut() temp, hum, extTemp, lum, butSts döndürür # kitaplığı içe aktar ve makine içe aktarma I2C'den nesne i2c oluştur i2c = I2C(scl=Pin(5), sda=Pin(4)) # kitaplığı içe aktar ve nesne oluştur oled içe aktar ssd1306 i2c = I2C(scl=Pin(5), sda=Pin(4)) oled = ssd1306. SSD1306_I2C(128, 64, i2c, 0x3c) # bir fonksiyon yarat: 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("HariciSıcaklık: " + str(hariciTemp) + "oC", 0, 29) oled. text("Lumin: " + str(lum) + "%", 0, 43) oled.text("Button: " + str(butSts), 0, 57) oled.show() # Tüm sensörleri okumak için ana fonksiyon def main(): # verileri bir işlevle göster led.on() temp, hum, extTemp, lum, butSts = colectData() displayData(temp, hum, extTemp, lum, butSts) led.off() '''- ----- ana işlevi çalıştır --------''' ana()

Örneğin localData.py olarak kaydedin.

Bu kodu doğrudan terminalinizde çalıştırmak için Ampy'ye ihtiyacınız olacak.

Öncelikle Terminalde Ampy'ye Seri portumuzu bildirelim:

AMPY_PORT=/dev/tty. SLAB_USB'denUART'a dışa aktar

Artık ESP kök dizinimizin içindeki dosyaları görebiliriz:

ampy ls

Yanıt olarak, sistemde çalışacak ilk dosya olan boot.py'yi alacağız.

Şimdi, python Script LocalData.py'yi /main.py olarak yüklemek için Ampy'yi kullanalım, böylece betik önyüklemeden hemen sonra çalışacaktır:

ampy localData.py /main/py koymak

Şimdi amp ls komutunu kullanırsak, ESP içinde 2 dosya göreceksiniz: boot.py ve main.py

ESP'nizi sıfırlamak, localData.py programının otomatik olarak çalışmasını sağlayarak sensör verilerini ekranda görüntüleyecektir.

Yukarıdaki Terminal yazdırma ekranı ne yaptığımızı gösterir.

Yukarıdaki kodla, ekran yalnızca bir kez gösterilecektir, ancak ana() işlevinde, tanımlanan her zaman aralığında (PUB_TIME_SEC) ve örneğin biz düğmeye basana kadar verileri gösterecek bir döngü tanımlayabiliriz:

# döngü butona basılana kadar veri alıyor

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 değişkeni, numunelerinizi istediğiniz zamana kadar bildirilmelidir.

Kodumuzu daha da geliştirmek için, döngüden çıkacağımızı bildirmekte fayda var, bunun için biri ekranı temizlemek ve diğeri LED'i belirli sayıda yanıp sönmek için 2 yeni genel fonksiyon tanımlayacağız.

# Ekranı temizle:

def displayClear(): oled.fill(0) oled.show() # bir göz kırpma işlevi yarat def yanıp sönmeLed(num): i in range(0, num): led.on() sleep(0.5) led.off() uyku(0.5)

Artık main() fonksiyonumuzu yeniden yazabiliriz:

while button.value():

led.on() temp, uğultu, extTemp, lum, butSts = colectData() displayData(temp, uğultu, extTemp, lum, butSts) led.off() time.sleep(PUB_TIME_SEC) flashLed(3) displayClear()

Son kod GitHub'ımdan indirilebilir: localData.py ve ayrıca tam kodun geliştirilmesi için kullanılan Jupyter Notebook: Jupyter Local Data Development.

7. Adım: ESP'yi Yerel WiFi'ye Bağlama

ESP'yi Yerel WiFi'ye Bağlama
ESP'yi Yerel WiFi'ye Bağlama

Ağ modülü, WiFi bağlantısını yapılandırmak için kullanılır. Biri istasyon için (ESP8266 bir yönlendiriciye bağlandığında) ve diğeri erişim noktası için (diğer cihazların ESP8266'ya bağlanması için) olmak üzere iki WiFi arabirimi vardır. Burada ESP'miz yerel ağa bağlanacaktır. Kütüphaneyi arayalım ve ağ kimlik bilgilerimizi tanımlayalım:

ithalat ağı

WiFi_SSID = "SSID'İNİZ" WiFi_PASS = "ŞİFRENİZ"

ESP'yi yerel ağınıza bağlamak için aşağıdaki işlev kullanılabilir:

def do_connect():

wlan = network. WLAN(network. STA_IF) wlan.active(True) wlan.isconnected() değilse: print('ağa bağlanılıyor…') wlan.connect(WiFi_SSID, WiFi_SSID) wlan.isconnected() değilken: pass print('ağ yapılandırması:', wlan.ifconfig())

İşlevi çalıştırarak, sonuç olarak IP adresini alabilirsiniz:

do_connect()

Sonuç:

ağ yapılandırması: ('10.0.1.2', '255.255.255.0', '10.0.1.1', '10.0.1.1')

Benim durumumda 10.0.1.2, ESP IP adresiydi.

Adım 8: Şey Konuşması

ŞeyKonuş
ŞeyKonuş

Bu noktada, tüm sensörlerden veri yakalamayı ve bunları OLED'imizde görüntülemeyi öğrendik. Şimdi, bu verilerin bir IoT platformu olan ThingSpeak'e nasıl gönderileceğini görmenin zamanı geldi.

Hadi başlayalım!

Öncelikle ThinkSpeak.com'da bir hesabınızın olması gerekir. Ardından, bir Kanal oluşturmak için talimatları izleyin ve Kanal Kimliğinizi ve API Anahtarını Yazma bilgilerinizi not edin.

Yukarıda Kanalımızda kullanılacak 5 alanı görebilirsiniz.

9. Adım: MQTT Protokolü ve ThingSpeak Bağlantısı

MQTT Protokolü ve ThingSpeak Bağlantısı
MQTT Protokolü ve ThingSpeak Bağlantısı

MQTT, öncelikle bant genişliğini ve gücü kısıtlı cihazları kablosuz ağlar üzerinden bağlamak için geliştirilmiş bir yayınlama/abone olma mimarisidir. TCP/IP soketleri veya WebSockets üzerinden çalışan basit ve hafif bir protokoldür. WebSockets üzerinden MQTT, SSL ile güvence altına alınabilir. Yayınla/abone ol mimarisi, aygıtın sunucuyu sürekli olarak sorgulamasına gerek kalmadan mesajların istemci aygıtlara iletilmesini sağlar.

MQTT aracısı, iletişimin merkezi noktasıdır ve gönderenler ile doğru alıcılar arasındaki tüm mesajların gönderilmesinden sorumludur. İstemci, aracıya bağlanan ve bilgilere erişmek için konuları yayınlayabilen veya bunlara abone olabilen herhangi bir aygıttır. Bir konu, aracı için yönlendirme bilgilerini içerir. Mesaj göndermek isteyen her müşteri belirli bir konuya yayınlar ve mesaj almak isteyen her müşteri belirli bir konuya abone olur. Aracı, eşleşen konuyla ilgili tüm iletileri uygun istemcilere iletir.

ThingSpeak™, mqtt.thingspeak.com URL'sinde ve 1883 numaralı bağlantı noktasında bir MQTT aracısına sahiptir. ThingSpeak aracısı, hem MQTT yayınlamayı hem de MQTT aboneliğini destekler.

Bizim durumumuzda şunu kullanacağız: MQTT Publish

resim
resim

Şekil konu yapısını açıklar. Yazma API Anahtarı yayınlamak için gereklidir. Aracı, CONNACK ile doğru bir CONNECTrequest'i onaylar.

MQTT protokolü, Micropython ikili dosyalarındaki yerleşik bir kitaplıkta desteklenir - bu protokol, ESP8266'nızdan WIFI üzerinden ücretsiz bir bulut veritabanına veri göndermek için kullanılabilir.

umqtt.simple kitaplığını kullanalım:

umqtt.simple'dan MQTTClient'i içe aktarın

SUNUCU Kimliğimizi bilerek, MQTT istemci nesnemizi oluşturmak mümkündür:

SUNUCU = "mqtt.thingspeak.com"

istemci = MQTTClient("umqtt_client", SUNUCU)

Şimdi, ThingSpeak kimlik bilgilerinizi elinizde bulundurarak:

CHANNEL_ID = "KANAL Kimliğiniz"

WRITE_API_KEY = "ANAHTARINIZ BURADA"

MQTT "Konu"muzu oluşturalım:

konu = "kanallar/" + CHANNEL_ID + "/yayınla/" + WRITE_API_KEY

Oluşturulan işlevi kullanarak verilerimizin ThingSpeak IoT Hizmetine gönderilmesini sağlayalım ve yanıtını belirli veri değişkenleriyle ilişkilendirelim:

temp, uğultu, extTemp, lum, butSts = colectData()

Bu değişkenler güncellendiğinde, "MQTT Yükümüzü" oluşturabiliriz:

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

Ve bu kadar! Aşağıdaki 3 satırlık kodu kullanarak ThinsSpeak'e veri göndermeye hazırız:

istemci.bağlantı()

client.publish(konu, yük) client.disconnect()

Şimdi kanal sayfanıza giderseniz (yukarıda benimki gibi) 5 alanın her birinin sensörlerinizle ilgili verileri olacağını göreceksiniz.

Adım 10: Sensör Veri Kaydedici

Sensör Veri Kaydedici
Sensör Veri Kaydedici

Artık sadece birkaç satır kodla bir IoT hizmetine veri yüklemenin mümkün olduğunu bildiğimize göre, bunu düzenli aralıklarla otomatik olarak yapmak için bir döngü işlevi oluşturalım ("Yerel verilerle yaptığımıza benzer" ").

Daha önce bildirilen aynı değişkeni (PUB_TIME_SEC) kullanarak, verileri sürekli olarak yakalamak ve bunları kanalımızda günlüğe kaydetmek için basit bir ana işlev:

Doğru iken:

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(konu, yük) client.disconnect() time.sleep(PUB_TIME_SEC)

"Konu" kanal kimlik bilgimizle ilgili olduğunda ve değişmediğinde yalnızca "yükün" güncellenmesi gerektiğini unutmayın.

ThingSpeak kanal sayfanızı ararken, verilerin her alana sürekli olarak yüklendiğini göreceksiniz. LDR'yi kapatabilir, elinizi sıcaklık/uğultu sensörlerine koyabilir, düğmeye basabilir, vb.

Genellikle, Veri Kaydı için mümkün olduğunca az güç kullanmaya çalışmalıyız, bu nedenle LED'i veya ekranı yerel olarak kullanmayacağız. Ayrıca, ESP cihazlarında yaygın olan, bunları "derin uykuya" koymak, mikroişlemcinin veri yakalama ve bunları IoT platformuna gönderme zamanı gelene kadar minimum enerji durumunda olacağı yerdir.

Ancak burada fikir öğrenmek olduğunda, daha önce yaptığımız gibi ekranı ve LED'i de dahil edelim. Bunu yaparak, "logger" fonksiyonumuz şöyle olacaktır:

while button.value():

led.on() temp, uğultu, extTemp, lum, butSts = colectData() displayData(temp, uğultu, extTemp, lum, butSts) led.off() temp, uğultu, extTemp, lum, butSts = colectData() payload = "field1="+str(temp)+"&field2="+str(hum)+"&field3="+str(extTemp)+"&field4="+str(lum)+"&field5="+str(butSts) istemci.connect() client.publish(konu, yük) client.disconnect() time.sleep(PUB_TIME_SEC) flashLed(3) displayClear()

Tam microPython betiği burada bulunabilir: dataLoggerTS_EXT.py ve geliştirme için kullanılan Jupyter not defteri burada da bulunabilir: IoT ThingSpeak Data Logger EXT.ipynb.

Komut dosyasını ESP'ye yüklemek için terminalinizde şu komutu kullanın:

ampy koymak dataLoggerTS.py /main.py

Ve ESP - sıfırlama düğmesine basın. ESP'nin verileri yakalamasını ve alt kısım basılı tutulana kadar ThingSpeak.com'da günlüğe kaydetmesini sağlayacaksınız (LED'in 3 kez yanıp sönmesini ve OLED'in kapanmasını bekleyin).

11. Adım: ThingView Uygulaması

ThingView Uygulaması
ThingView Uygulaması

Günlüğe kaydedilen veriler doğrudan ThingSpeak.com sitesinde veya bir APP aracılığıyla, örneğin ThingsView!

ThingView, CINETICA tarafından geliştirilen, ThingSpeak kanallarınızı kolay bir şekilde görselleştirmenizi sağlayan bir APP'dir, sadece kanal kimliğini girin ve gitmeye hazırsınız.

Genel kanallar için uygulama, Windows ayarlarınıza saygı duyacaktır: renk, zaman ölçeği, tablo türü ve sonuç sayısı. Mevcut sürüm çizgi ve sütun grafiklerini destekler, eğri grafikler çizgi grafikler olarak görüntülenir.

Özel kanallar için, özel pencere ayarlarını yalnızca API anahtarıyla okumanın bir yolu olmadığından, veriler varsayılan ayarlar kullanılarak görüntülenecektir.

ThingView APP, ANDROID ve IPHONE için indirilebilir.

Adım 12: Sonuç

Çözüm
Çözüm

Her zaman olduğu gibi, umarım bu proje başkalarının heyecan verici elektronik dünyasına girmelerine yardımcı olabilir!

Ayrıntılar ve son kod için lütfen GitHub depomu ziyaret edin: IoT_TS_MQTT

Daha fazla proje için lütfen blogumu ziyaret edin: MJRoBot.org

Dünyanın güneyinden selamlar!

Bir sonraki talimatımda görüşürüz!

Teşekkürler, Marcelo

Önerilen: