資料介紹
描述
您有沒有想過您的鍋爐何時(shí)以及為什么要運(yùn)行并為您的家供暖?你想用 Arduino 自動(dòng)化你的加熱系統(tǒng)嗎?OpenTherm 防護(hù)罩專為您設(shè)計(jì)。它將允許您使用 Arduino 監(jiān)控和控制您的 OpenTherm 鍋爐。
背景
去年,我想將我的燃?xì)饧訜徨仩t與壁爐調(diào)節(jié)器結(jié)合起來。我的 BAXI 鍋爐和恒溫器非常智能,所以我很自然地想擴(kuò)展鍋爐來控制壁爐。我厭倦了所有那些允許我這樣做的昂貴的官方 BAXI 擴(kuò)展。
因此,我為自己構(gòu)建了一個(gè)OpenTherm 網(wǎng)關(guān),它允許我攔截恒溫器和鍋爐之間的通信,并放置一個(gè)可以點(diǎn)燃鍋爐或使用壁爐熱量的算法——[關(guān)于調(diào)節(jié)器的更多信息]。
由于有很多人想要類似的東西,我決定創(chuàng)建一個(gè)模塊——Arduino shield——這將使任何人都可以很容易地控制他們的房子供暖。
盾牌有什么用?
- 使用現(xiàn)有的 OpenTherm 恒溫器創(chuàng)建您自己的基于 Arduino 的鍋爐。最不可能有人會(huì)這樣做,但這是可能的。
- 使用防護(hù)罩構(gòu)建您自己的基于 Arduino 的恒溫器,以完全接管您的鍋爐和家庭供暖。非常適合家庭自動(dòng)化。此應(yīng)用只需要一個(gè)外部 5V 電源。
- 在現(xiàn)有鍋爐和恒溫器之間的管道中放置一個(gè) OpenTherm 防護(hù)罩,并創(chuàng)建一個(gè)監(jiān)視器來觀察鍋爐何時(shí)以及如何為您的家供暖。您甚至可以攔截通信,例如無線控制加熱。
- OpenTherm 允許擁有一個(gè)與鍋爐和恒溫器通信的中間人(網(wǎng)關(guān))設(shè)備。這就是我使用屏蔽創(chuàng)建OpenTherm 調(diào)節(jié)器的方式。
可用數(shù)據(jù)和命令
- 室內(nèi)溫度
- 室溫設(shè)定點(diǎn)
- 加熱水溫度
- 回水溫度
- 生活熱水溫度*
- 生活熱水壓力*
- 生活熱水流量*
- 室外溫度*
- 鍋爐狀態(tài)(運(yùn)行/未運(yùn)行/錯(cuò)誤)
- 調(diào)制電平
- 排氣溫度*
- 統(tǒng)計(jì)鍋爐運(yùn)行了多長時(shí)間
* 請(qǐng)注意,這些僅在您的鍋爐配備了必要的附件時(shí)可用
建造盾牌
電子電路基于使用 PIC 微控制器的OpenTherm 網(wǎng)關(guān)項(xiàng)目。我已經(jīng)為 Arduino 進(jìn)行了調(diào)整,并創(chuàng)建了一個(gè)很好的 Arduino UNO 兼容布局。
您可以使用上述原理圖和Gerber 文件自行創(chuàng)建屏蔽。我正在通過PCBWay制造我的電路板- PCB Prototype the Easy Way。您可以讓他們?cè)谝恢軆?nèi)創(chuàng)建和運(yùn)送這些漂亮的藍(lán)色美女。藍(lán)色阻焊層與基礎(chǔ)綠色同價(jià)!我也喜歡他們的客戶服務(wù),沒有什么問題。或者您可以訂購預(yù)先包裝好的DIY 套件。
使用防護(hù)罩創(chuàng)建恒溫器
第一個(gè)示例將向您展示如何使用防護(hù)罩創(chuàng)建您自己的自定義恒溫器。你需要什么:
- OpenTherm 鍋爐
- Arduino UNO、WeMos D1 或任何 Arduino UNO 兼容板。該板的唯一要求是支持引腳 2 和 3 上的引腳中斷。
- 5V電源。在此設(shè)置中不需要 24V 電源,因?yàn)橹挥性谂c恒溫器通信時(shí)才需要它。
如上圖所示將您的鍋爐與 Arduino OpenTherm 屏蔽連接,將屏蔽連接到您的 Arduino 上,您就可以開始編程了。Arduino OpenTherm IO 庫包含以下示例,向您展示如何與鍋爐進(jìn)行通信。
void loop() {
if (OPENTHERM::isIdle()) {
message.type = OT_MSGTYPE_READ_DATA;
message.id = OT_MSGID_SLAVE_CONFIG;
message.valueHB = 0;
message.valueLB = 0;
Serial.print("-> ");
OPENTHERM::printToSerial(message);
Serial.println();
OPENTHERM::send(BOILER_OUT, message); // send message to boiler
}
else if (OPENTHERM::isSent()) {
OPENTHERM::listen(BOILER_IN, 800); // wait for boiler to respond
}
else if (OPENTHERM::getMessage(message)) { // boiler responded
OPENTHERM::stop();
Serial.print("<- ");
OPENTHERM::printToSerial(message);
Serial.println();
Serial.println();
delay(100); // minimal delay before next communication
}
else if (OPENTHERM::isError()) {
OPENTHERM::stop();
Serial.println("<- Timeout");
Serial.println();
}
}
首先,使用OPENTHERM::isIdle檢查是否沒有掛起的命令。如果沒有,您可以發(fā)送下一個(gè)。在此示例中,您請(qǐng)求從屬配置標(biāo)志。如果命令成功發(fā)送,您必須開始使用OPENTHERM::listen調(diào)用監(jiān)聽來自鍋爐的回復(fù)。方法OPENTHERM::getMessage只要有來自從站的待處理回復(fù),并且如果出現(xiàn)問題或發(fā)生超時(shí),方法OPENTHERM::isError 就會(huì)返回 true。該庫包含 OpenTherm 消息結(jié)構(gòu),其中包含來自協(xié)議的解碼數(shù)據(jù),因此您根本不需要關(guān)心格式。簽出源代碼這是有據(jù)可查的。所有類型的消息都列在常量中,或者您可以查看OpenTherm 文檔。
struct OpenthermData {
byte type;
byte id;
byte valueHB;
byte valueLB;
float f88();
void f88(float value);
uint16_t u16();
void u16(uint16_t value);
int16_t s16();
void s16(int16_t value);
}
使用屏蔽創(chuàng)建監(jiān)視器、網(wǎng)關(guān)或調(diào)節(jié)器
第二個(gè)示例將向您展示如何將中間人設(shè)備連接到 OpenTherm 總線以監(jiān)控鍋爐和恒溫器或攔截它們的通信。你需要什么:
- OpenTherm 恒溫器
- 24V 500mA 電源
?
如上圖所示,將屏蔽連接到鍋爐和恒溫器之間的總線。您可以看到它中斷了這兩個(gè)設(shè)備之間的總線。現(xiàn)在您的通信中斷了,除非您將網(wǎng)關(guān)軟件上傳到您的 Arduino 中,該軟件會(huì)將命令和回復(fù)從恒溫器轉(zhuǎn)發(fā)到鍋爐,反之亦然。在Arduino OpenTherm IO 庫中再次有一個(gè)很好的例子。
void loop() {
if (mode == MODE_LISTEN_MASTER) {
if (OPENTHERM::isSent() || OPENTHERM::isIdle() || OPENTHERM::isError()) {
OPENTHERM::listen(THERMOSTAT_IN);
}
else if (OPENTHERM::getMessage(message)) {
Serial.print("-> ");
OPENTHERM::printToSerial(message);
Serial.println();
OPENTHERM::send(BOILER_OUT, message); // forward message to boiler
mode = MODE_LISTEN_SLAVE;
}
}
else if (mode == MODE_LISTEN_SLAVE) {
if (OPENTHERM::isSent()) {
OPENTHERM::listen(BOILER_IN, 800); // reply need to be send back in 800ms
}
else if (OPENTHERM::getMessage(message)) {
Serial.print("<- ");
OPENTHERM::printToSerial(message);
Serial.println();
Serial.println();
OPENTHERM::send(THERMOSTAT_OUT, message); // send message back to thermostat
mode = MODE_LISTEN_MASTER;
}
else if (OPENTHERM::isError()) {
mode = MODE_LISTEN_MASTER;
Serial.println("<- Timeout");
Serial.println();
}
}
}
網(wǎng)關(guān)只是開始監(jiān)聽恒溫器命令。如果檢測到請(qǐng)求,它將對(duì)其進(jìn)行解析并將其轉(zhuǎn)發(fā)給鍋爐。網(wǎng)關(guān)現(xiàn)在將開始監(jiān)聽鍋爐回復(fù)。如果在 800 毫秒內(nèi)收到回復(fù),網(wǎng)關(guān)會(huì)將回復(fù)轉(zhuǎn)發(fā)回恒溫器。恒溫器和鍋爐都不會(huì)知道它們之間有什么額外的東西。正如您所看到的,有足夠的空間來編寫您自己的代碼,這些代碼可以捕獲消息并從中讀取有用的信息(狀態(tài)、溫度、壓力、統(tǒng)計(jì)數(shù)據(jù)……)。您甚至可以覆蓋或丟棄您不喜歡的請(qǐng)求或回復(fù)。
如您所見,與您的智能供暖系統(tǒng)進(jìn)行通信并使其更加智能非常容易。在下一篇文章中,我將在我的OpenTherm 調(diào)節(jié)器中向您展示該硬件的更多實(shí)際用法。
- 將LCD模塊與Arduino連接
- 將伺服電機(jī)連接到Arduino
- 將量子計(jì)算機(jī)連接到Arduino
- 如何安全地將Arduino MKR GSM 1400板與GCP IoT Core結(jié)合使用
- 將您的Adafruit Feather RP2040連接到物聯(lián)網(wǎng)
- 將蜂鳴器與Arduino連接
- 如何將arduino串口鏈接到python
- 如何將Arduino以太網(wǎng)連接到物聯(lián)網(wǎng)云
- 如何將DHT11連接到Arduino并提供示例代碼
- Arduino通過OTG電纜連接到Android USB
- 將您的Magicbit(ESP32)連接到thingsboard
- 使用Visuino程序將SSD1331 OLED和ST7789顯示器連接到Arduino
- 將任何VFD串行顯示器連接到Arduino的最簡單方法
- 將LCD屏幕連接到Arduino mega的最簡單方法
- 如何將Arduino板連接到的計(jì)算機(jī)上的30個(gè)項(xiàng)目 16次下載
- 逆變器連接到斷路器步驟,位于面板中央 684次閱讀
- 中央供熱泵開關(guān)電路原理圖講解 1556次閱讀
- 連接到您最喜歡的數(shù)據(jù)庫集 662次閱讀
- 連接到您的圖像采集設(shè)備 848次閱讀
- 將Agere超級(jí)映射器設(shè)備系列連接到達(dá)拉斯T3 LIU 751次閱讀
- I2C接口將小型閃存卡連接到微控制器 962次閱讀
- 如何將LIU/成幀器連接到雙極性或NRZ模式器件 977次閱讀
- 變頻器如何在接線圖中連接到PLC? 1790次閱讀
- 使用AXI4-Lite將Vitis HLS創(chuàng)建的IP連接到PS 848次閱讀
- 如何設(shè)置Arduino IoT將消息發(fā)送到云板顯示器 2303次閱讀
- 使用Wii nunchuk手柄連接Arduino控制伺服電機(jī)的方法 4298次閱讀
- Arduino Ethernet擴(kuò)展板產(chǎn)品介紹(意大利原裝正版) 5313次閱讀
- 如何應(yīng)用可編程邏輯器件PLD將高速視頻內(nèi)容連接到視頻播放器 1524次閱讀
- 太陽能熱水供暖系統(tǒng)的組成 3369次閱讀
- arduino連接顯示屏方法詳解 4.7w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多