Мазмуну:
- 1 -кадам: Керек болгон бөлүктөр / Ассамблея
- 2 -кадам: Кодду жүктөө жана тестирлөө
- 3 -кадам: OpenHAB өзгөртүүлөрү
Video: HRV температурасы OpenHAB аркылуу ESP8266 аркылуу (Сериялык коддун мисалы!): 3 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:44
HRV - OpenHAB үчүн зымсыз
Бул көрсөтмө атайын HRV (жылытуу рециркуляциялоочу желдетүү) тутумуна ээ болгондор үчүн арналган, бирок схеманын бөлүктөрү, openhab конфигурациясы же Arduino коду (мисалы, TTL сериялык маалыматтарын окуу сыяктуу) жеке долбоорлоруңузга ыңгайлуу болушу мүмкүн же үйрөнүүгө жакшы кызмат кылышы мүмкүн. Бул сиз Arduino IDE жана ESP8266 чипи жөнүндө акылга сыярлык билимге ээ экениңизди билдирет.
Киришүү
Төмөндө HRV тутумуна туташкан жана чатыр менен үйдүн температурасын, башкаруу панелинин температурасын жана күйөрман ылдамдыгын MQTT билдирүүлөрү аркылуу OpenHABка жөнөтүүчү ESP8266 кантип куруу керектиги көрсөтүлгөн. Бул ESP8266-01 тактасы менен иштөө үчүн иштелип чыккан (бирок кандайдыр бир ESP8266 3.3V версиясы менен иштеши керек) Эгерде сизде башка сатуучудан HRV тибиндеги окшош система болсо, анда сиз маалыматтын TTL сериясы катары жөнөтүлгөнүн же жок экенин аныкташыңыз керек., маалыматтар кандай структура катары жөнөтүлөт.
OpenHAB жана Mosquitto
ESP8266 коду OpenHAB (ачык булак үй автоматташтыруу программасы) жана MQTT брокери, мисалы, Mosquitto менен иштөө үчүн атайын жазылган (жазышуу/жарыялоо түрү протоколу жеңил жана түзмөктөрдүн ортосундагы байланыш үчүн жакшы) Аттарга же кыскартуулар сизди коркутат, алар кантип иштээрин билгенден кийин колдонуу өтө жөнөкөй. Мен OpenHABты NTC C. H. I. Pде (US $ 9 компьютери) колдоном, бирок көп адамдар Raspberry Pi же ушул сыяктуу нерселерди колдонушат. Бул окуу куралы сиз OpenHABты ишке ашырдыңыз деп болжолдонууда (эгер сизге OpenHABты орнотууга жардам керек болсо, makeuseof веб -сайтынан бул эң сонун макаланы ээрчиңиз) Сиз ошондой эле Mosquitto (MQTT брокери) жана ага тиешелүү OpenHAB тутумун жүктөп алып, орнотушуңуз керек. Сиз муну тармагыңыздын башка жерине орнотсоңуз болот, бирок көпчүлүгү муну жөнөкөй кармоо үчүн OpenHAB менен бир эле машинага орнотушат.
Mosquitto орнотуу үчүн, бул шилтемеге өтүп, сиз колдонгон түзмөктүн түрүн тандап, нускамаларды аткарыңыз. C. H. I. P Debian (Jessie) программасын иштеткендиктен, эгер сиз CH. I. Pти үй автоматташтыруу түзмөгүңүз үчүн колдонуп жатсаңыз, Raspberry Pi көрсөтмөлөрүн аткарсаңыз болот (ошондой эле CLIден жүктөө үчүн CHIPти кайра конфигурациялоонун эң жакшы жолу. Бул үчүн инструкциялар бар)
OpenHAB жана Mosquitto иштеп баштагандан кийин, Arduino IDEди ESP8266 жана кодго даярдоо керек. Биринчиден, "PubSubClient" китепканасын кошуу керек. Arduino IDEде, менюдан эскизге өтүңүз, китепкананы кошуңуз, китепканаларды башкарыңыз Фильтр издөө кутусуна PubSubClient териңиз, андан кийин издөө жыйынтыгын белгилеп, Орнотууну чыкылдатыңыз (жазуу учурунда, акыркы версия 2.6.0) Ошондой эле ESP8266 тактасын Arduino IDEге кошуу керек, аны бул жердеги көрсөтмөлөрдү аткаруу менен жасаса болот
Бул мага эмне берет?
Жогоруда айтылгандай, бул долбоор сизге HRV башкаруу панелинин чатырын, үйүн, башкаруу панелинин температурасын жана күйөрман ылдамдыгын OpenHAB GUIде көрүүгө мүмкүндүк берет (реалдуу убакытта!) Сүрөттөр менин iPhone'умдан эмнеге окшош экенин көрсөтөт ар кандай температурага чейин бургулоо аркылуу жетет.
Графиктерди алуу үчүн, сиз дагы RRD4J байлоону орнотуп, конфигурациялашыңыз керек (бул абдан түз) Бул сизге "Үйдү" же "Чатырды" чыкылдатып, өткөн ар бир мезгил үчүн HRV температурасынын тарыхын алууга мүмкүндүк берет. саат, күн же жума (же конфигурацияны ылайыктуу түрдө өзгөртсөңүз) Көрсөтүлгөн сүрөттөр цельсийде, жана мен муну кылганда анын түштүк жарым шарда кышында экени анык!
Мындан тышкары, мен "Control" опциясын чыкылдатуу менен сырткы температураны (аба ырайын милдеттүү кошумча менен камсыздалган, менин учурда Wunderground колдонулган) чатыр менен үйдүн температурасын салыштырган OpenHAB көрүнүшүн түздүм (сүрөттө диаграмма көрсөтүлгөн үйдүн, чатырдын жана сырткы температуранын графиги). Мен бул маалыматтарды эрежелерде колдонууну пландаштырып, керектүү түрдө жылытуучу приборлорду күйгүзөм. Жөн гана сайт картасынын файлындагы Сиздин URL дарегиңизге Аба ырайы пунктун кошуңуз жана муну ошол эле графикке кошуңуз (мисалы:… items = houseTemp, roofTemp, weatherTemp …)
1 -кадам: Керек болгон бөлүктөр / Ассамблея
Сизге төмөнкү бөлүктөр керек болот
- An RJ11 бөлүштүргүч (бул сигналды чатырдагы контроллерден башкаруу панелине жана ESP8266га бөлөт)
- Кээ бир лента кабели жана RJ11 сайгычы (сплиттерден ESP8266га чейин зымдарды иштетүү үчүн)
- ESP8266-01 (башка 3.3V версиялары иштеши керек)
- TTL логикалык деңгээл конвертери (5Vдан маалыматтарды өзгөртүү үчүн -> 3.3V)
- AMS1117 3.3V чыңалуу жөндөгүчү (же окшош, HRV 5Vдан чыңалуусун өзгөртүү үчүн -> 3.3Vдан ESP8266га чейин)
- 1N5817 schottky диод (кандайдыр бир себептерден улам бул HRV башкаруу панелин ESPти күйгүзүүнү токтотууга жардам берди)
- 10K ом каршылыгы (3.3 Voltage Regulator менен ESP CH_PD ортосундагы каршылашуу)
- 10V 10uF конденсатор (же ушуга окшош, HRVден келген энергияны тегиздөө жана стабелиизациялоо үчүн)
- 10V 1uF конденсатор (же ушуга окшош, ESPке чыккан энергияны тегиздөө жана стабелиизациялоо үчүн)
- ESPти программалоо үчүн кошумча слайд баскычы (антпесе, GPIO0ду GNDге кол менен тартуу керек)
- FTDI адаптери (ESPти программалоо үчүн, USBди сериялыкка айландырат)
Схемага ылайык чогултабыз
Банндын сүрөтү тетиктерди кантип чогултуу керек экенин көрсөтөт. HRV контролерунун шыпындагы лента кабелинен ылдый түшүүчү 6 пин бар экенин эске алыңыз:
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 -пинге ж.б.) сүрөттөрдө көрсөтүлгөн) ESPти кийинчерээк кайра программалоо үчүн FTDIди туташтыруу үчүн, жана көрсөтүлгөн которгуч аны "программалоо" режимине коёт. Бул милдеттүү эмес, бирок сунушталат (мисалы: эгер сиз WiFi сырсөзүңүздү өзгөртсөңүз, анда WiFi AP жана сырсөз кодго катуу программаланган, сиз аны ESP8266 курулгандан кийин жүктөшүңүз керек болот)
2 -кадам: Кодду жүктөө жана тестирлөө
Код өзгөрүүлөр
Жүктөө шилтемеси Arduino кодуна БУЛ ЖЕРДЕ
Arduino IDEде ачыңыз, ESP тактасы, ошондой эле PubSubClient орнотулганын жана ESP8266 тактасын тандаганыңызды текшериңиз (Tools, Board, Generic ESP8266 Board) Кодду түзөтүңүз жана WiFi AP атын жана сырсөзүн жана IP дарегин өзгөртүңүз. Сиздин MQTT брокери (буларды өзгөртүү керек болгон нерселер гана) төмөндө көрсөтүлгөндөй. "Текшерүү" баскычын чыкылдатып, анын компиляциясын камсыз кылыңыз, андан кийин туура COM порту тандалганын текшериңиз (Куралдар, Порт) жана кодду ESP8266га жүктөңүз. Муну кантип кылуу керектиги жөнүндө көптөгөн макалалар бар, мен бул жерде дөңгөлөктү кайра ойлоп таппайм.
// WiFi
const char* ssid = "your_wifi_ssid_here"; const char* password = "your_wifi_password_here"; // MQTT Broker IPAddress MQTT_SERVER (192, 168, 222, 254);
MQTT тестирлөө
Сыноо үчүн сиз FTDI адаптерин туташтырып, Arduino IDEдеги Сериялык Мониторду ача аласыз, консолдогу температура маалыматын басып чыгарган билдирүүлөрдү көрүшүңүз керек. Эгерде сиз ESP8266дан MQTT брокериңизге келген MQTT билдирүүлөрүнүн көйгөйлөрүн чечишиңиз керек болсо, анда Mosquitto серверинде кирүүчү билдирүүлөргө жазылуу үчүн төмөнкү буйруктардын бирин аткарыңыз:
mosquitto_sub -d -t openhab/hrv/status
Сиз ESP8266дан ар 30 секунд сайын "1" ("мен тирүүмүн" деген мааниси менен) аркылуу келген PUBLISH билдирүүлөрүн көрүшүңүз керек. Эгерде сиз дайыма "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
Ишара: жогорудагы башкаруу панелиндеги температурага жазылыңыз, андан кийин башкаруу панелиндеги температура баскычын басыңыз, анда сиз жаңы температура орнотмосу киргенин көрөсүз.
Муну ширетүү үчүн келгенде, 3см х 7см өлчөмүндөгү ПХР 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: state: default] "} Number houseTemp_Chart_Period" Диаграмма мезгили "Number roofTemp" Roof [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/rooftemp: state: default] "} Number roofTemp_Chart_Period" Диаграмма мезгили "Сан контролуTemp" Control [%.1f C] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/controltemp: абал: демейки] "} Сап fanSpeed" Күйөрмандар ылдамдыгы [%s] "(gHRV) {mqtt =" <[mqttbroker: openhab/hrv/fanspeed: state: default] "}*/
'sitemap' файлы:
Frame label = "HRV Temperature" {Text item = roofTemp {Frame {Switch item = roofTemp_Chart_Period label = "Period" mappings = [0 = "Hour", 1 = "Day", 2 = "Week"] Image url = "https:// localhost: 8080/rrdchart-p.webp
OpenHAB үчүн кошумча сүрөтчөлөр камтылган (оң басуу жана сүрөттөрдү сактоо)
Бул файлдарды OpenHAB сервериндеги.. / OpenHAB Home / webapps / images папкасына сактаңыз
Сунушталууда:
HC-05 Bluetooth аркылуу сериялык конфигурация: 10 кадам
HC-05 Bluetooth үстүнөн сериялык конфигурациясы: Android түзмөктөрүн жана HC-05 Bluetooth SPP модулдарын кээ бир Arduino долбоорлору үчүн колдонуп жатып, мен HC-05 берүүнүн ылдамдыгын жана башка параметрлерин компьютердин USB портуна туташпай туруп текшерип, өзгөрткүм келди. Бул болуп калды.HC-05 модулдары сериялык жана Blu туташтырат
BLYNK ESP8266 & DHT11 менен Интернет аркылуу бөлмө температурасы: 5 кадам (Сүрөттөр менен)
BLYNK ESP8266 & DHT11 менен интернеттеги бөлмө температурасы: Салам балдар, бүгүн биз бөлмө температурасын көзөмөлдөгүчтү жасайбыз, аны биз дүйнөнүн каалаган жеринен бөлмөнү көзөмөлдөп, BLYNK IoT пластинкасын колдонобуз жана биз аны колдонобуз. DHT11 бөлмө температурасын окуу үчүн ESP8266 колдонобуз
Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): 4 кадам
Автономдуу Arduino 3.3V W / External 8 MHz Clock Arduino Uno программасынан ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): Максаттары: 8 МГц тышкы сааттан өчүрүүчү 3.3Вда иштеген автономдуу Arduino куруу. Аны ISP аркылуу программалоо (ошондой эле ICSP катары белгилүү), Arduino Uno (5V менен иштеген) жүктөөчү файлды түзөтүү жана күйгүзүү үчүн
Bluetooth аркылуу сериялык мониторду көрүү: 4 кадам
Bluetooth аркылуу сериялык мониторду көрүү: Бул долбоор сериялык мониторду көрүү үчүн колдонулган салттуу зымдуу байланышты алмаштыруу үчүн HC -05 Bluetooth модулун колдонот. Материалдар: Arduino - https://amzn.to/2DLjxR2 Breadboard - https://amzn.to /2RYqiSK Jumper зымдары - https://amzn.to/2RYqiSK H
WiFi аркылуу сериялык порт: 10 кадам
Wi -Fi аркылуу сериялык порт: Электрондук түзмөктөр ортосундагы маалымат байланышы көптөгөн электрондук долбоорлордо сөзсүз түрдө болот жана сиздин долбоорго көптөгөн артыкчылыктарды алып келет, башкача айтканда микроконтроллериңизди компьютерге туташтырып, маалыматтарды кичинекей монохромдун ордуна чоң түстүү дисплейде көзөмөлдөйт