Мазмұны:
- Жабдықтар
- 1 -қадам: ерекшеліктері
- 2 -қадам: ПХД
- 3 -қадам: құрастыру
- 4 -қадам: Бағдарламалауға шолу
- 5 -қадам: кірістер
- 6 -қадам: шығыс
- 7 -қадам: тіркеу
- 8 -қадам: дыбыстық сигнал
- 9 -қадам: IoT сыртқы интеграциясы
- 10 -қадам: Қолдану
- 11 -қадам: Болашаққа жоспарлар
Бейне: ESP32 Smart Home Hub: 11 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Сенсорлық деректердің үлкен көлемін өңдей алатын, бірнеше шығысы бар, интернетке немесе жергілікті желіге қосылатын жүйені құру ұзақ уақыт пен үлкен күш -жігерді қажет етеді. Көбінесе өздерінің ақылды үй желілерін құрғысы келетін адамдар реттелетін компоненттерді тауып, оларды үлкен жүйеге жинай алады. Сондықтан мен IoT қосылған сенсорлар мен шығуларды құруды жеңілдететін модульдік және мүмкіндіктерге бай платформа жасағым келді.
Бұл жобаға демеушілік көрсеткен DFRobot пен PCBGOGO.com -ға рахмет!
Қосымша ақпарат алу үшін Github репозиторийіне кіріңіз:
Жабдықтар
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
DHT22 сенсоры
www.dfrobot.com/product-1102.html
-
APDS9960 жарық пен қимыл сенсоры
www.dfrobot.com/product-1361.html
-
I2C 20x4 СКД модулі
www.dfrobot.com/product-590.html
-
Аналогтық RGB жарық диодты жолағы
www.dfrobot.com/product-1829.html
- DRV8825 қадамдық мотор драйверлері
- SD картаны оқу құралы
- NEMA17 қадамдық қозғалтқыштары
1 -қадам: ерекшеліктері
Бұл тақтаның басты ерекшелігі - барлық байланыс, сенсорлық көрсеткіштер мен шығуларды өңдейтін ESP32 FireBeetle Development Board. Екі биполярлы қозғалтқышты басқаратын екі сатылы қозғалтқыш бар.
I2C шинасы APDS9960 немесе СКД сияқты компоненттермен пайдалану үшін де сынған. Температураны оқу үшін DHT22 сенсорына қосылатын түйреуіштер, сондай -ақ сыртқы жарық деңгейін оқу үшін фоторезистор бар.
Тақтада жарықдиодты шамдарды басқаруға арналған үш MOSFET бар аналогты жарық жолағы бар.
2 -қадам: ПХД
Мен ПХД құрастыру процесін алдымен Eagle -де схема құрудан бастадым. Мен ESP32 FireBeetle кітапханасын таба алмайтындықтан, мен оның орнына екі істікшелі 1x18 істікшелі тақырыптарды қолдандым. Содан кейін мен 12 вольтты тұрақты ток баррель ұясы арқылы қабылдай алатын және сенсорлар мен ESP32 -ді қосу үшін оны 5 в -ге түрлендіретін қуатты басқару схемасын құрдым.
Схема аяқталғаннан кейін мен ПХД жобалауға көштім.
Мен DC баррель штепсельдік тақтаның алдыңғы жағына жақын орналасуы керек екенін білдім, ал 100uF қуат көзін тегістейтін конденсаторлар двигатель қозғалтқышының қуат көздеріне жақын болуы керек. Барлығы анықталғаннан кейін мен іздерді бағдарлай бастадым.
Oshpark жоғары сапалы ПХД шығарса да, олардың бағасы өте жоғары. Бақытымызға орай, PCBGOGO.com сонымен қатар қол жетімді бағамен керемет ПХД шығарады. Мен Oshpark.com сайтынан үш тақта үшін 52 доллар төлегеннен гөрі, он ПХД -ны небәрі 5 долларға сатып алдым.
3 -қадам: құрастыру
Жалпы, тақтаны жинау өте оңай болды. Мен бетіне орнатылған компоненттерді дәнекерлеуді бастадым, содан кейін бөшкеге қосқыш пен реттегішті бекітуді бастадым. Әрі қарай, мен мотор драйверлері мен FireBeetle сияқты компоненттерге арналған түйреуіштерді дәнекерледім.
Дәнекерлеу аяқталғаннан кейін мен тақтаны мультиметрді қарсылықты өлшеу режиміне қойып, қарсылық белгілі бір мөлшерден асып кеткенін көру арқылы қысқа тұйықталуға тексердім. Тақта өтті, сондықтан мен әр компонентті қосуға мүмкіндік алдым.
4 -қадам: Бағдарламалауға шолу
Мен бұл тақтаның коды модульдік және қолдануға ыңғайлы болуын қаладым. Бұл белгілі бір функцияларды орындайтын бірнеше сыныптар мен кішілерін біріктіретін үлкен орауыштар класының болуын білдірді.
5 -қадам: кірістер
Кірістерді өңдеу үшін мен «Hub_Inputs» деп аталатын сынып құрдым, ол үй хабына APDS9960 -пен байланыс жасауға мүмкіндік береді, сонымен қатар батырмалар мен сыйымды сенсорлық интерфейстерді құруға және басқаруға мүмкіндік береді. Ол келесі функцияларды қамтиды:
Жасау батырмасы
Егер түйме басылса, алыңыз
Түймешіктерді басу санын алыңыз
Ең соңғы қимылды алыңыз
Сыйымдылықтың сенсорлық мәнін алыңыз
Түймелер құрылым ретінде сақталады, үш атрибуты бар: is_pressed, numberPresses және pin. Әр түйме жасалған кезде үзіліске бекітіледі. Бұл үзіліс іске қосылған кезде, үзіліс қызмет көрсету тәртібі (ISR) осы түйменің көрсеткішінен өтеді (оның түйме массивінде оның жады адресі ретінде беріледі) және is_pressed логикалық мәнін жаңартумен бірге түймені басу санын көбейтеді.
Сенсорлық сыйымдылық мәндері әлдеқайда қарапайым. Олар сенсорлық түйреуішті touchRead () функциясына беру арқылы шығарылады.
Соңғы қимыл APDS9960 сауалнамасы арқылы жаңартылады және кез келген жаңа қимылдың анықталғанын тексереді, ал егер анықталса, жеке қимыл айнымалы мәнін осы қимылға орнатыңыз.
6 -қадам: шығыс
Ақылды үй хабында ақпаратты шығарудың және шамдарды өзгертудің бірнеше әдістері бар. I2C шинасын шығаратын түйреуіштер бар, бұл пайдаланушыларға СКД қосуға мүмкіндік береді. Әзірге СКД -нің тек бір өлшеміне қолдау көрсетіледі: 20 x 4. «hub.display_message ()» функциясын қолдана отырып, пайдаланушылар СКД -де хабарламаларды жолдық объект арқылы жібере алады.
Сондай -ақ, аналогтық жарықдиодты жолды қосу үшін түйреуіштің үстіңгі тақтасы бар. «Hub.set_led_strip (r, g, b)» функциясын шақыру жолақтың түсін орнатады.
Екі сатылы қозғалтқыш DRV8825 жұп драйв тақтасының көмегімен басқарылады. Мен моторды басқару үшін BasicStepper кітапханасын қолдануды шештім. Тақтаны жүктеу кезінде екі қадамдық объект жасалады және екі қозғалтқыш қосылады. Әр қозғалтқышты басу үшін қозғалтқыш идентификаторы 0 немесе 1 болатын «hub.step_motor (motor_id, steps)» функциясы қолданылады.
7 -қадам: тіркеу
Тақтада бірнеше сенсорлар болғандықтан, мен деректерді жергілікті жерде жинау және тіркеу мүмкіндігін алғым келді.
Тіркеуді бастау үшін «hub.create_log (файл атауы, тақырып)» деген жаңа файл құрылады, онда тақырып колонналарды білдіретін CSV файл жолын жасау үшін қолданылады. Бірінші баған әрқашан Жыл Ай Күні Сағат: Мин: Сек форматындағы уақыт белгісі болып табылады. Уақытты алу үшін hub.log_to_file () функциясы basic_functions.get_time () функциясымен уақыт алады. Tm уақыт құрылымы деректер мен файл атауымен бірге тіркеу функциясына сілтеме арқылы беріледі.
8 -қадам: дыбыстық сигнал
Егер сіз музыка ойнай алмасаңыз, IoT тақтасының қандай пайдасы бар? Сондықтан мен дыбыстарды ойнату функциясы бар дыбыстық сигналды енгіздім. «Hub.play_sounds (әуен, ұзақтығы, ұзақтығы)» деп аталатын ән әуенді ойнай бастайды, оның ішінде әуен нота жиіліктерінің жиілігі, ұзақтығы ноталар жиілігі ретінде және ұзындығы ноталар саны ретінде.
9 -қадам: IoT сыртқы интеграциясы
Хаб қазіргі уақытта IFTTT веб -ілмектерін қолдайды. Оларды Hub_IoT.publish_webhook (url, деректер, оқиға, кілт) немесе Hub_IoT.publish_webhook (url, деректер) функциясын шақыру арқылы іске қосуға болады. Бұл берілген URL мекенжайына POST сұрауын жібереді, қажет болса, оқиға атымен бірге. IFTTT интеграциясының мысалын орнату үшін алдымен жаңа апплет жасаңыз. Содан кейін сұрау түскен кезде іске қосылатын webhook қызметін таңдаңыз.
Содан кейін, оқиғаны «high_temp» деп атаңыз және оны сақтаңыз. Содан кейін, «сол» бөлік үшін Gmail қызметін таңдап, «Өзіме электрондық пошта жіберу» опциясын таңдаңыз. Қызметтің параметрлерінде «Температура жоғары!» Деп жазыңыз. тақырып үшін, содан кейін мен өлшенген температураны және оқиғаның басталған уақытын көрсететін «{{Value1}} температурасын {{OccurredAt}}» қойдым.
Оны орнатқаннан кейін, IFTTT жасаған веб -ілмектің URL мекенжайын қойыңыз және оқиға бөліміне «high_temp» қойыңыз.
10 -қадам: Қолдану
Smart Home Hub функциясын пайдалану үшін setup () немесе loop () кез келген қажетті функцияларды шақырыңыз. Мен қазірдің өзінде уақытты басып шығару және IFTTT оқиғасын шақыру сияқты функционалдық қоңырауларды қойдым.
11 -қадам: Болашаққа жоспарлар
Smart Home Hub жүйесі үйді автоматтандыру мен деректерді жинаудың қарапайым тапсырмалары үшін өте жақсы жұмыс істейді. Оны жарық диодты жолақтың түсін орнату, бөлменің температурасын бақылау, шамның жанып тұрғанын тексеру және басқа да көптеген мүмкін жобалар сияқты кез келген нәрсеге қолдануға болады. Болашақта мен функционалдылықты одан әрі кеңейткім келеді. Бұл неғұрлым сенімді веб -серверді, жергілікті файлдарды орналастыруды, тіпті Bluetooth немесе mqtt қосуды қамтуы мүмкін.
Ұсынылған:
NodeMCU релелік модулін қолданатын Alexa Smart Home жүйесі: 10 қадам
NodeMCU релелік модулін қолданатын Alexa Smart Home жүйесі: Бұл IoT жобасында мен NodeMCU ESP8266 көмегімен Alexa Smart Home Automation жүйесін жасадым. Реле модулі. Дауыстық пәрменмен шамды, желдеткішті және басқа тұрмыстық техниканы оңай басқаруға болады. Echo Dot ақылды динамигін қосу үшін
Wifi Smart Switch ESP8266 Alexa және Google Home Automation -пен жұмыс істейді: 7 қадам
Wifi Smart Switch ESP8266 Alexa және Google Home Automation -пен жұмыс істейді: Жаһандану әлемінде әркім жаңа және ақылды технологияға ұмтылады
ESP32 -ті бастау - Arduino IDE -де ESP32 тақталарын орнату - ESP32 жыпылықтау коды: 3 қадам
ESP32 -ті бастау | Arduino IDE -де ESP32 тақталарын орнату | ESP32 Blink Code: Бұл нұсқаулықта біз esp32 -мен қалай жұмыс істеуді және esp32 тақталарын Arduino IDE -ге қалай орнату керектігін көреміз, және біз esp 32 -ге arduino ide көмегімен жыпылықтау кодын іске қосуды бағдарламалаймыз
Dojet Projeto Final Do Curso IoT Aplicada Smart Home Inatel / Novembro 2017: 4 қадам (суреттермен)
Оқу құралы ақырында Curso IoT ақылды үйге арналған нұсқаулық болып табылады 2017 / қараша: Ақпараттық платформаларды пайдалану үшін компьютерлік бағдарламалар қажет емес, Android немесе IOS операциялық жүйелері үшін қажет. Ноутбукке арналған терезелер мен терезелер 10. Есса платформасы Ionic, q
Honeywell Vista дабылы Smart Hub көмегімен дабыл (Wink/Smartthings): 7 қадам (суреттермен)
Honeywell Vista дабылының ақылды хабпен интерфейсі (жыпылықтау/ақылдылық): Сәлеметсіз бе! Мен Honeywell Vista дабыл жүйесін интеллектуалды хабқа қалай енгізгенім туралы қысқаша нұсқаулық бергім келді. Мен бұл оқулық үшін Wink қолданамын, бірақ бұл кез келген ақылды хабпен жұмыс істеуі керек (Smartthings/Iris/т. Б.) Біз бастамас бұрын, сіз барасыз