Мазмұны:
- Жабдықтар
- 1 -қадам: Температура мен ылғалдылықты өлшеңіз
- 2 -қадам: Жобаны жасаңыз және конфигурациялаңыз
- 3 -қадам: Кітапханаларды орнатыңыз
- 4 -қадам: DHT11 датчигін қосыңыз
- 5 -қадам: деректерді бұлтқа жіберу
- 6 -қадам: Диагностика
- 7 -қадам: Жобаны бастау және жөндеу
- 8 -қадам: бақылау тақтасын конфигурациялау
- 9 -қадам: Қорытынды
Бейне: DHT11/DHT22 сенсорын ESP8266 негізіндегі тақтаның көмегімен бұлтқа қосу: 9 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Алдыңғы мақалада мен ESP8266 негізіндегі NodeMCU тақтасын Cloud4RPi қызметіне қостым. Енді нақты жобаның уақыты келді!
Жабдықтар
Аппараттық құралдарға қойылатын талаптар:
- ESP8266 чипіне негізделген кез келген тақта (мысалы, NodeMCU)
- DHT11 немесе DHT22 сенсоры
Прграммалық жабдықтау мен қызметтер:
- Adafruit DHT сенсорлық кітапханасы - v1.3.7
- Adafruit бірыңғай сенсоры - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - IoT құрылғыларына арналған бұлтты басқару тақтасы
- VSCode үшін PlatformIO IDE
1 -қадам: Температура мен ылғалдылықты өлшеңіз
Менде DHT11 сенсоры болды, сондықтан мен оны температура мен ылғалдылықты өлшеу үшін қолдануды шештім. Сенсорлық мәліметтерді оқу үшін Arduino кітапханасын таңдайық.
Arduino тізілімінде бірнеше кітапхана бар, олардың ішінен мен ең танымалын таңдадым.
Олардың GitHub репозиторийіне сәйкес, бізден Adafruit Unified Sensor пакетін қосу қажет.
2 -қадам: Жобаны жасаңыз және конфигурациялаңыз
Мен бірінші бөлімде PlatformIO жобасын құру және кітапханаларды қалай орнату керектігін айттым. Менің жобам «MyNodeMCU» деп аталады. Құрылым жоғарыда көрсетілген.
Бұл жоба Cloud4RPi-дің сәл өзгертілген мысалы болып табылады, мен құрылғы белгісін және Wi-Fi тіркелгі деректерін кодтың орнына конфигурация файлында сақтауға шешім қабылдадым.
Platform.io файлы келесідей көрінеді:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] платформа = espressif8266 құрылымы = arduino тақтасы = nodemcuv2
3 -қадам: Кітапханаларды орнатыңыз
Кітапханаларды орнату өте қарапайым. Сіз мұны IDE графикалық интерфейсінен немесе platform.io файлының lib_deps бөліміне қажетті кітапхана аттарын қосу арқылы жасай аласыз:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit бірыңғай сенсоры DHT сенсорының кітапханасы build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DEBUG = «-WD_ID_ID_ID_ID_ID D CLOUD4RPI_TOKEN = / «_ СІЗДІҢ ҚҰРЫЛҒЫҢЫЗ_ТОҚЕН _ \»
Қосылған кітапханалар жобаның ішкі қалтасына автоматты түрде орнатылады.
Main.cpp тақырыбы келесідей көрінеді:
#қосу #қосу #қосу #қосу «DHT.h»
4 -қадам: DHT11 датчигін қосыңыз
Adafruit DHTtester.ino сенсор қосылымының мысалын ұсынады.
Бұл код сенсорды инициализациялайды және өлшеу нәтижесін сақтайтын құрылымды анықтайды (егер ол сәтті болса):
#define DHTPIN 2 // DHT сенсорына қосылған сандық түйін#DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… құрылым DHT_Result {float h; жүзу t; }; DHT_Result dhtResult;
Келесі функция сенсорлық деректерді қалай оқу керектігін және оны жоғарыда сипатталған деректер құрылымында сақтауды көрсетеді
void readSensors () {float h = dht.readHumidity (); // Оқу температурасы Цельсий бойынша (әдепкі) float t = dht.readTemperature ();
// Кез келген оқу сәтсіз болғанын тексеріңіз және шығыңыз
if (isnan (h) || isnan (t)) {Serial.println (F («DHT сенсорынан оқу мүмкін болмады!»)); қайтару; } dhtResult.h = h; dhtResult.t = t; }
5 -қадам: деректерді бұлтқа жіберу
Бізде бұл деректер болғаннан кейін, келесі қадам - оны Cloud4RPi қызметіне жіберу.
Cloud4RPi for Arduino бетінде келесі әдістердің жиынтығы болып табылатын API кітапханасы сипатталған:
- айнымалыларды құру, оқу және жаңарту,
- MQTT протоколы арқылы айнымалы мәндерді бұлтқа жіберу.
Кітапхана үш айнымалы түрді қолдайды: Bool, Сандық және String.
Кітапхананың жұмыс процесі cloud4rpi.io веб -сайтынан Device Token көмегімен API данасын құрудан басталады (толығырақ мақаланың 1 бөлімін қараңыз).
#if анықталған (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #басқа Cloud4RPi c4r («!!! _ҚҰРЫЛЫСЫ_ТОҚЫЛБАЙДЫ _ !!!»); #endif
Содан кейін DHT11 көрсеткіштері үшін айнымалыларды жариялаңыз:
c4r.declareNumericVariable («DHT11_Temp»); c4r.declareNumericVariable («DHT11_Hum»);
Содан кейін сенсордан деректерді алыңыз, оларды айнымалыларға сақтаңыз және деректерді Cloud4RPi -де жариялаңыз:
c4r.setVariable («DHT11_Temp», dhtResult.t); c4r.setVariable («DHT11_Hum», dhtResult.h); c4r.publishData ();
Температура мен ылғалдылық тез өзгермейді, сондықтан 5 минут ішінде бірнеше мән жіберу қажет емес.
6 -қадам: Диагностика
Cloud4RPi диагностикалық деректерді және айнымалы мәндерді қолдайды. Мен диагностикалық деректер ретінде жұмыс уақытын, Wi-Fi сигналының күшін және IP мекенжайын қолдандым:
c4r.declareDiagVariable («IP_Address»); c4r.declareDiagVariable («RSSI»); // WiFi сигналының күші c4r.declareDiagVariable («Жұмыс уақыты»);
Ескерту: жұмыс уақытын алу үшін мен қолданатын millis функциясы ~ 50 күнде нөлге тең болады. Бұл менің жобам үшін жеткілікті.
Келесі код диагностикалық айнымалы мәндерді орнатады:
c4r.setDiagVariable («RSSI», (String) WiFi. RSSI () + «dBm»); c4r.setDiagVariable («IP_Address», WiFi.localIP (). toString ()); c4r.setDiagVariable («Жұмыс уақыты», uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
UptimeHumanReadable функциясы миллисекундтарды ыңғайлы пішінге түрлендіреді:
String uptimeHumanReadable (белгісіз ұзақ миллисекундтар) {static char uptimeStr [32]; белгісіз ұзақ секунд = миллисекунд / 1000; белгісіз ұзақ минут = сек / 60; қол қойылмаған int сағ = мин / 60; қол қойылмаған int days = сағат / 24; секунд -= мин * 60; мин -= сағат * 60; сағат -= күн * 24; sprintf (uptimeStr, «%d күн%2.2d:%2.2d:%2.2d», (байт) күн, (байт) сағат, (байт) мин, (байт) сек); String қайтару (uptimeStr); }
Функция таңғажайып үлкен санның орнына 5 күн 10:23:14 сияқты жолды шығарады.
7 -қадам: Жобаны бастау және жөндеу
Жасалған кодты құрастырып, оны NodeMCU -де жыпылықтағаннан кейін, құрылғы бұлтты қызметке қосылып, деректерді жібере бастайды.
CLOUD4RPI_DEBUG препроцессорының айнымалы мәнін 1 -ге орнату арқылы тіркеу толықтығын арттыруға болады (platform.io файлындағы build_flags бөліміне -D CLOUD4RPI_DEBUG = 1 қосыңыз).
Содан кейін, cloud4rpi.io сайтын ашып, жаңа құрылғыны желіде байқаңыз. Құрылғыдан алынған барлық айнымалы мәндерді көру үшін оны ашыңыз: сенсор және диагностика.
8 -қадам: бақылау тақтасын конфигурациялау
Бұл қадамда бұлтқа деректер байланысы жұмыс істейді. Енді деректердің визуалды көрінісін конфигурациялайық.
Мен келесі бақылау тақтасын жасау үшін бақылау тақтасының конфигурация интерфейсін қолдандым.
Бақылау тақтасы ортақ, сондықтан мен оны бірден досыммен бөлісемін.
9 -қадам: Қорытынды
Жобаның толық коды түпнұсқада қол жетімді.
Әзірге бәрі осында!
Сұрақтар мен ұсыныстар түсініктемелерде қабылданады.
Ұсынылған:
DHT22 ылғалдылық пен температура сенсорын Arduino көмегімен қалай қолдануға болады: 6 қадам
DHT22 ылғалдылық пен температура сенсорын Arduino көмегімен қалай қолдануға болады: Бұл оқулықта біз DHT22 ылғалдылық пен температура сенсорын Arduino көмегімен қалай қолдануды және OLED дисплейінде мәндерді көрсетуді үйренеміз
Arduino WiFi бұлтқа ESP8266 көмегімен қосылады: 7 қадам
ESP8266 көмегімен Arduino WiFi -ді бұлтқа қосу: Бұл оқулықта біз Arduino -ны WiFi арқылы IoT бұлтына қалай қосу керектігін түсіндіреміз. AskSensors бұлтымен байланысу үшін
DHT11 сенсорын Arduino көмегімен қалай қолдануға болады: 5 қадам
DHT11 датчигін Arduino көмегімен қалай қолдануға болады: Бұл оқулықта біз Arduino көмегімен DHT11 сенсорымен жұмыс жасаймыз.DHT11 температураны және ылғалдылықты өлшеуге болады.Қажетті компоненттер: Arduino NanoDHT11 температура мен ылғалдылық сенсоры USB Mini Jumper кабельдері Қажетті кітапхана: DHT кітапханасы
IoT негіздері: Mongoose ОЖ көмегімен бұлтқа IoT қосу: 5 қадам
IoT негіздері: Mongoose ОЖ көмегімен бұлтқа интеллектуалды байланыс орнату: егер сіз электроника мен электроникаға бейім адам болсаңыз, сіз әдетте заттар интернеті терминін кездестіресіз, ол әдетте IoT деп аталады. Интернетке қосыла алатын құрылғылар жиынтығын білдіреді! Осындай адам болу
Arduino негізіндегі байланыссыз инфрақызыл термометр - IR негізіндегі термометр Arduino көмегімен: 4 қадам
Arduino негізіндегі байланыссыз инфрақызыл термометр | Ардуиноны қолданатын инфрақызыл термометр: Сәлеметсіз бе, балалар, біз индуктивті емес термометр жасаймыз, өйткені кейде сұйықтықтың/қатты заттың температурасы тым жоғары немесе төмен болады, содан кейін онымен байланыс жасау және оны оқу қиын. сол кездегі температура