不久前,我向我的一些同事提到,可以制作一个简单的翻盖显示器。(我实际上是用硬纸板和牙签制作的,看上去……并不是很漂亮。)
实际上,这是2013年4月由日本大人の科学杂志(“成人科学”)制作的DIY无线电钟,称为(电波时计。2014年在台湾出版了中文翻译本。该杂志总能为您提供一些帮助:迷你电吉他,天文馆,留声机,小型自动化机器人,真空管AM收音机,小型印刷机等。)
顾名思义,无线电时钟是通过无线电信号校准的。但是,该信号太微弱,无法在台湾接收到,因此毫无用处。有些人使用应用程序在非常近的距离和非常安静的环境中人工生成信号,但这并不实际。
时钟的两个翻转显示由两个直流电动机驱动。原理很简单:当一台电动机通电时,一个杠杆会推动外齿轮前进,但是,外齿轮会立即被另一个杠杆阻止。切断电动机电源,第一个操纵杆将退回到原始位置。因此,每次给一台电动机供电并切断其电源时,它将使显示器精确地向前移动一个档位。齿轮外还有两个金属触点,可用于确定它们何时到达默认位置(零)。
因此,我决定将其修改为网络时钟。(我实际上是购买了自己的时钟装置,以便可以在家完成修改和实验。)电动机由LS9110S驱动板控制,并且金属触点连接到微控制器板的引脚。
最初,我尝试使用ESP8266开发板...发现它们没有足够的GPIO引脚。因此,我改用了ESP32开发板之一,即NodeMCU-32S。(它比具有相同宽度的ESP8266 NodeMCU V2稍长,可以将其安装在半面包板上,并且引脚编号写在板的下面。)
我还添加了我之前购买的DS3231 RTS(实时系统)模块,以更准确地存储和计算时间,还添加了TM1637 4位LED显示屏和RGB LED模块以显示某些系统状态。
一个电源模块(〜700mA)为大多数外部组件供电,这是因为ESP32的WiFi也需要消耗大量电能!(由于某种原因,我无法直接通过5V引脚为其供电。因此,现在需要两个单独的电源。)
该项目在MicroPython v1.11中进行了编码和测试。我使用的DS3231库位于此处,而TM1637库位于此处。
网络时钟的运行方式如下:
1.转动两个电动机,直到两个显示器都达到默认位置,从而使硬件和软件同步(小时和分钟变量也设置为0)。
2.初始化DS3231和TM1637模块。(现在执行此操作以避免步骤1中的潜在电压降。)
3.连接到WiFi。(RGB LED指示灯将以不同的颜色闪烁,以指示前三个步骤的进度。)
4.现在进入主循环:
a。每隔3600000毫秒(1小时),查询Web时间API,检索JSON数据并提取时间,然后更新系统软件RTS和DS3231模块。
b。每隔250 ms,从DS3231读取一次时间(如果可能;否则使用系统RTS时间),并查看是否需要转动显示器。
C。如果用户按下按钮,则转动电动机(手动校准)。
d。每次转动电动机,RGB led都会改变颜色。
e。TM1637显示实际的RTS时间,以便用户可以根据需要手动校准时钟。如果ESP32失去WiFi连接,其亮度将变暗。
演示的视频如下:
电路城目前已建立包括电源,嵌入式技术,传感器技术,汽车电子,射频/微波,电机控制,EDA/PCB设计,物联网技术等领域QQ交流群,以下为对应QQ群号:
加入群聊
物联网技术交流1群:334330786
电源开发交流1群:143342428
汽车电子交流1群:238034110
传感器交流1群:762634350
嵌入式交流1群:852018713
EDA/PCB设计交流1群:854217089
电机控制研发交流1群:854319380
射频/微波/无线研发交流1群:180207029
电路城官方交流群,期待你的加入。
点击“