這是一個使用 ESP8266 微控制器的 WiFi 連接迷你百葉窗開啟器。
這個項目的目標是為我的迷你百葉窗構建一個電動開啟器,我可以使用 Android 應用程序控制它。第二個動力則是能夠讓我更多地了解電子硬件和軟件開發。我也一直想在一個項目中使用 ESP8266 WiFi 集成微控制器。
我在這個項目中使用的百葉窗是典型的水平迷你百葉窗,一側的魔杖可以傾斜百葉窗,另一側的弦桿可以拉起百葉窗。這個項目只處理百葉窗的傾斜。
項目要求
使用 Android 應用打開和關閉百葉窗。
必須能夠在沒有應用程序的情況下打開百葉窗。
低能耗,僅在主動使用時才必須啟用電機。
直觀的控制。
必須可靠且安全。
百葉窗沒有不可逆轉的修改。
修改百葉窗
在百葉窗的上部外殼中是一根鋼六角形桿,它沿著百葉窗的長度延伸。轉動此桿會改變刀片的角度。我有一個步進電機,它安裝在這個上部外殼內,幾乎與六角形桿對齊。我能夠使用聯軸器將步進電機連接到桿上。
有一個齒輪箱,只允許通過扭轉木棒來旋轉該桿。我不得不卸下這個齒輪箱,以便步進電機可以轉動桿。我還必須設計一種在電機未通電時保持桿位置的方法。如果沒有東西來保持桿的位置,百葉窗的葉片會向下傾斜。
解決方案是以足夠的摩擦力固定桿,這樣桿就不會移動,除非電機以足夠的扭矩旋轉以克服這種固定摩擦力。這是通過取一塊木頭來完成的,該木頭有一個孔用于六角桿,一個垂直于桿的螺紋孔用于固定螺釘。在固定螺釘的末端是一塊橡膠,當固定螺釘被擰緊時,橡膠塞被壓在桿上。通過反復試驗,機器螺釘被調整到桿被牢固地固定但沒有那么牢固以至于電機難以轉動它。
電機用橡膠墊片固定到位。對百葉窗的修改成本不高,并且不需要對外殼進行不可逆轉的修改。變速箱很容易拆卸,可以毫無問題地放回原處。
控件
步進電機改變百葉窗的傾斜角度。我用陀螺儀/加速度計傳感器來測量葉片的角度;向步進電機提供反饋。我想我可以只跟蹤步進電機所采取的步驟來確定位置,但我認為直接感應角度會更可靠。傳感器簡單地用雙面膠帶連接到上刀片之一。
我決定在伺服電機上使用步進電機,因為標準伺服在沒有變速箱的情況下沒有足夠的角度行程。我還發現步進電機更容易使用,因為它們不需要精確的計時。我本可以使用帶有編碼器的直流電機,但這對于這項任務來說似乎過于復雜。
我使用了Pololu A4988 步進電機驅動器和Adafruit BNO055 絕對方向傳感器。
電子外殼
在窗戶旁邊的墻上是一個包含兩個界面按鈕和電子設備的外殼。步進電機和方向傳感器插入此外殼。該項目由插入外殼底部的 12V、3A 開關直流電源供電。
外殼由 3“ x 3” 鋼箱梁截面切割而成。我擔心鋼鐵會阻擋 WiFi 信號,不過并沒有發現任何問題。
電機和方向傳感器的電線隱藏在墻上。我使用屏蔽電纜將 EMI 的影響降至最低。在原型設計期間,步進電機導線的 EMI 導致方向傳感器發生故障。
印刷電路板
所有PCB組件都是通孔組件,便于焊接。
主要組成
Adafruit HUZZAH ESP8266 突破
Pololu A4988 步進電機驅動器載體
5V降壓穩壓器
3.3V降壓穩壓器
Neopixel LED(背面)
我還創建了一個插入主板的小型調試模塊,允許我將 ESP8266 置于引導加載程序模式并訪問串行線路而無需取下外殼。
兩個板的 gerber 文件和原理圖可在此處獲得https://gitlab.com/pfjare/wifi-blinds-pcb。
BOM 可在此處獲取https://docs.google.com/spreadsheets/d/1uPH0UYzaFl-pABCBGOthaaIexG82jPdf_6R0eSZoJQ4/edit?usp=sharing
ESP8266 代碼
在 ESP8266 上運行的代碼相當簡單。在允許步進電機移動之前,我會采取措施確保方向傳感器完全運行。我在代碼中使用以下庫:
Adafruit_BNO055
Adafruit_Sensor
arduinoWebSockets
Adafruit_NeoPixel
安卓應用
該應用程序與 ESP8266 建立 websocket 連接,并在應用程序未顯示時斷開連接。當按下按鈕時,一條包含所需百葉窗角度的消息將發送到 ESP8266。有四個按鈕 Closed Up、Full Open、Part Open 和 Closed Down。
我使用了nv-websocket-client WebSocket 庫。
該應用程序的源代碼可以在本文下方找到
-
微控制器
+關注
關注
48文章
7542瀏覽量
151316 -
WIFI
+關注
關注
81文章
5296瀏覽量
203576 -
ESP8266
+關注
關注
50文章
962瀏覽量
44964
發布評論請先 登錄
相關推薦
評論