Мазмуну:
- Жабдуулар
- 1 -кадам: Температураны жана нымдуулукту өлчөө
- 2 -кадам: Долбоорду түзүү жана конфигурациялоо
- 3 -кадам: Китепканаларды орнотуу
- 4 -кадам: DHT11 сенсорун туташтырыңыз
- 5 -кадам: Маалыматты Булутка жөнөтүү
- 6 -кадам: Диагностика
- 7 -кадам: Долбоорду баштоо жана мүчүлүштүктөрдү оңдоо
- 8 -кадам: панелдин конфигурациясы
- 9 -кадам: Жыйынтык
Video: DHT11/DHT22 сенсорун булутка ESP8266 негизделген тактасы менен туташтыруу: 9 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Мурунку макалада мен ESP8266 негизделген NodeMCU тактамды Cloud4RPi кызматына туташтырдым. Эми чыныгы долбоордун убактысы келди!
Жабдуулар
Аппараттык талаптар:
- ESP8266 чипине негизделген ар кандай такта (мисалы, NodeMCU)
- DHT11 же DHT22 сенсору
Программалык камсыздоо жана кызматтар:
- Adafruit тарабынан DHT сенсор китепканасы - v1.3.7
- Adafruit Unified Sensor - 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 = / "_DI_ID_ID_IFI_IFI_IFI_IFI_IFI_IFT D CLOUD4RPI_TOKEN = / "_ СИЗДИН_ДЕВИК_ТОКЕН _ \"
Кошулган китепканалар автоматтык түрдө долбоордун папкасына орнотулат.
Main.cpp аталышы төмөнкүдөй көрүнөт:
#кошуу #кошуу #кошуу #кошуу "DHT.h"
4 -кадам: DHT11 сенсорун туташтырыңыз
Adafruit сенсор байланыш DHTtester.ino мисал менен камсыз кылат.
Бул код сенсорду инициализациялайт жана өлчөө жыйынтыгын сактоочу структураны аныктайт (эгер ал ийгиликтүү болгон болсо):
#Define DHTPIN 2 // DHT сенсоруна туташкан санарип PIN#DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht.begin (); //… DHHTResult {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, Сандык жана Стринг.
Китепкананын иштөө процесси cloud4rpi.io веб -сайтынан Device Token аркылуу API нускасын түзүүдөн башталат (чоо -жайын билүү үчүн макаланын 1 -бөлүгүн караңыз).
#if аныкталган (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #башка Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #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 ("Иш убактысы");
Эскертүү: Милис функциясы мен жумуш убактысын нөлгө чейин ~ 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; unsigned int hours = mins / 60; unsigned 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 -кадам: панелдин конфигурациясы
Бул кадамда булутка маалымат туташуусу иштейт. Эми, келгиле, маалыматтардын визуалдык өкүлчүлүгүн конфигурациялайбыз.
Мен төмөнкү панелди түзүү үчүн Dashboard конфигурация интерфейсин колдондум.
Куралдар тактасы бөлүшүлүүчү, ошондуктан мен аны дароо досум менен бөлүшөм.
9 -кадам: Жыйынтык
Толук долбоордун коду өзөгүндө жеткиликтүү.
Мунун баары азырынча!
Суроолор жана сунуштар комментарийлерде кабыл алынат.
Сунушталууда:
Node.js аркылуу Raspberry Piди булутка кантип туташтыруу керек: 7 кадам
Node.js аркылуу Raspberry Pi'ди булутка кантип туташтыруу керек: Бул окуу куралы Rodeberry Pi'ди булутка, айрыкча AskSensors IoT платформасына Node.js. колдонуп туташтыргысы келгендер үчүн пайдалуу. Raspberry Pi жокпу? Эгерде сизде азыр Raspberry Pi жок болсо, мен сизге Raspberry алууну сунуштайм
IoT негиздери: Mongoose OSти колдонуу менен IoTди булутка туташтыруу: 5 кадам
IoT негиздери: Mongoose OSти колдонуп IoTну булутка туташтыруу: Эгерде сиз электроника жана электроника менен алектенген адам болсоңуз, анда көбүнчө IoT деп кыскартылган нерселердин Интернетин кездештиресиз. Интернетке туташа турган түзмөктөрдүн жыйындысын билдирет! Ушундай адам болуу
Автоматташтырылган Smart Aquaponics (Булутка негизделген тактасы менен): 11 кадам
Автоматташтырылган Smart Aquaponics (Булуттагы Таблицанын жардамы менен): Aquaponics сиз каалаган жерде (ички же сырткы) өзүңүздүн органикалык азык -түлүгүңүздү өстүрүү мүмкүнчүлүгүн берет, абдан аз мейкиндикте, көбүрөөк өсүү менен, сууну азыраак пайдалануу менен жана эч кандай тышкы химиялык жер семирткичтерсиз. Ошондой эле, сиз булутка негизделген тактадан шарттарды көзөмөлдөй аласыз
DHT11 менен ESP32 негизделген M5Stack M5stick C аба ырайы монитору - DHT11 менен M5stick-Cдеги температуранын нымдуулугун жана жылуулук индексин көзөмөлдөңүз: 6 кадам
DHT11 менен ESP32 негизделген M5Stack M5stick C аба ырайы монитору | DHT11 менен M5stick-Cдеги температуранын нымдуулугун жана жылуулук индексин көзөмөлдөңүз: Салам балдар, бул көрсөтмөлөрдө биз DHT11 температура сенсорун m5stick-C менен (m5stack менен иштеп чыгуу тактасы) кантип интерфейс кылууну жана m5stick-C дисплейинде көрсөтүүнү үйрөнөбүз. Ошентип, бул үйрөткүчтө биз температураны, нымдуулукту & жылуулук мен
УЗИ сенсорун колдонуу менен Arduino негизделген автономдуу бот: 5 кадам (сүрөттөр менен)
УЗИ сенсорун колдонуу менен Arduino негизделген автономдуу бот: Ultrasonic Sensor.This ботту колдонуу менен өзүңүздүн Arduino негизделген автономдуу ботуңузду түзүңүз. Негизинен, ал жолундагы ар кандай тоскоолдуктарды аныктайт жана эң жакшы чечимди кабыл алат