Съдържание:
Видео: HRV температура до OpenHAB чрез ESP8266 (пример със сериен код!): 3 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:56
HRV - Безжичен към OpenHAB
Тази инструкция е специално за тези, които имат HRV (отоплителна рециркулационна вентилация) система - въпреки че части от печатната платка, openhab конфигурация или код Arduino (като четене на серийни данни TTL) могат да бъдат удобни за вашите собствени проекти или да служат добре за учене. Той предполага, че имате разумни познания за Arduino IDE и какво представлява чип ESP8266.
Въведение
По -долу е очертано как да се изгради ESP8266, който се свързва към HRV система и изпраща температурите на покрива и къщата, температурата на контролния панел и скоростта на вентилатора чрез съобщения MQTT до OpenHAB. Това е проектирано да работи с платка ESP8266-01 (въпреки че трябва да работи с всяка версия на ESP8266 3.3V) Ако имате подобна система тип HRV от алтернативен доставчик, ще трябва да определите дали данните се изпращат като TTL серийни и ако да, каква структура се изпращат данните.
OpenHAB и Mosquitto
Кодът ESP8266 е написан специално за работа с OpenHAB (софтуер за домашна автоматизация с отворен код) и брокер на MQTT като Mosquitto (протокол за абонамент/публикуване на съобщения, който е лек и чудесен за комуникация между устройства) Не позволявайте на имената или съкращенията ви плашат, те са наистина много лесни за използване, след като разберете как работят. Използвам OpenHAB на NTC C. H. I. P (компютър от 9 щ.д.), но много хора използват Raspberry Pi или подобен. Този урок предполага, че сте внедрили OpenHAB (ако имате нужда от помощ при настройването на OpenHAB, следвайте тази отлична статия от makeuseof на уебсайта) Също така трябва да изтеглите и инсталирате Mosquitto (MQTT брокер) и свързаното с OpenHAB свързване. Можете да инсталирате това на друго място в мрежата си, но повечето хора просто инсталират това на същата машина като OpenHAB, за да е лесно.
За да инсталирате Mosquitto, следвайте тази връзка, след това изберете типа устройство, което използвате, и следвайте инструкциите. Тъй като C. H. I. P изпълнява Debian (Jessie), можете да следвате инструкциите на Raspberry Pi, ако използвате C. H. I. P за вашето устройство за домашна автоматизация (също така имайте предвид, че е най -добре да конфигурирате CHIP за зареждане от CLI. Има инструкции за това тук)
След като стартирате OpenHAB и Mosquitto, трябва да подготвите Arduino IDE за ESP8266 и код. Първо трябва да добавите библиотеката "PubSubClient". В IDE на Arduino от менюто отидете на Скица, Включване на библиотека, Управление на библиотеки В полето за търсене на филтър въведете PubSubClient, след което маркирайте резултата от търсенето и щракнете, за да инсталирате (в момента на писане, последната версия е 2.6.0) Ще също трябва да добавите платката ESP8266 към IDE на Arduino, което може да стане, като следвате инструкциите тук
Какво ми дава това?
Както беше посочено по -рано, този проект ще ви позволи да видите покрива на контролния панел на HRV, къщата, температурите на контролния панел и скоростта на вентилатора в OpenHAB GUI (в реално време!) Изображенията показват как изглежда от моя iPhone, плюс графиките, които ще се получи чрез пробиване надолу в различните температури.
За да получите графиките, ще трябва също да инсталирате и конфигурирате обвързването RRD4J (това е много право напред) Това ще ви позволи да кликнете върху „Къща“или „Покрив“и да получите история на температурите на HRV за всеки през миналото час, ден или седмица (или повече, ако промените конфигурацията според себе си) Показаните изображения са в градуси по Целзий и ясно е зимата им в южното полукълбо, когато направих това!
Освен това създадох изглед на OpenHAB, който показва сравнение между външната температура (предоставена от добавката за обвързване на времето, в моя случай използвайки Wunderground) спрямо температурите на покрива и къщата, като щракнете върху опцията „Контрол“(снимката показва графиката с къща, покрив и външна температура. Планирам да използвам тези данни в правилата за включване на отоплителни уреди според нуждите. Просто добавете елемента Weather към URL адреса на вашето изображение във файла на картата на сайта и го включете в същата графика (например:… items = houseTemp, roofTemp, weatherTemp…)
Стъпка 1: Необходими части / Монтаж
Ще ви трябват следните части
- Сплитер RJ11 (това разделя сигнала от контролера на покрива към контролния панел и ESP8266)
- Някакъв лентов кабел и щепсел RJ11 (за прокарване на проводници от сплитер към ESP8266)
- ESP8266-01 (други версии 3.3V трябва да работят)
- TTL преобразувател на логическо ниво (за промяна на данни от 5V -> 3.3V)
- AMS1117 3.3V регулатор на напрежение (или подобен, за промяна на напрежението от HRV 5V -> 3.3V към захранване ESP8266)
- 1N5817 диод Шоттки (по някаква причина това помогна да се спре нулирането на контролния панел на HRV при включване на ESP)
- 10K ом резистор (издърпващ резистор между 3.3 регулатор на напрежение и ESP CH_PD)
- 10V 10uF кондензатор (или подобен, за изглаждане и стабилизиране на входящата мощност от HRV)
- 10V 1uF кондензатор (или подобен, за изглаждане и стабилизиране на изходящото захранване към ESP)
- По избор плъзгащ бутон за програмиране на ESP (в противен случай трябва да изтеглите GPIO0 до GND ръчно, за да програмирате)
- FTDI адаптер (за програмиране на ESP, преобразува USB в сериен)
Сглобете според схемата
Изображението на чертежа показва как трябва да се сглобяват частите. Обърнете внимание, че има 6 пина, които слизат по лентовия кабел от контролера HRV в тавана:
Изводи 1 и 6 са 5V VCC
Пинове 2 и 5 са GND
Игли 3 и 4 са данни.
Трябва само да използвате пинове 1, 2, 3 и 6 (1 и 6 VCC мощности ESP8266 и високата страна на TTL логическия преобразувател, 2 е общо и 3 е за четене на TTL серийни данни)
Разделителят, от който се нуждаете, ще бъде просто сплитер RJ11, просто се уверете, че е сплитер, където щифтовете са прави (напр.: щифт 1 отива към пин 1, щифт 2 до щифт 2 и т.н.) Обърнете внимание, че допълнителните женски щифтове (като показани на изображенията) са за свързване на FTDI за препрограмиране на ESP по -късно и показаният превключвател го поставя в режим „програмиране“. Те са незадължителни, но препоръчителни (напр.: ако промените паролата си за WiFi, тъй като WiFi AP и паролата са трудно програмирани в кода, който ще трябва да качите, след като вашият ESP8266 бъде изграден)
Стъпка 2: Качване на код и тестване
Промени в кода
Алтернативна връзка за изтегляне към кода на Arduino ТУК
Отворете в Arduino IDE, уверете се, че платката ESP е инсталирана, както и PubSubClient и че сте избрали платката ESP8266 (Инструменти, платка, обща платка ESP8266) Редактирайте кода и променете името и паролата на WiFi AP и IP адреса на вашия MQTT брокер (това са единствените неща, които трябва да промените), както е показано по -долу. Щракнете върху бутона „Провери“, за да се уверите, че е компилиран добре, след което се уверете, че е избран правилния COM порт (Инструменти, Порт) и качете кода на вашия ESP8266. Има много статии за това как да направите това, няма да преоткривам колелото тук.
// Wifi
const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // IP адрес на MQTT брокер MQTT_SERVER (192, 168, 222, 254);
MQTT тестване
За тестване можете да оставите вашия FTDI адаптер свързан и да отворите Serial Monitor в Arduino IDE, трябва да видите съобщения, отпечатващи информацията за температурата в конзолата. Ако трябва да отстраните входящите MQTT съобщения от ESP8266 към вашия MQTT брокер, тогава на сървъра Mosquitto изпълнете една от следните команди, за да се абонирате за входящите съобщения:
mosquitto_sub -d -t openhab/hrv/status
Трябва да виждате входящи ПУБЛИКАЦИОННИ съобщения, идващи от ESP8266 на всеки 30 секунди с номер „1“(което означава „жив съм“). Ако виждате постоянни „0“(или изобщо нищо), тогава няма комуникация. След като видите, че номер 1 идва, това означава, че ESP8266 комуникира с брокера на MQTT (потърсете „MQTT Last Will and Testament“за повече информация как работи това, или вижте този наистина добър запис в блога)
Вече можете да следите данните за температурата и скоростта на вентилатора, да се абонирате за едно от следните. Имайте предвид обаче, че кодът изпраща данните за температурата само ако някои данни са се променили. Той следи последните данни за температурата, скоростта на вентилатора и т.н., така че може да не видите информацията, която идва веднага.
mosquitto_sub -d -t openhab/hrv/rooftemp
mosquitto_sub -d -t openhab/hrv/housetemp
mosquitto_sub -d -t openhab/hrv/controltemp
mosquitto_sub -d -t openhab/hrv/fanspeed
Съвет: абонирайте се за температурата на контролния панел по -горе, след това натиснете бутона за температура на самия контролен панел, трябва да видите новата настройка на температурата.
Когато пристъпите към запояване на това, PCB с размери 3 cm x 7 cm се вписва добре в кутията за промиване зад контролния панел на HRV. Бих препоръчал да правите това само ако това е пластмасова кутия за промиване, тъй като металната кутия може да попречи на Wifi сигналите или евентуално да прекъсне връзките на платката. Като алтернатива можете да отпечатате пластмасов 3D калъф, в който да монтирате дъската.
Стъпка 3: Промени в OpenHAB
Конфигурация на OpenHAB
Изискваните промени в OpenHAB са както следва:
'items' файл:
/* HRVNumber hrvStatus "HRV Status [MAP (status.map):%d]" (gHRV) {mqtt = "<[mqttbroker: openhab/hrv/status: state: default]"} Number houseTemp "House [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/housetemp: състояние: по подразбиране] "} Number houseTemp_Chart_Period" Период на диаграма "Number roofTemp" Покрив [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/rooftemp: state: default] "} Number roofTemp_Chart_Period" Период на диаграма "Number controlTemp" Контрол [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/controltemp: state: default] "} String fanSpeed" Скорост на вентилатора [%s] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/fanspeed: state: default] "}*/
файл на „sitemap“:
Етикет на рамка = "HRV Температура" {Текстов елемент = roofTemp {Рамка {Превключване на елемент = roofTemp_Chart_Period label = "Период" картографиране = [0 = "Час", 1 = "Ден", 2 = "Седмица"] URL адрес на изображението = "https:// localhost: 8080/rrdchart-p.webp
Включени са допълнителни икони за OpenHAB (щракнете с десния бутон и запазете изображения)
Запазете тези файлове в папката.. / OpenHAB Home / webapps / images на вашия OpenHAB сървър
Препоръчано:
Самостоятелен Arduino 3.3V W / Външен 8 MHz часовник, програмиран от Arduino Uno чрез ICSP / ISP (със сериен мониторинг!): 4 стъпки
Самостоятелен Arduino 3.3V W / Външен 8 MHz часовник, програмиран от Arduino Uno чрез ICSP / ISP (със сериен мониторинг!): Цели: Да се изгради самостоятелен Arduino, който работи на 3.3V от 8 MHz външен часовник. За да го програмирате чрез ISP (известен също като ICSP, серийно програмиране във верига) от Arduino Uno (работещ при 5V) За редактиране на файла за зареждане и записване на
Как да качите програма или код в Arduino Pro Mini, като използвате кабел за сериен конвертор CH340 UART: 4 стъпки
Как да качите програма или код в Arduino Pro Mini с помощта на кабел за сериен преобразувател CH340 UART: USB TTL серийните кабели са набор от USB към серийни конверторни кабели, които осигуряват връзка между USB и сериен UART интерфейс. Предлагат се редица кабели, предлагащи свързаност при 5 волта, 3,3 волта или определени от потребителя нива на сигнала с
Използване на PC RAM към Arduino чрез сериен порт: 7 стъпки
Използване на компютърна RAM памет за Arduino чрез сериен порт: Мой приятел ме вдъхнови с неговия малък проект Arduino. Този малък проект включва Arduino UNO R3, който чете данни от програма, направена в Arduino IDE, изпратена до сериен порт (USB-порт) от C# програма, направена във визуално студио. Тъй като това
Капсулиране на стъпков серво мотор със сериен контрол чрез Arduino с помощта на 3D принтер - Pt4: 8 стъпки
Капсулиране на стъпков серво мотор със сериен контрол чрез Arduino с помощта на 3D принтер - Pt4: В това четвърто видео от поредицата Motor Step ще използваме това, което научихме преди, за да изградим стъпков серво мотор с управление чрез серийна комуникация и реално позиционна обратна връзка с помощта на резистивен енкодер, наблюдаван от Arduino. В
Coms за смартфон Arduino/сериен монитор чрез Bluetooth HC-05, HC-06: 4 стъпки (със снимки)
Компоненти на Arduino за смартфон/сериен монитор чрез Bluetooth HC-05, HC-06: Това е изключително полезно, ако искате да тествате скицата си в реална среда, далеч от вашия компютър. Резултатът е, че вашият смартфон действа същото като серийния монитор Arduino на вашия компютър. Bluetooth модулите HC-05 и HC-06 са налични