Мазмұны:

ESP32 Smart Home Hub: 11 қадам
ESP32 Smart Home Hub: 11 қадам

Бейне: ESP32 Smart Home Hub: 11 қадам

Бейне: ESP32 Smart Home Hub: 11 қадам
Бейне: Объяснение MAC-адреса 2024, Қараша
Anonim
ESP32 ақылды үй хабары
ESP32 ақылды үй хабары
ESP32 ақылды үй хаб
ESP32 ақылды үй хаб
ESP32 ақылды үй хаб
ESP32 ақылды үй хаб
ESP32 ақылды үй хаб
ESP32 ақылды үй хаб

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

Сыртқы IoT интеграциясы
Сыртқы IoT интеграциясы
Сыртқы IoT интеграциясы
Сыртқы IoT интеграциясы
Сыртқы IoT интеграциясы
Сыртқы 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 қосуды қамтуы мүмкін.

Ұсынылған: