Съдържание:
- Стъпка 1: Откриване
- Стъпка 2: Дизайн
- Стъпка 3: Приложение
- Стъпка 4: Код
- Стъпка 5: Примерна интеграция
Видео: Безжично управление на табла за легло MQTT: 5 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Преди няколко години закупихме ново легло с мемори пяна и, както е при повечето легла, трябваше да закупите и една от техните „одобрени бази“, за да поддържате гаранция. Така че, ние избрахме най -евтината база, която включваше и възможността за повдигане и спускане на главата на леглото. Няколко дни по -късно нашият матрак и нашата евтина база American Adjustables с кабелни контроли (по един за всяка страна на леглото) бяха доставени и настроени.
Първото нещо, което забелязахме, беше, че кабелите в шоурума, които бяха хубави и дълги, не бяха това, което имахме на леглото си! Тези в шоурума имаха разширения. Тези разширения НЕ бяха включени в нашето легло и достатъчно интересни, никой не се интересуваше да ни продаде чифт удължителни кабели. Това ни остави с контроли, които едва достигнаха горната част на леглото и които трябваше да обърнем, за да ги използваме.
Получаваш това, за което плащаш
След около 6 месеца забелязваме, че накрайниците за облекчаване на напрежението на една от контролите започват да се разкъсват. Няколко месеца по -късно - гола жица. Бързо напред около една година, единият от контролите вече не работи, а другият става леко потрепващ.
Отново никой не се интересуваше да ни продава заместители. Тогава ме удари!
Чакайте по дяволите! Не изграждам ли система за домашна автоматизация и КОНТРОЛ?!?
Стъпка 1: Откриване
Исках да видя какво мога да направя с това, което имах, затова взех дефектния контролер и уау! имаше много глупости там! За какво бяха всички тези неща? Отстъпих назад и просто погледнах редовете, които влизаха и излизаха. Успях да видя, че има 12 -волтова захранваща линия и земна линия. Другите две линии изглеждаха като сигнални линии за двата бутона нагоре и надолу. И така, аз взех шанс и просто прехвърлих захранването 12v към сигналната линия "нагоре". Леглото започна да се движи! След това преместих джъмперния си проводник към сигналната линия „надолу“и леглото се спусна!
В кутията има контакти за още 4 сигнални линии и още 4 бутона. Най -доброто ми предположение е, че тази контролна платка се използва във всички техни базови модели с кабел и те просто поставят различни лицеви плочи върху дъската, ако е необходимо. И така, имах работеща теория. Тествах захранващия тръбопровод, за да видя дали е потънал по време на употреба или е скочил по всяко време - не. Имаше много малко изтегляне на ток по сигналните линии, но те изискваха 12 волта за активиране на двигателя.
Стъпка 2: Дизайн
Така че една проста контактна връзка между VCC и сигналния щифт е всичко, което е необходимо, но как това се прави в моята система. За контактите ще са необходими две релета, а ESP8266 ще работи за безжичния контролер. Тъй като релетата могат да изискват по -голям ток, отколкото могат да доставят цифровите щифтове, най -добре е да използвате оптоизолатор между контролера и релето. Това ще позволи на малък сигнал да включи превключвател с по -висок ток (в този случай лек транзистор) и безопасно да активира релейната бобина. Също така, оптоизолатор изолира контролера от всякакви шипове, които могат да се образуват, когато релейната бобина се освободи и магнитното поле се срине. За щастие съществуват релейни модули, които вече съдържат цялата тази схема и за доста ниска цена.
Леглото ще бъде захранването на контролера и за да се справим с доставените 12 волта, ще ни е необходим променлив конвертор. Много евтин е свързан по -долу и работи прекрасно. Линиите 12V и GND се свързват към входната страна на преобразувателя, а регулираната страна от 5 волта се свързва към VCC на NodeMCU и VCC щифта на релейния модул. както релейния модул, така и NodeMCU.
NodeMCU се свързва към IN1, използвайки D1 (GPIO5) и IN2, използвайки D2 (GPIO4). Сигналната линия нагоре на леглото се свързва към нормално отворения винтов извод за реле 1, а сигналната линия надолу се свързва към реле 2, нормално отворен конектор на клемния блок. Ще трябва да свържете 12v проводника, който е свързан към входната страна на доларовия преобразувател, също и към другата връзка на клемния блок за ДВЕ релета 1 и 2.
Части
- 1 - NodeMCU
- 1 - Дуел реле модул с токова изолация
- 1 - Променлив конвертор на вход/изход
- 1 - Платка за платка
- Тел от медна жила с дължина 22 габарита
- 2 - M3x 8 винта
Стъпка 3: Приложение
Кутията може да бъде намерена тук:
Проектирах прост корпус с Tinkercad, който позволява на кабела за управление на леглото да влиза в кутията между скобите за облекчаване на напрежението вътре в кутията. Тук има слотове за вратовръзка с цип, които биха помогнали за предпазване на кабела от плъзгане, но в моя случай прилягането беше много плътно и нямаше нужда от него. Капакът се завинтва с 2 винта M3x 8. Бих препоръчал да качите кода и да тествате системата, преди да го монтирате в кутията.
Използвах горещо лепило, за да задържа дъските на място, но това може да не е необходимо.
Стъпка 4: Код
Кодът може да бъде намерен тук:
ЗАБЕЛЕЖКА: Този проект използва библиотеката pubsubclient, която може да бъде добавена в библиотечния мениджър в IDE на Arduino
Кодът тук е доста основен и е проектиран въз основа на типа Cover MQTT в Home Assistant. Идеята тук е проста: когато натиснете бутона нагоре или надолу в домашния асистент, съответното реле се затваря, докато не бъде получена командата за спиране ИЛИ системата достига максимално време за активиране и спира.
Максималното време е предназначено като предпазна мярка за безопасност, в случай че потребителят забрави да го спре или ако командата е била изпратена случайно и е малко вероятно някой да я спре. Не искаме релето да работи безкрайно или някакви неочаквани проблеми с леглото поради продължително затваряне на контактите.
В моя код това изчакване е 20 секунди и може да се регулира в блока на глобалната променлива в горната част на кода.
Втората предпазна мярка беше винаги да се уверя, че ако активирам едно реле, винаги се извиква умишлено деактивиране на другото, дори ако последното състояние вече е изключено. Не искам да изпращам 12v по двете сигнални линии, тъй като не знам какво ще направи това с леглото.
Освен това, леглото публикува, че е достъпно на всеки 60 секунди и това е всичко. Тук няма камбани или свирки. Тъй като леглото няма обратна връзка за позицията, не можах да го изпратя обратно на Home Assistant.
Стъпка 5: Примерна интеграция
Кодът, който написах, използва MQTT за комуникация през WiFi и следователно може да комуникира с всеки център за автоматизация или устройство, което използва MQTT. Използвам Home Assistant, който има вграден брокер MQTT. По -долу е даден пример за моята HA конфигурация.
В HA имам файл cover.yaml със следната дефиниция:
- платформа: mqtt
name: "Табла за главно легло" command_topic: "master_bed_control/cmd" availability_topic: "master_bed_control/availability" qos: 0 запазване: false payload_open: "UP" payload_close: "DOWN" payload_stop: "STOP" payload_available: "онлайн" payload_not_available: офлайн "оптимистично: вярно
Това ми дава един запис в моя HA интерфейс с бутон за нагоре/спиране/надолу с действието, както е описано по -горе.
Освен това съм дефинирал два бутона на моя нощен контролен панел (инструктируем / публикация в блога) за повдигане и спускане на таблата. Бутоните на контролния панел са дефинирани като MQTT сензори:
- платформа: mqtt
state_topic: "bedide_cp1/button5" name: "Икона на бутон CP1 на нощното легло 5": mdi: кръг
- платформа: mqtt
state_topic: "bedide_cp1/button6" name: "Икона на бутон CP1 на нощното легло 6": mdi: кръг
… и 4 правила за автоматизация, когато всеки бутон е натиснат и освободен. Когато се натисне, командата нагоре или надолу се изпраща в леглото в зависимост от това кой бутон е активиран, когато бутонът е освободен, командата стоп се изпраща:
- id: '1548308650383'
псевдоним: MBR Bedside CP Button 5a задействане: - entity_id: sensor.bedside_cp1_button_5 от: „Off“платформа: state to: „On“условие: действие: - data: entity_id: „cover.master_bed_headboard“услуга: cover.open_cover - id: '1548308758911' псевдоним: MBR Нощен CP бутон 5b задействане: - entity_id: sensor.bedside_cp1_button_5 от: 'On' платформа: състояние на: 'Off' условие: действие: - data: entity_id: 'cover.master_bed_headboard' услуга: cover.stop_cover - id: '1548308863495' псевдоним: MBR Bedside CP бутон 6a задействане: - entity_id: sensor.bedside_cp1_button_6 от: 'Off' платформа: state to: 'On' условие: действие: - data: entity_id: ' cover.master_bed_headboard 'услуга: cover.close_cover - id:' 1548308911467 'псевдоним: MBR Bedside CP бутон 6b задействане: - entity_id: sensor.bedside_cp1_button_6 от:' On 'платформа: състояние на:' Off 'условие: действие: - данни: entity_id: 'cover.master_bed_headboard' услуга: cover.stop_cover
Препоръчано:
Табла за табла на Arduino: 3 стъпки
Arduino Scoreboard Lights: Това е проект, който направих за част от таблото за фехтовка. Исках нещо, което да изпише и да светне. Скоро разбрах, че технически можете да използвате това за много различни спортове, а не само за фехтовка. Какво всъщност прави проектът, аз
LED лампа за табла с легло с ESP8266-01: 5 стъпки
LED лампа за табла с легло с ESP8266-01: Това е много лесен проект, който отдавна пренебрегнах, но поради карантината направих нещо различно с частите, които имам под ръка. Идеята беше да има димерируема светлина, която да може да се управлява чрез прости TCP команди или чрез ръчен превключвател
Табла Satshakit: 6 стъпки (със снимки)
Satshakit Boards: Здравейте, производители и фабрики! Някога мечтали ли сте да направите своя собствена усъвършенствана платка за микроконтролер у дома и да използвате smd компоненти? Това е правилната инструкция за вас и за мозъка на следващия ви проект :) И когато имам предвид у дома, искам да кажа
Сензор за присъствие на легло със SONOFF: 8 стъпки (със снимки)
Сензор за присъствие в леглото със SONOFF: Добре дошли в този урок! Предпоставки Ако никога не сте прехвърляли sonoff с tasmota, първо трябва да се научите да го правите и тогава само вие ще можете да го изградите. Ако не знаете sonof
Безжично зарядно за телефон и LED управление: 11 стъпки (със снимки)
Направи си сам безжично зарядно за телефон и LED управление: В тази инструкция ще демонстрирам как да направя безжично зарядно за телефон и активирани светодиоди .. Ще включа код, PDF файлове, електрически схеми и Gerber файлове, както и сметки за материали, за да направите своя собствена безжична връзка зарядно устройство за телефон. Специална бележка: Не