- Компоненте потребне
- Кружни дијаграм
- ДХТ11 Сензор температуре и влажности
- Програмирање НодеМЦУ ЕСП8266 Праћење температуре и влажности уживо
Микроконтролери имају малу унутрашњу меморију која није довољна за дуго чување података генерисаних сензорима, или морате користити неки спољни меморијски уређај или податке можете сачувати на неком облаку помоћу интернета. Такође, понекад постаје тешко управљати када је сензор постављен на неком месту са екстремним условима до кога човек не може да дође или га је тешко често посећивати. Да бисмо решили ову врсту проблема, увек истражујемо начине на које желимо да надгледамо податке сензора у реалном времену са било ког места, без икаквог физичког присуства на том месту.
У реалном времену базе података могу да се користе у овом сценарију, где само треба да интерфејс неки контролер који може бити повезан на интернет и може бити у стању да размењују податке са облака серверу. Подаци сервера могу бити корисни у праћењу понашања система у стварном времену, аналитике база података, статистичке анализе и обраде и тумачења за будући случај употребе. У ту сврху постоји пуно ИоТ хардверских платформи и Цлоуд платформи. Ако наиђете на потешкоће у проналажењу праве платформе за своју ИоТ апликацију, следите везу.
Раније смо већ покривали ТхингСпеак, Адафруит ИО и многе друге ИоТ софтвере. Данас ћемо градити сличан пројекат где ћемо користити сензор температуре и влажности ДХТ11 и НодеМЦУ ЕСП8266 модул за бележење температуре и влажности у реалном времену на Гоогле-овом Фиребасе серверу базе података.
Пројекат ћемо поделити у два одељка. Прво ћемо почети са састављањем хардверских компоненти и постављањем фирмвера у њега. И друго, користићемо Фиребасе за подешавање са НодеМЦУ за размену података у реалном времену. Ако сте нови у ЕСП8266 или Фиребасеу, следите наш претходни водич о контроли ЛЕД-а помоћу Фиребасе-а.
Компоненте потребне
- НодеМЦУ ЕСП8266 модул
- ДХТ11 Сензор температуре и влажности
Кружни дијаграм
ДХТ11 Сензор температуре и влажности
ДХТ11 модул садржи комплекс влаге и температуре са калибрисаним дигиталним излазним сигналом, што значи да је ДХТ11 сензорски модул комбиновани модул за детекцију влажности и температуре који даје калибрисани дигитални излазни сигнал. ДХТ11 нам даје врло прецизне вредности влажности и температуре и обезбеђује високу поузданост и дуготрајну стабилност. Овај сензор има компоненту за мерење влажности отпорног типа и компоненту за мерење температуре типа НТЦ са уграђеним 8-битним микроконтролером који има брз одзив и исплатив и доступан у 4-пинском једноредном пакету.
Раније смо користили ЕСП12Е за ажурирање очитавања ДХТ11 на веб серверу, осим тога можете проверити све пројекте засноване на ДХТ11 где смо користили ДХТ11 за повезивање са многим другим микроконтролерима попут Ардуина, ПИЦ-а, Распберри-а и уграђеном метеоролошком станицом користећи их.
Програмирање НодеМЦУ ЕСП8266 Праћење температуре и влажности уживо
Комплетан програм са радним видеом дат је на крају. Овде објашњавамо неколико важних делова кода.
Прво укључите библиотеке за употребу ЕСП8266 и фиребасе-а.
#инцлуде
Преузмите и инсталирајте библиотеке пратећи доње линкове:
хттпс://гитхуб.цом/ФиребасеЕктендед/фиребасе-ардуино/блоб/мастер/срц/Фиребасе.х
хттпс://гитхуб.цом/ббланцхон/АрдуиноЈсон
Приликом компајлирања , ако добијете грешку да библиотека АрдуиноЈсон.х није инсталирана, инсталирајте је помоћу горе дане везе.
Програмираћемо НодеМЦУ да узима очитавања са ДХТ11 сензора и гура га у Фиребасе на сваких 5 секунди интервала. Поставићемо пут за убацивање података. Тренутно два параметра, тј. влажност и температура се шаљу истим родитељским путем и различитим дечјим путем.
Ова два параметра су веома важна за комуникацију са фиребасеом. Постављање ових параметара омогућиће размену података између и ЕСП8266 и фиребасе-а. Да бисте пронашли ове параметре за свој пројекат, следите наш претходни водич о постављању Фиребасе-а.
#дефине ФИРЕБАСЕ_ХОСТ "иоур-пројецт.фиребасеио.цом" // адреса имена пројекта из ИД-а фиребасе-а #дефине ФИРЕБАСЕ_АУТХ "Уејк9РОккккккккккккккккккккккфКДДкхН" // тајни кључ генерисан из фиребасе-а
Након успешног проналаска акредитива, само замените горњи код.
Унесите свој Ви-Фи ССИД и лозинку да бисте се повезали са мрежом.
#дефине ВИФИ_ССИД "име_ мреже" // унесите име свог дома или јавног вифи-а #дефине ВИФИ_ПАССВОРД "лозинка" // лозинка за вифи ссид
Дефинишите ДХТ пин података у НодеМЦУ. У НодеМЦУ можете користити било који дигитални ГПИО пин.
#дефине ДХТПИН Д4
ДХТ библиотека направљена је за све варијанте ДХТ-а и долази са опцијом коју ДХТ сензор желите користити, на пример, ДХТ11 или ДХТ22. Само одаберите прави ДХТ сензор и наставите.
#дефине ДХТТИПЕ ДХТ11 // изаберите дхт тип као ДХТ 11 или ДХТ22 ДХТ дхт (ДХТПИН, ДХТТИПЕ);
Повежите се са изабраном Ви-Фи мрежом, а такође се повежите и са сервером базе података Фиребасе.
ВиФи.бегин (ВИФИ_ССИД, ВИФИ_ПАССВОРД); Фиребасе.бегин (ФИРЕБАСЕ_ХОСТ, ФИРЕБАСЕ_АУТХ);
Почните да читате са пина Д4 НодеМЦУ.
дхт.бегин ();
Узмите очитања влажности и температуре са ДХТ сензора и сачувајте као плутајућу вредност.
флоат х = дхт.реадХумидити (); // Очитавање температуре или влажности траје око 250 милисекунди! флоат т = дхт.реадТемпературе (); // Очитавање температуре као Целзијуса (подразумевано)
Само проверите да ли је ДХТ сензор правилно ожичен или није оштећен и да ли контролер може очитати очитавања са њега. Ако се очитавања не приказују, вероватно је сензор оштећен, само прикажите поруку о грешци и вратите се да бисте поново проверили без наставка.
иф (иснан (х) - иснан (т)) {// Проверите да ли је читало неуспешно и изађите раније (да бисте покушали поново). Сериал.принтлн (Ф („Није успело читање са ДХТ сензора!“)); повратак; }
Штампајте податке сензора у серијски монитор за отклањање грешака и сачувајте вредности температуре и влажности у облику низа да бисте их послали у базу података. Такође имајте на уму да је минимално кашњење потребно између два очитавања са сензора ДХТ11 2 секунде, зато увек користите кашњење веће од 2 секунде. Да бисте сазнали више о ДХТ11, можете погледати званични лист података.
Сериал.принт ("Влажност:"); Сериал.принт (х); Стринг фиреХумид = Низ (х) + Низ ("%"); // претварање целобројне влажности у влажност низа Сериал.принт ("% Температуре:"); Сериал.принт (т); Сериал.принтлн ("° Ц"); Стринг фиреТемп = Низ (т) + Низ ("° Ц"); кашњење (4000);
Напокон, пошаљите податке о температури и влажности у фиребасе на путањи „иоур-пројецт.фиребасеио.цом/ДХТ11/Хумидити/“.
Фиребасе.пусхСтринг ("/ ДХТ11 / Влажност", фиреХумид); // подешавање путање и слање очитавања Фиребасе.пусхСтринг ("/ ДХТ11 / Температуре", фиреТемп); // подешавање путање и слање очитавања
Све податке можете видети на свом Фиребасе налогу. Само идите на одељак „ База података “ у „ Вашем пројекту “ на „ Моја конзола “ у Фиребасе-у.
Да бисте подесили Фиребасе за слање и надгледање података, можете погледати наш претходни водич.
Комплетни код и видео за ово надгледање температуре и влажности на основу ИоТ-а дати су у наставку.