Мазмұны:

IoT жеңілдетілді: ESP-MicroPython-MQTT-ThingSpeak: 12 қадам
IoT жеңілдетілді: ESP-MicroPython-MQTT-ThingSpeak: 12 қадам

Бейне: IoT жеңілдетілді: ESP-MicroPython-MQTT-ThingSpeak: 12 қадам

Бейне: IoT жеңілдетілді: ESP-MicroPython-MQTT-ThingSpeak: 12 қадам
Бейне: Удалённая работа | Народная экономика 2024, Қараша
Anonim
IoT жеңілдетілді: ESP-MicroPython-MQTT-ThingSpeak
IoT жеңілдетілді: ESP-MicroPython-MQTT-ThingSpeak

Алдыңғы оқулықта, Jupyter көмегімен ESP бойынша MicroPython, біз ESP құрылғысына MicroPython орнатуды және іске қосуды үйрендік. Даму ортасы ретінде Jupyter ноутбукін қолдана отырып, біз сенсорлардан қалай оқуға болатынын білдік (температура, ылғалдылық және жарықтық), біз бірнеше байланыс хаттамалары мен әдістерін қолданамыз, аналогтық, сандық, 1-сымды және I2C, бұл біздің түсірілгенді көрсету үшін соңғы әдіс. OLED дисплейіндегі деректер.

Енді, бұл оқулықта MQTT протоколы пайдаланылады, біз барлық алынған деректерді аламыз, оларды IoT қызметіне, ThingSpeak.com және мобильді қосымшаға (Thingsview) жібереміз, онда біз деректерді тіркеп, ойнай аламыз.

Міне, біздің жобаның блок -схемасы:

Кескін
Кескін

1 -қадам: БМ - материалдық есеп

  1. NodeMCU - 8,39 АҚШ доллары
  2. DHT22 температура мен салыстырмалы ылғалдылық сенсоры - 9,95 АҚШ доллары
  3. DS18B20 су өткізбейтін температура сенсоры - 5,95 АҚШ доллары
  4. OLED дисплей SSD1366- USD 8.99 (міндетті емес)
  5. LDR (1x)
  6. Жарық диодтары (1x) (Қосымша)
  7. Басу түймесі (1x)
  8. Резистор 4K7 Ом (2x)
  9. Резистор 10K Ом (1x)
  10. Резистор 220 Ом (1x)

2 -қадам: Hw

Hw
Hw

Біз мұнда қолданатын Hw - бұл оқулықта қолданылған: Jupyter көмегімен ESP -те Micropython. Барлық HW қосылымдары үшін оны қараңыз.

Ерекшелік - бұл жобада біз қолданылмайтын сервис.

Жоғарыда сіз БЖ толықтай көре аласыз. Құрылғыларды сол жерде көрсетілгендей қосыңыз.

3 -қадам: Micropython, REPL, Jupyter

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

Сізде ESP құрылғысына Micropython аудармашысы жүктелген болуы керек. Жүктелгеннен кейін сіз ESP бағдарламасын кез келген қол жетімді әдістермен/IDE көмегімен бағдарламалауыңыз керек, мысалы:

  • ЖАУАП БЕРУ
  • Jupyter дәптері
  • Му
  • ESPCut (тек Windows)
  • … Т

Jupyter көмегімен ESP бойынша Micropython оқулығымда мен ESP құрылғыларын басқару үшін MicroPython аудармашысын, ESPTool -ды қалай жүктеу және орнату және Jupyter Notebook -ты даму ортасы ретінде пайдалану туралы егжей -тегжейлі айтып бердім. Өзіңізге ыңғайлы нәрсені еркін қолданыңыз.

Мен әдетте барлық әзірлемелерді Jupyter Notebook -те жасаймын, мен соңғы кодты алғаннан кейін оларды Geany -ге көшіремін және оны Ampy көмегімен ESP -ке жүктеймін.

4 -қадам: сенсорлар

Сенсорлар
Сенсорлар

Кітапханаларды орнатайық, GPIO анықтайық, барлық датчиктерге жеке объектілер, функциялар жасайық:

A. DHT (температура мен ылғалдылық)

DHT кітапханасын орнатып, объект жасайық:

DHT22 импортынан

машинадан импорттау Pin dht22 = DHT22 (түйреуіш (12))

Енді DHT сенсорын оқу функциясын жасаңыз:

def readDht ():

