这是一个使用 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 库。
该应用程序的源代码可以在本文下方找到
全部0条评论
快来发表一下你的评论吧 !