应用ESP8266控制433M无线遥控电动幕布
? ? ? 家里的得力牌電動投影幕布是的433M單一頻率無線遙控的,為把它加入HomeAssistant與投影儀、音響等實現(xiàn)聯(lián)動控制,計劃用萬能的esp8266來模擬遙控器。
一、設(shè)計思路
? ? ? 用ESPHome的Remote Receiver組件獲取遙控器升、降、停分別對應(yīng)的編碼(由于我的遙控器不是標(biāo)準(zhǔn)協(xié)議,只能通過邏輯分析儀自己解碼),然后用Remote Receiver組件定義升、降、停按鍵對應(yīng)的編碼(詳見:ESPHome — ESPHome),然后集成到HomeAssistant即可。
二、器件準(zhǔn)備
1. ?ESP8266模塊(ESP-01S)
???
2. 433M超外差發(fā)射模塊、接收模塊各1只
?
?
?????????????????接收模塊? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????發(fā)射模塊
最好選擇如圖的超外差模塊,抗干擾能力強(qiáng)。
?3、esp8266燒寫器
??
?也可以用USB轉(zhuǎn)TTL-CH340模塊進(jìn)行燒寫,這里方便起見直接用了esp8266燒寫器。
4. 邏輯分析儀
?
?二、器件連接
| CH340 | ESP8266 燒寫模式 | ESP8266 工作模式 | 433M接收模塊 | 433M發(fā)射模塊 | 邏輯分析儀 |
| 3.3V | 3.3V | 3.3V | 5V | 5V | |
| RX | TX(GPIO1) | ||||
| TX | RX(GPIO3) | GPIO3 | DATA | ||
| GND | GPIO0 | ||||
| GND | GND | GND | GND | GND | GND |
| GPIO2 | DATA | CH0 |
在Home Assistant安裝ESPHome、向ESPHome添加Esp設(shè)備、給ESP設(shè)備刷新固件等過程參見《以DHT11、ESP8266為例介紹ESPHome在Home Assistant中的應(yīng)用》一文,本文就不再贅述。
三、獲取遙控器升降停操作發(fā)射的編碼
首先給esp8266添加以下代碼段(其它部分代碼參見《以DHT11、ESP8266為例介紹ESPHome在Home Assistant中的應(yīng)用》一文),并進(jìn)行燒寫。
remote_receiver:pin: 2dump: all然后按上面的器件連接表把ESP8266(工作模式)、433M接收模塊、邏輯分析儀連接起來,下載并安裝邏輯分析儀軟件(Logic analyzer software from Saleae),目前版本是Logic 2.4.9,進(jìn)入軟件會自動匹配連接邏輯分析儀。
設(shè)置好采樣速度(一般2M就夠用),點擊右上角綠色按鈕即可開始采樣(為確保準(zhǔn)確建議每次只對1個按鈕進(jìn)行采樣),按下遙控器按鈕,再停止采樣,這樣通道0上就會出現(xiàn)采樣波形,由于有電磁干擾,即使未按下遙控按鈕也會有波形。用鼠標(biāo)滾輪可以放大和縮小波形,同時可以左右移動波形,找到遙控器按下的一段波形進(jìn)行分析(相對于干擾波形,遙控器波形比較密,而且有規(guī)律)。
? ? ? 定義為“0”
? ? 定義為“1”
?經(jīng)分析發(fā)現(xiàn),一個窄的高/低電平為333us,一個寬的高/低電平為685us,寬和窄基本呈倍數(shù)關(guān)系。控制碼一般以一個較長的高電平開始,已一個較長的低電平結(jié)束,我們把一個窄的高電平接一個寬的低電平定義為0,把一個寬的高電平接一個窄的低電平定義為1,就可以將遙控器波形轉(zhuǎn)化為二進(jìn)制代碼。
?經(jīng)分析,我的遙控器編碼如下:
?我的遙控器除停止碼是發(fā)送1次“0110010001000101011001101001000101010101”外,上升是先發(fā)3個控制碼“0110010001000101011001101001000100010001”,再發(fā)5個控制碼校驗碼“0110010001000101011001101001000100011110”,注意他們的后4位,校驗碼的“1110”是控制碼“0001”的反碼,這是為了校驗接收的發(fā)射碼是否有誤,下降也是類似的。實際模擬遙控的時候不發(fā)校驗碼,多發(fā)幾次控制碼也可以控制的。
四、用ESP8266發(fā)射編碼模擬遙控器操作屏幕升降停
給esp8266添加以下代碼段,并進(jìn)行燒寫。
remote_transmitter:pin: 2carrier_duty_percent: 100%switch:- platform: templatename: Screen upturn_on_action:- remote_transmitter.transmit_rc_switch_raw:code: '0110010001000101011001101001000100010001' # 0x64 4566 9111protocol:pulse_length: 350sync: [14, 4]zero: [1, 2]one: [2, 1]repeat:times: 5wait_time: 7500us- platform: templatename: Screen Stopturn_on_action:- remote_transmitter.transmit_rc_switch_raw:code: '0110010001000101011001101001000101010101' # 0x64 4566 9155protocol:pulse_length: 350sync: [14, 4]zero: [1, 2]one: [2, 1]repeat:times: 5wait_time: 7500us- platform: templatename: Screen downturn_on_action:- remote_transmitter.transmit_rc_switch_raw:code: '0110010001000101011001101001000100110011' # 0x64 4566 9133protocol:pulse_length: 350sync: [14, 4]zero: [1, 2]one: [2, 1]repeat:times: 5wait_time: 7500us然后按上面的器件連接表把ESP8266(工作模式)、433M發(fā)射模塊連接起來。
?
五、將ESP設(shè)備集成到Home Assistant(略)
參見《以DHT11、ESP8266為例介紹ESPHome在Home Assistant中的應(yīng)用》一文
五、參考文檔
用Esphome發(fā)射和接收任意315/433MHz射頻 - 『HomeAssistant』綜合討論區(qū) - 『瀚思彼岸』? 智能家居技術(shù)論壇 - Powered by Discuz!
總結(jié)
以上是生活随笔為你收集整理的应用ESP8266控制433M无线遥控电动幕布的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: h5 <audio>音乐自动播放,谷歌禁
- 下一篇: win下使用TensorFlow obj