dht22. Өлшем () қайтару dht22. температура (), dht22. ылғалдылық () DHT функциясын тексеру

басып шығару (readDht ())

Нәтиже мысалы болуы керек:

(17.7, 43.4)

B. DS18B20 (Сыртқы температура)

Кітапханаларды орнатып, объект жасайық:

onewire, ds18x20 импорттаңыз

импорт уақыты # 1 сымды құрылғы қай түйінге қосылатынын анықтаңыз ==> түйреуіш 2 (D4) dat = түйреуіш (2) # бір сымды нысанды жасаңыз ds = ds18x20. DS18X20 (onewire. OneWire (dat)) Құрылғыдағы құрылғыларды іздеңіз

датчиктер = ds.scan ()

басып шығару ('табылған құрылғылар:', сенсорлар)

Басылған нәтиже маңызды емес, бізге бірінші анықталған сенсор қажет: сенсорлар [0]. Ал енді сенсорлық мәліметтерді оқу функциясын құра аламыз:

def readDs ():

ds.convert_temp () time.sleep_ms (750) ds.read_temp (сенсорлар [0]) қайтару

Жасалған функцияны қолдана отырып сенсорды тексеру әрқашан маңызды

басып шығару (readDs ()) Егер сіз температура мәнін алсаңыз, сіздің кодыңыз дұрыс

17.5

C. LDR (Жарықтық)

LDR біздің ESP аналогтық түйреуішін пайдаланады (бұл ESP8266 жағдайында біреуі және ESP32 үшін бірнеше).

Толық ақпарат алу үшін менің ESP32 оқулығымды қараңыз.

Бұрынғыдай бірдей:

# импорт кітапханасы

ADC машиналық импортынан # нысанды анықтау adc = ADC (0) ADC мәнін оқу үшін қарапайым функция: adc.read () пайдаланылуы мүмкін. Есіңізде болсын, ішкі ADC 0 -ден 1023 -ке дейінгі 0 -ден 3.3В дейінгі кернеуді сәйкес сандық мәндерге түрлендіреді. Бізге «Жарықтық» қызығушылық танытқан кезде, біз Max жарығын сенсордан алынған максималды мән ретінде қарастырамыз (менің жағдайда 900) және минималды жарық, бұл менің жағдайда 40. Бұл мәндерге ие бола отырып, біз 40 -тан 900 -ге дейінгі шаманы 0 -ден 100% -ға дейін «картаға» түсіре аламыз. Ол үшін біз жаңа функция жасаймыз

def readLdr ():

lumPerct = (adc.read ()-40)*(10/86) # пайызбен түрлендіру («карта») қайтару раунды (lumPerct)

Функцияны print (readLDR ()) көмегімен тексеру керек. Нәтиже o мен 100 арасындағы бүтін сан болуы керек.

D. Push-Button (сандық енгізу)

Бұл жерде біз сандық сенсор ретінде басу түймесін қолданамыз, бірақ бұл іске қосқыштың «жаңғырығы» болуы мүмкін (мысалы, ҚОСУ/ӨШІРУ сорғысы).

# 13 түйреуішті кіріс ретінде анықтаңыз және ішкі тартқыш резисторды іске қосыңыз:

button = Pin (13, Pin. IN, Pin. PULL_UP) # Түйменің күйін оқу функциясы: def readBut (): return button.value ()

Print (readBut ()) функциясын оқу батырмасын тексеруге болады. Нәтижені басу «1» болуы керек. Түймені басқанда нәтиже «0» болуы керек

5 -қадам: Барлық сенсорлық деректерді жергілікті түрде түсіру және көрсету

Барлық сенсорлық деректерді жергілікті түрде алу және көрсету
Барлық сенсорлық деректерді жергілікті түрде алу және көрсету

Енді біз әр сенсор үшін бір функция құрдық, олардың барлығын бір уақытта оқитын соңғысын құрайық:

def colectData ():

temp, hum, = readDht () extTemp = readDs () lum = readLdr () butSts = readBut () return temp, hum, extTemp, lum, butSts Енді сіз қолдансаңыз

басып шығару (colectData ())

Датчиктерден алынған барлық деректерді қамтитын түйін пайда болады:

(17.4, 45.2, 17.3125, 103, 1)

Сонымен қатар, біз бұл деректерді жергілікті дисплейде көрсете аламыз:

# кітапхананы импорттаңыз және i2c объектісін жасаңыз

