基于 ESP8266 的 Apple HomeKit Wi-Fi 除濕機(jī)
對(duì)于一個(gè)果粉而言,不幸的是,只有一兩個(gè)除濕器支持AppleHomeKit,但它們的價(jià)格非常高(300美元以上)。所以我決定基于我已經(jīng)擁有的便宜的一臺(tái),制作我自己的具有Wi-Fi功能的AppleHomeKit除濕機(jī)
它可以使用ESP8266與HomeKit一起使用,因此不需要homebridge、HAP-NodeJS!
由于代碼非常復(fù)雜,而且我使用了很多自定義庫(kù),因此我制作了預(yù)編譯的固件文件。對(duì)于那些對(duì)制作原生HomeKit項(xiàng)目感興趣的人,可以在此處獲得esp-homekit的源代碼。
特征:
使用SHT3x傳感器進(jìn)行濕度測(cè)量
設(shè)置目標(biāo)濕度
控制風(fēng)扇速度
水位(通過(guò)LED指示燈和水箱滿時(shí)自動(dòng)關(guān)機(jī))
電源/重置按鈕
印刷電路板零件:
ESP12F/E/S
XROW600B除濕機(jī)
SHT3x溫度/濕度傳感器
貼片0805電阻
貼片0805電容
AMS1117-3.3
觸覺(jué)按鈕
1x4P2.54mm接頭(可選)
IRF540NS
貼片10x10.550V100uF電容
SMD6x76,3V330uF電容器
LM2575S-5.0
330uHCRDH74電感
1N4007二極管
2N3904
VH3.96-2P
XH2.542P、4P、5P
3MM紅/綠LED
3mm(高)LED尼龍墊片
4P公頭XH2.54帶電纜(用于濕度傳感器)
補(bǔ)給品
烙鐵或焊臺(tái)或熱風(fēng)焊槍
要上傳代碼,您可能還必須購(gòu)買(mǎi)USBTTL適配器。
要拆卸除濕機(jī),您需要一些螺絲刀。
定制PCB
XROW600B除濕機(jī)
第1步:拆卸
要拆卸除濕機(jī),您唯一需要的是一把螺絲刀,它可以插入設(shè)備背面的孔中!
擰下設(shè)備底部的2個(gè)螺絲
擰下設(shè)備背面的4個(gè)螺絲
現(xiàn)在您可以拆開(kāi)塑料外殼
拔下PCB上的每個(gè)連接器
擰下固定PCB的2個(gè)螺絲
第2步:定制PCB
我設(shè)計(jì)了一個(gè)定制的PCB,它可以取代原來(lái)的、非常基本的PCB。它基本上只是一個(gè)從12V到3.3V的電源/降壓轉(zhuǎn)換器、兩個(gè)用于驅(qū)動(dòng)風(fēng)扇和珀耳帖的MOSFET、ESP8266本身、兩個(gè)LED和觸覺(jué)按鈕,就像原始的一樣。
我還為新PCB添加了與原始PCB相同的連接器,并為SHT3x濕度傳感器添加了一個(gè)額外的4針連接器。除濕機(jī)自帶的9V電源也可以使用!一切都是即插即用的
您可以在此處找到有關(guān)PCB的更多信息!
PCB文件可以在PCBWay找到!
SHT3x濕度傳感器
您必須使用帶電線的公XH2.54-4P連接器連接SHT3x傳感器(在零件列表中鏈接),只需按原樣連接一切即可:VCC到VCC、GND到GND、SDA到SDA和SCL到SCL
目前在我的設(shè)置中,傳感器只是掛在除濕機(jī)的外殼外面,這取決于您放置傳感器的位置/方式,但在除濕機(jī)的外殼內(nèi),捕獲的濕度/水可能會(huì)影響傳感器讀數(shù)!
GPIO引腳排列
如果您想使用自己的固件,請(qǐng)使用引腳排列:
按鈕-GPIO0(wemosD1mini上的D3)
SHT3xSDA-GPIO4(wemosD1mini上的D2)
SHT3xSCL-GPIO5(wemosD1mini上的D1)
內(nèi)置LEDGPIO2(wemosD1mini上的D4)
電源LED-GPIO14(wemosD1mini上的D5)
風(fēng)扇-GPIO15(wemosD1mini上的D8)
Peltier-GPIO12(wemosD1mini上的D6)
坦克傳感器-GPIO13(wemosD1mini上的D7)
第3步:軟件設(shè)置
您可以從我的GitHub頁(yè)面下載固件!
視窗:
對(duì)于Windows,您可以使用樂(lè)鑫官方提供的固件下載工具!
設(shè)置閃存地址(0x2000)、閃存大小(4MB/32mbit)和閃存模式(DIO/QIO)是非常重要的一步,但這些設(shè)置可能會(huì)根據(jù)您使用的模塊而改變!此外,我建議您在上傳.bin文件之前第一次安裝固件時(shí)擦除閃存!
設(shè)置:
波特率
閃存大小4MB或32mbit(取決于您的模塊)
閃存模式QIO(或DIO,取決于您的模塊)
0x0000rboot.bin
0x1000blank_config.bin
0x2000main.bin
40MHz
蘋(píng)果系統(tǒng)
對(duì)于MacOS,您可以使用此flasher工具!
設(shè)置:擦除閃存-是(僅在第一次安裝時(shí))
波特率
閃存大小4MB或32mbit(取決于您的模塊)
閃存模式QIO(或DIO,取決于您的模塊)
文件:main.bin
40MHz
手動(dòng)閃光
我們必須在Mac上安裝esptool.py才能刷入我們的ESP模塊。要使用esptool.py,您需要在系統(tǒng)上安裝Python2.7、Python3.4或更新的Python。我們建議使用最新的Python版本,因此請(qǐng)?jiān)L問(wèn)Python的網(wǎng)站并將其安裝到您的計(jì)算機(jī)中。安裝Python后,打開(kāi)終端窗口并使用pip安裝最新的穩(wěn)定版esptool.py:
注意:對(duì)于某些Python安裝,該命令可能不起作用,您將收到錯(cuò)誤消息。如果是這種情況,請(qǐng)嘗試使用以下命令安裝esptool.py:
安裝后,您將esptool.py安裝到默認(rèn)的Python可執(zhí)行文件目錄中,您應(yīng)該能夠使用命令esptool.py運(yùn)行它。在終端窗口中,運(yùn)行以下命令:
在您的計(jì)算機(jī)上安裝esptool.py后,您可以輕松地使用固件刷新您的ESP8266板。首先需要下載三個(gè)bin文件:rboot.bin和blank_config.bin以及最新版本。rboot.bin包含ESP8266的引導(dǎo)加載程序,blank_config.bin僅包含在一個(gè)空白配置文件中,而ledstrip.bin包含固件?,F(xiàn)在以閃存模式將您的設(shè)備連接到FTDI適配器。
要啟用ESP8266固件閃爍,必須在為設(shè)備供電時(shí)將GPIO0引腳拉低。我的定制PCB有一個(gè)按鈕,您需要在將FTDI適配器連接到PC時(shí)按住該按鈕。相反,對(duì)于正常啟動(dòng),GPIO0必須拉高或懸空。以FLASH模式啟動(dòng)轉(zhuǎn)到您放置先前下載的rboot.binblank_config.bin文件(例如下載)的目錄打開(kāi)終端應(yīng)用程序。單擊Dock中的Finder圖標(biāo)。單擊“前往”。單擊實(shí)用程序。雙擊終端。
切換到下載目錄。
注意:如果您使用另一個(gè)庫(kù)來(lái)存儲(chǔ)三個(gè).bin文件,請(qǐng)使用`cd`命令導(dǎo)航到該庫(kù):使用esptool.py刷新您的設(shè)備。
您需要一個(gè)USBTTL適配器來(lái)連接到ESP8266。如果您使用WemosD1Mini,只需要一根microUSB數(shù)據(jù)線,Wemos內(nèi)置了TTL適配器。
第一次安裝固件時(shí),我們需要擦除閃存:
通常,您的ESPPort將類似于/dev/cu.usbserial-`xxxxxx`。然后,再次將您的設(shè)備設(shè)置為閃存模式,并刷新新固件:
Wi-Fi和HomeKit設(shè)置
Wi-Fi設(shè)置
在將配件添加到HomeKit之前,您必須配置wifi網(wǎng)絡(luò)。要配置Wi-Fi設(shè)置,設(shè)備會(huì)在AP模式下生成自己的Wi-Fi。您必須連接到它才能設(shè)置Wi-Fi網(wǎng)絡(luò)。只需拿起您的iOS設(shè)備,轉(zhuǎn)到設(shè)置->Wi-Fi,然后搜索名為HomeKid的SSID,然后是模塊的MAC地址并連接到它。出于安全原因,AP受密碼保護(hù)!
等待幾秒鐘,直到出現(xiàn)顯示設(shè)備已找到的所有Wi-Fi網(wǎng)絡(luò)的網(wǎng)頁(yè)。選擇你的,然后輸入密碼!然后點(diǎn)擊加入按鈕!模塊將嘗試連接選定的Wi-Fi網(wǎng)絡(luò),這將需要幾秒鐘的時(shí)間。
注意:如果給定的密碼錯(cuò)誤,您可以通過(guò)按住按鈕10秒來(lái)重置Wi-Fi設(shè)置
HomeKit設(shè)置
在您的iOS設(shè)備中,打開(kāi)HomeApp并按照正常步驟添加新配件。配對(duì)設(shè)置大約需要30秒。
您也可以掃描此HomeKit二維碼。
注意:如果配對(duì)失敗,您可以將設(shè)備斷電,重新通電,然后再次啟動(dòng)HomeKit設(shè)置(WiFi設(shè)置保持配置)。配對(duì)成功后,電源LED將呈白色閃爍3次!
第4步:PCB連接
對(duì)于PCB設(shè)計(jì),我選擇了與原始PCB上的連接器相同的連接器!
所以這一步應(yīng)該很簡(jiǎn)單:
將風(fēng)扇連接到風(fēng)扇連接器
將TEC(珀耳帖模塊)連接到相應(yīng)的連接器
將5針電源連接器連接到相應(yīng)的連接器
將SHT3x模塊連接到它自己的連接器
第5步:設(shè)備組裝
把設(shè)備組裝在一起和拆卸是一樣的過(guò)程,只是順序相反.
第6步:重要提示
當(dāng)水箱已滿且設(shè)備正在運(yùn)行時(shí),除濕機(jī)具有一些安全功能:
自動(dòng)關(guān)閉風(fēng)扇/珀耳帖直到水箱為空
立即打開(kāi)紅色LED
電源LED每30秒閃爍3次
還具有安全功能,以防SHT3x傳感器無(wú)法正常工作:
自動(dòng)關(guān)閉風(fēng)扇/珀耳帖直到水箱為空
將當(dāng)前濕度設(shè)置為0%
電源LED每30秒閃爍2次
當(dāng)SHT3x出現(xiàn)錯(cuò)誤且油箱已滿時(shí),電源LED將每30秒閃爍6次。
在ESP8266有一些錯(cuò)誤時(shí),您不需要將設(shè)備從電源上拔下,三次按下按鈕將重新啟動(dòng)ESP8266!
當(dāng)除濕機(jī)打開(kāi)且當(dāng)前濕度等于和/或小于目標(biāo)濕度時(shí),設(shè)備將進(jìn)入空閑模式。在Home應(yīng)用程序中,它會(huì)在設(shè)備空閑時(shí)顯示“設(shè)置為...”,在運(yùn)行時(shí)顯示“正在降低到...”!
更新固件
我計(jì)劃實(shí)施無(wú)線(OTA)固件更新,但它不是那么穩(wěn)定,因此應(yīng)該像第一次設(shè)置一樣手動(dòng)完成更新!唯一的區(qū)別是您不需要擦除閃存,只需刷新較新的固件而不擦除即可保留您的Wi-Fi/HomeKit設(shè)置!