Съдържание:
- Консумативи
- Стъпка 1: Функции
- Стъпка 2: ПХБ
- Стъпка 3: Монтаж
- Стъпка 4: Преглед на програмирането
- Стъпка 5: Входове
- Стъпка 6: Изходи
- Стъпка 7: Регистриране
- Стъпка 8: Звуков сигнал
- Стъпка 9: Външни интеграции на IoT
- Стъпка 10: Използване
- Стъпка 11: Бъдещи планове
Видео: ESP32 Хъб за интелигентен дом: 11 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Създаването на система, която може да обработва големи количества сензорни данни, да има множество изходи и да се свързва с интернет или локална мрежа отнема много време и големи усилия. Твърде често хората, които искат да създадат свои собствени мрежи за интелигентен дом, се борят с възможността да намерят и сглобят персонализирани компоненти в по -голяма система. Ето защо исках да направя модулна и богата на функции платформа, която да улесни конструирането на свързани с 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 LCD модул
www.dfrobot.com/product-590.html
-
Аналогова RGB LED лента
www.dfrobot.com/product-1829.html
- Драйвери за стъпков двигател DRV8825
- Четец на SD карти
- Стъпкови двигатели NEMA17
Стъпка 1: Функции
Основната характеристика на тази платка е ESP32 FireBeetle Development Board, която обработва цялата комуникация, показанията на сензорите и изходите. Има два драйвера на стъпкови двигатели, които управляват два биполярни стъпкови двигателя.
I2C шината също е разбита за използване с компоненти като APDS9960 или LCD. За отчитане на температурата има счупени щифтове за свързване към DHT22 сензор, както и фоторезистор за отчитане на нивата на околната светлина.
Има поддръжка за аналогова светлинна лента на дъската, която има три MOSFET -а върху нея за задвижване на LED светлините.
Стъпка 2: ПХБ
Започнах процеса на проектиране на печатни платки, като първо създадох схема в Eagle. Тъй като не успях да намеря библиотека ESP32 FireBeetle, просто използвах вместо това два щифта 1x18 пинови заглавки. След това създадох схема за управление на захранването, която може да приема 12v през жак за постоянен ток и да я преобразува в 5v за захранване на сензорите и ESP32.
След като схемата беше завършена, преминах към проектирането на самата платка.
Знаех, че щепселът на DC барела ще трябва да бъде близо до предната част на платката, а кондензаторите за изглаждане на захранването от 100uF трябва да са близо до входовете за захранване на драйвера на стъпковия двигател. След като всичко беше изложено, започнах да трасирам следи.
Докато Oshpark произвежда висококачествени печатни платки, цените им са доста високи. За щастие, PCBGOGO.com също прави страхотни печатни платки на достъпна цена. Успях да купя десет платки само за $ 5, вместо да платя $ 52 само за три платки от Oshpark.com.
Стъпка 3: Монтаж
Като цяло сглобяването на дъската беше доста лесно. Започнах със запояване на повърхностно монтираните компоненти и след това прикрепих конектора и регулатора. След това запоявах в щифтовете за компоненти като драйверите на двигателя и FireBeetle.
След като запояването приключи, тествах платката за късо съединение, като поставих мултицет в режим на измерване на съпротивлението и видя дали съпротивлението е над определено количество. Платката премина, така че след това успях да включа всеки компонент.
Стъпка 4: Преглед на програмирането
Исках кодът за тази платка да бъде модулен и лесен за използване. Това означаваше наличието на няколко класа, които обработват специфични функции, заедно с по -голям клас обвивка, който комбинира по -малките.
Стъпка 5: Входове
За обработка на входове създадох клас, наречен „Hub_Inputs“, който позволява на домашния хъб да комуникира с APDS9960, заедно със създаването и управлението на бутони и капацитивните сензорни интерфейси. Той съдържа следните функции:
Бутон за създаване
Вземете, ако бутонът е натиснат
Вземете брой натискания на бутони
Вземете най -новия жест
Вземете капацитивна стойност на докосване
Бутоните се съхраняват като структура, с три атрибута: is_pressed, numberPresses и pin. Всеки бутон, когато е създаден, е прикрепен към прекъсване. Когато това прекъсване се задейства, рутинната услуга за прекъсване (ISR) се предава на показалеца на този бутон (даден като адрес на паметта в масива с бутони) и увеличава броя на натисканията на бутоните, заедно с актуализиране на булева стойност is_pressed.
Капацитивните стойности на докосване са много по -прости. Те се извличат чрез преминаване на сензорния щифт към функцията touchRead ().
Най -новият жест се актуализира чрез опросване на APDS9960 и проверка дали е открит нов жест и ако е открит такъв, задайте променливата за частен жест на този жест.
Стъпка 6: Изходи
Хъбът за интелигентен дом разполага с няколко начина за извеждане на информация и смяна на светлините. Има щифтове, които разбиват I2C шината, позволявайки на потребителите да свържат LCD. Дотук се поддържа само един размер на LCD: 20 x 4. Използвайки функцията „hub.display_message ()“, потребителите могат да показват съобщения на LCD, като предават низов обект.
Има и заглавка на щифт за свързване на низ от аналогови светодиоди. Извикването на функцията „hub.set_led_strip (r, g, b)“, задава цвета на лентата.
Двата стъпкови двигателя се задвижват с помощта на чифт платки за драйвери DRV8825. Реших да използвам библиотеката BasicStepper за управление на управлението на двигателя. Когато платката се стартира, се създават два стъпкови обекта и двата двигателя се активират. За стъпване на всеки двигател се използва функцията „hub.step_motor (motor_id, steps)“, където id на двигателя е 0 или 1.
Стъпка 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, data, event, key) или Hub_IoT.publish_webhook (url, data). Това изпраща POST заявка към дадения URL адрес с прикрепени данни, заедно с име на събитие, ако е необходимо. За да настроите примерна интеграция с IFTTT, първо създайте нов аплет. След това изберете услугата webhook, която се задейства при получаване на заявка.
След това извикайте събитието „high_temp“и го запазете. След това изберете услугата Gmail за частта „Това“и изберете опцията „Изпращане на имейл до мен“. В рамките на настройката за услугата поставете „Температурата е висока!“за обекта и след това поставям „Измерена температура от {{Value1}} на {{OccurredAt}}“, която показва измерената температура и времето, когато събитието е било задействано.
След като го настроите, просто поставете URL адреса на webhook, генериран от IFTTT, и поставете „high_temp“в секцията за събития.
Стъпка 10: Използване
За да използвате Smart Home Hub, просто извикайте всички необходими функции в setup () или loop (). Вече поставих примерни извиквания на функции, като отпечатване на текущото време и извикване на IFTTT събитие.
Стъпка 11: Бъдещи планове
Системата Smart Home Hub работи много добре за прости задачи за домашна автоматизация и събиране на данни. Може да се използва за почти всичко, като задаване на цвета на LED лента, мониторинг на температурата в помещението, проверка дали свети светлина и множество други потенциални проекти. В бъдеще бих искал да разширя функционалността още повече. Това може да включва добавяне на по -здрав уеб сървър, локален хостинг на файлове и дори Bluetooth или mqtt.
Препоръчано:
Направете система за управление на интелигентен дом на STONE HMI Disp: 23 стъпки
Направете система за управление на интелигентен дом на STONE HMI Disp: Въведение в проекта Следният урок ви показва как да използвате STONE STVC050WT-01 модула за сензорен дисплей, за да направите проста система за управление на домакински уреди
Система за интелигентен дом Alexa, използваща релейния модул NodeMCU: 10 стъпки
Система за интелигентен дом Alexa, използваща релейния модул NodeMCU: В този проект на IoT направих системата за автоматизация на Alexa Smart Home, използвайки NodeMCU ESP8266 & Релейни модули. Можете лесно да управлявате светлина, вентилатор и други домакински уреди с гласовата команда. За да свържете интелигентния високоговорител Echo Dot с
Отдалечен интелигентен дом: 5 стъпки
Дистанционен интелигентен дом: Материал: dunne gelamineerde hout platen. 1 x основна плоча с диаметър 1 cmkleine nagels 2 x връзки за хляб plakbandveel кабели с диаметър 0,3 cmveel jumper kabels gereedschap: boormachinelijmpistoolsoldeerboutschroevendra
Как да си направим интелигентен дом с помощта на модул за реле за управление Arduino - Идеи за домашна автоматизация: 15 стъпки (със снимки)
Как да си направим интелигентен дом с помощта на модул за реле за управление Arduino | Идеи за домашна автоматизация: В този проект за домашна автоматизация ще проектираме интелигентен домашен релейен модул, който може да управлява 5 домакински уреди. Този релейен модул може да се управлява от мобилен телефон или смартфон, дистанционно IR или дистанционно за телевизор, ръчно превключване. Това интелигентно реле също може да усети
Направи си сам интелигентен дом с Google Assistant и Arduino: 6 стъпки
Направи си сам интелигентен дом с Google Assistant и Arduino: Кой не иска интелигентен дом? Едно от най -хубавите неща, които можете да направите, е да превключите осветлението или други уреди във вашия дом чрез гласово управление. С помощта на приложението Google Home и асистента на Google това наистина е сладко …… Вие не