машиналық импорттан I2C i2c = I2C (scl = Pin (5), sda = Pin (4)) # импорт кітапханасы және импортталған объектіні құру ssd1306 i2c = I2C (scl = Pin (5), sda = Pin (4)) oled = ssd1306. SSD1306_I2C (128, 64, i2c, 0x3c) # функция жасау: 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 (temp, hum, extTemp, lum, butSts) функциясын қолданып деректерді көрсету

Опция ретінде мен сенсорларды оқи бастаған кезде жарық диодты қосамын, бұл деректер көрсетілгеннен кейін ӨШІРУЛІ болады. Бұл ESP дербес компьютерден ажыратылғанда және автоматты түрде жұмыс істегенде бағдарламаның жұмыс істейтінін растауға көмектеседі.

Сонымен, «негізгі функция:

# Барлық сенсорларды оқу үшін негізгі функция

def main (): # led.on () функциясымен деректерді көрсету temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off ()

Сонымен, main () функциясын орындай отырып, суретте көрсетілгендей OLED дисплейінде сенсордың мәліметтерін аламыз.

6-қадам: ESP іске қосылған кезде жергілікті станция кодын іске қосу

ESP іске қосылған кезде жергілікті станция кодын іске қосу
ESP іске қосылған кезде жергілікті станция кодын іске қосу

Бізде әзірге осының бәрі біздің ESP -те орындалатын бір файлда болуы мүмкін.

Кез келген мәтіндік редакторды ашып, оған барлық кодты енгізейік:

# жалпы кітапханаларды импорттау

машинадан импорттау Пин импорттау уақыты # түйреуіш 0 шығыс диапазоны ретінде анықтаңыз = Pin (0, Pin. OUT) # DHT dht импорттау DHT22 dht22 = DHT22 (түйреуіш (12)) # DHT мәнін оқу функциясы readDht (): dht22.seasure () dht22.temperature (), dht22.humidity () # DS18B20 onewire импорттау, ds18x20 # 1 сымды құрылғының қай істікшеге қосылатынын анықтау ==> pin 2 (D4) dat = Pin (2) # Бір сымды жасау ds = ds18x20. DS18X20 (onewire. OneWire (dat)) # шина датчиктеріндегі құрылғыларды іздеу = ds.scan () # DS18B20 ажыратымдылығын оқуDS () функциясы: ds.convert_temp () time.sleep_ms (750) қайтару round (ds.read_temp (датчиктер [0]), 1) ADC машина импортынан # LDR # нысанды анықтау adc = ADC (0) # функция жарықтықты оқу readLdr (): lumPerct = (adc.read ()-40) *(10/86) # пайызбен түрлендіру («карта») қайтару айналымы (lumPerct) # 13-істікті кіріс ретінде анықтаңыз және ішкі тартқыш резисторды іске қосыңыз: түйме = түйреуіш (13, Pin. IN, PIN. PULL_UP) # Оқу түймешігінің күйі: def readBut (): return button.value () # Барлық деректерді оқу функциясы: def cole ctData (): temp, hum, = readDht () extTemp = readDs () lum = readLdr () butSts = readBut () temp temp, hum, extTemp, lum, butSts # импорт кітапханасын қайтарады және I2C i2c машиналық импортынан i2c объектісін құрады. I2C (scl = Pin (5), sda = Pin (4)) # импорт кітапханасы және импорттау объектісін құру ssd1306 i2c = I2C (scl = Pin (5), sda = Pin (4)) oled = ssd1306. SSD1306_I2C (128, 64, i2c, 0x3c) # функциясын жасаңыз: 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) олед. мәтін («Lumin:» + str (lum) + «%», 0, 43) oled.text («Button:» + str (butSts), 0, 57) oled.show () # Барлық сенсорларды оқу үшін негізгі функция def main (): # led.on () temp, hum, extTemp, lum, butSts = colectData () displayData (temp, hum, extTemp, lum, butSts) led.off () '' '- функциясымен деректерді көрсету ----- негізгі функцияны іске қосыңыз -------- '' 'main ()

Оны сақтаңыз, мысалы localData.py.

Бұл кодты тікелей терминалда іске қосу үшін сізге Ampy қажет болады.

Алдымен, Терминалда Ampy -ге сериялық порт туралы хабарлауға рұқсат етіңіз:

экспорттау AMPY_PORT =/dev/tty. SLAB_USBtoUART

Енді біз ESP түбірлік каталогындағы файлдарды көре аламыз:

ampy ls

Жауап ретінде біз boot.py аламыз, бұл жүйеде жұмыс істейтін бірінші файл.

Енді Ampy көмегімен LocalData.py python сценарийін /main.py ретінде жүктейік, сондықтан сценарий жүктелгеннен кейін ғана іске қосылады:

ampy localData.py /main /py қойыңыз

Егер біз қазір ls пәрменін қолдансақ, сіз ESP ішінде 2 файлды көресіз: boot.py және main.py

ESP -ді қалпына келтіре отырып, localData.py бағдарламасы автоматты түрде іске қосылады, сенсорлық деректер дисплейде көрсетіледі.

Жоғарыда көрсетілген Терминалды басып шығару экраны біз не істегенімізді көрсетеді.

Жоғарыда көрсетілген кодпен дисплей тек бір рет көрсетіледі, бірақ біз main () функциясындағы циклды анықтай аламыз, ол әрбір анықталған уақыт аралығындағы деректерді көрсетеді (PUB_TIME_SEC), мысалы, біз түймені басқанша:

# цикл түйме басылғанша деректерді алады

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 айнымалысы сіздің үлгілеріңізді алғыңыз келетін уақыт бойынша жариялануы керек.

Біздің кодты жақсарту үшін біз циклден шығатынымызды хабарлау жақсы болар еді, ол үшін біз 2 жаңа жалпы функцияны анықтайтын боламыз, олардың бірі дисплейді тазарту үшін, екіншісі жарықдиодты белгілі бір рет жыпылықтау үшін.

# Дисплейді тазарту:

def displayClear (): oled.fill (0) oled.show () # жыпылықтау функциясын жасау def blinkLed (num): i үшін диапазонда (0, сан): led.on () ұйқы (0.5) led.off () ұйықтау (0,5)

Сонымен, біз енді main () функциясын қайта жаза аламыз:

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 ()

Соңғы кодты GitHub: localData.py сайтынан, сондай -ақ Jupyter жергілікті деректерді әзірлеу үшін пайдаланылатын Jupyter жазу кітапшасынан жүктеуге болады.

7 -қадам: ESP -ті жергілікті WiFi желісіне қосу

ESP -ті жергілікті WiFi желісіне қосу
ESP -ті жергілікті WiFi желісіне қосу

Желі модулі WiFi қосылымын конфигурациялау үшін қолданылады. Екі WiFi интерфейсі бар, біреуі станция үшін (ESP8266 маршрутизаторға қосылған кезде) және біреуі кіру нүктесі үшін (басқа құрылғылар үшін ESP8266 қосылады). Мұнда біздің ESP жергілікті желіге қосылады. Кітапханаға қоңырау шалып, желінің тіркелгі деректерін анықтайық:

импорттық желі

WiFi_SSID = «сіздің SSID» WiFi_PASS = «сіздің құпия сөзіңіз»

Төмендегі функцияны ESP -ті жергілікті желіге қосу үшін пайдалануға болады:

def do_connect ():

wlan = network. WLAN (network. STA_IF) wlan.active (True) wlan.isconnected () болмаса: басып шығару ('желіге қосылу…') wlan.connect (WiFi_SSID, WiFi_SSID) wlan.isconnected емес (): өту басып шығару ('желі конфигурациясы:', wlan.ifconfig ())

Функцияны іске қосқанда сіз IP мекенжайын ала аласыз:

do_connect ()

Нәтиже болады:

желі конфигурациясы: ('10.0.1.2 ',' 255.255.255.0 ', '10.0.1.1', '10.0.1.1 ')

Егер менің жағдайда, 10.0.1.2 - бұл ESP IP -адресі.

8 -қадам: ThingSpeak

The ThingSpeak
The ThingSpeak

Осы сәтте біз барлық сенсорлардан деректерді OLED -те көрсетіп алуды үйрендік. Енді бұл деректерді IoT платформасына, ThingSpeak -ке қалай жіберуге болатынын көрудің уақыты келді.

Бастайық!

Біріншіден, сізде ThinkSpeak.com сайтында тіркелгі болуы керек. Әрі қарай, Арнаны құру бойынша нұсқауларды орындаңыз және арна идентификаторы мен API кілтін жазыңыз.

Жоғарыда сіз біздің арнада қолданылатын 5 өрісті көре аласыз.

9 -қадам: MQTT протоколы және ThingSpeak қосылымы

