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