MQTT протоколы және ThingSpeak қосылымы
MQTT протоколы және ThingSpeak қосылымы

MQTT-бұл өткізу қабілеті мен қуаты шектеулі құрылғыларды сымсыз желілер арқылы қосу үшін әзірленген жариялау/жазылу архитектурасы. Бұл TCP/IP розеткаларында немесе WebSockets -те жұмыс істейтін қарапайым және жеңіл хаттама. WebSockets арқылы MQTT SSL арқылы қорғалған болуы мүмкін. Жариялау/жазылу архитектурасы серверді үздіксіз сауықтыруды қажет етпейтін хабарламасыз клиенттік құрылғыларға жіберуге мүмкіндік береді.

MQTT брокері орталық байланыс нүктесі болып табылады және ол жіберушілер мен заңды алушылар арасындағы барлық хабарларды жөнелтуге жауапты. Клиент - бұл брокерге қосылатын және ақпаратқа қол жеткізу үшін тақырыптарды жариялауға немесе жазылуға болатын кез келген құрылғы. Тақырып брокерге арналған маршруттау ақпаратын қамтиды. Хабарлама жібергісі келетін әрбір клиент оларды белгілі бір тақырыпқа жариялайды, ал хабарлама алғысы келетін әрбір клиент белгілі бір тақырыпқа жазылады. Брокер сәйкес келетін клиенттерге сәйкес тақырыппен барлық хабарларды жеткізеді.

ThingSpeak ™ mqtt.thingspeak.com және 1883 портында MQTT брокері бар. ThingSpeak брокері MQTT жариялауды да, MQTT жазылуды да қолдайды.

Біздің жағдайда: MQTT Publish қолданамыз

Кескін
Кескін

Суретте тақырып құрылымы сипатталған. Write API кілті жариялау үшін қажет. Брокер CONNACK көмегімен дұрыс CONNECT сұрауын қабылдайды.

MQTT хаттамасы Micropython екілік файлдарындағы кіріктірілген кітапханада қолдау көрсетеді-бұл хаттаманы WIFI арқылы ESP8266 деректерін ақысыз бұлтты дерекқорға жіберуге пайдалануға болады.

Umqtt.simple кітапханасын қолданайық:

umqtt.simple MQTTClient импорттау

Біздің SERVER идентификаторын біле отырып, MQTT клиенттік объектісін құруға болады:

ҚЫЗМЕТКЕР = «mqtt.thingspeak.com»

клиент = MQTTClient («umqtt_client», SERVER)

Енді ThingSpeak тіркелгі деректерін қолыңызда ұстаңыз:

CHANNEL_ID = «СІЗДІҢ АРНА ИДЕНТІ»

WRITE_API_KEY = «СІЗДІҢ КІЛТІҢІЗ осы жерде»

MQTT «Тақырып» құрайық:

topic = «арналар/» + CHANNEL_ID + «/жариялау/» + WRITE_API_KEY

Берілген функцияны қолдана отырып, деректерімізді ThingSpeak IoT қызметіне жіберуге рұқсат етейік және оның жауабын нақты деректер айнымалыларымен байланыстырайық:

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

Жаңартылған айнымалылармен біз өзіміздің «MQTT жүктемесін» жасай аламыз:

пайдалы жүктеме = «өріс1 =»+str (темп)+«& өріс2 =»+str (хум)+«& өріс3 =»+str (extTemp)+«& өріс4 =»+str (lum)+«& өріс5 =»+str (butSts)

Және бұл! Біз ThinsSpeak -ке деректерді жіберуге дайынбыз, тек төмендегі кодтың 3 жолын қолдана отырып:

client.connect ()

client.publish (тақырып, жүктеме) client.disconnect ()

Енді, егер сіз өзіңіздің арнаңыздың бетіне кірсеңіз (жоғарыдағыдай), сіз 5 өрістің әрқайсысында сенсорларға қатысты деректер болатынын көресіз.

10 -қадам: сенсорлық мәліметтерді тіркеу құралы

Сенсорлық мәліметтерді тіркеуші
Сенсорлық мәліметтерді тіркеуші

Енді, кодтың бірнеше жолымен ғана IoT қызметіне деректерді жүктеуге болатынын білетіндіктен, оны белгілі бір уақыт аралығында автоматты түрде жасау үшін цикл функциясын құрайық (біз «Жергілікті деректермен» ұқсас) «).

Бұрын жарияланған бірдей айнымалы мәнді (PUB_TIME_SEC) қолдана отырып, деректерді үздіксіз алудың қарапайым функциясы, оларды біздің арнаға тіркеу:

шындық кезінде:

temp, hum, extTemp, lum, butSts = colectData () пайдалы жүктеме = «field1 =»+str (temp)+«& field2 =»+str (hum)+«& field3 =»+str (extTemp)+«& field4 =»+ str (lum)+«& field5 =»+str (butSts) client.connect () client.publish (тақырып, жүктеме) client.disconnect () time.sleep (PUB_TIME_SEC)

Назар аударыңыз, тек «пайдалы жүктеме» жаңартылуы керек, «тақырып» арнамыздың тіркелгі деректеріне қатысты болғаннан кейін өзгермейді.

ThingSpeak арнасының бетін іздеп, деректер әр өріске үздіксіз жүктелетінін байқайсыз. Сіз LDR -ді жаба аласыз, қолыңызды темп/сенсорға қоя аласыз, түймені басасыз және т.

Әдетте, деректерді тіркеу үшін біз мүмкіндігінше аз қуатты пайдалануға тырысуымыз керек, сондықтан біз жарықдиодты немесе дисплейді жергілікті түрде қолданбайтын боламыз. Сондай -ақ, бұл ESP құрылғыларында жиі кездеседі, оларды «терең ұйқыға» қойыңыз, онда микропроцессор деректерді жинап, оларды IoT платформасына жіберу уақытына дейін ең төменгі энергия күйінде болады.

Бірақ, мұнда идея үйреніп жатқанда, біз бұрынғыдай дисплей мен жарықдиодты қосамыз. Бұл жағдайда біздің «тіркеу» функциясы болады:

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 () пайдалы жүктеме = «field1 =»+str (temp)+«& field2 =»+str (hum)+«& field3 =»+str (extTemp)+«& field4 =»+str (lum)+«& field5 =»+str (butSts) клиенті.connect () client.publish (тақырып, пайдалы жүктеме) client.disconnect () time.sleep (PUB_TIME_SEC) blinkLed (3) displayClear ()

Толық microPython сценарийін мына жерден табуға болады: dataLoggerTS_EXT.py мен әзірлеу үшін пайдаланылған Jupyter жазу кітапшасын мына жерден табуға болады: IoT ThingSpeak Data Logger EXT.ipynb.

Сценарийді ESP -ке жүктеу үшін терминалға мына пәрменді қолданыңыз:

ampy dataLoggerTS.py /main.py қойыңыз

Және ESP - қалпына келтіру түймесін басыңыз. Сізде ESP деректері бар және оларды ThingSpeak.com сайтында төменгі жағы басылғанша тіркейтін болады (жарық диоды 3 рет жыпылықтағанша және OLED сөнгенше күтіңіз).

11 -қадам: ThingView қосымшасы

ThingView қосымшасы
ThingView қосымшасы

Тіркелген деректерді тікелей ThingSpeak.com сайтында немесе APP арқылы көруге болады, мысалы ThingsView!

ThingView - бұл CINETICA әзірлеген, ThingSpeak арналарын оңай бейнелеуге мүмкіндік беретін бағдарлама, арна идентификаторын енгізіңіз, сонда сіз дайынсыз.

Жалпыға ортақ арналар үшін бағдарлама сіздің терезе параметрлерін құрметтейді: түс, уақыт шкаласы, диаграмма түрі және нәтижелер саны. Ағымдағы нұсқа сызықтық және бағаналық диаграммаларды қолдайды, сплайн диаграммалары сызықтық диаграмма ретінде көрсетіледі.

Жеке арналар үшін деректер әдепкі параметрлер арқылы көрсетіледі, себебі жеке терезе параметрлерін тек API кілтімен оқуға болмайды.

ThingView қосымшасын ANDROID және IPHONE үшін жүктеуге болады.

12 -қадам: Қорытынды

Қорытынды
Қорытынды

Әдеттегідей, бұл жоба басқаларға электрониканың қызықты әлеміне жол табуға көмектеседі деп сенемін!

Мәліметтер мен соңғы кодты алу үшін менің GitHub депозитарийіме кіріңіз: IoT_TS_MQTT

Басқа жобалар үшін менің блогыма кіріңіз: MJRoBot.org

Әлемнің оңтүстігінен сәлем!

Келесі нұсқаулықта кездескенше!

Рақмет сізге, Марсело

Ұсынылған: