ESP8266+tm1650+48行arduino代码 制作迷你数码管NTP时钟 开源带库
用esp8266 mini D1 开发板作为基础平台, 做一个NTP校时的迷你数码管时钟。原来想用一个成品Tm1650显示模块做,但不想用导线连接,已有的模块用起来不够利索,没有做到合适的,后来干脆自己画块板自己画的这个板与mini d1开发板差不多大小,可以通过排针排座连接在一起,由于面积确实小,只能刚好用0.36的4位数码管,这个尺寸的数码有一点不好,
没有即有带4个小数点和时钟点的数码管0.36共阴的数码管只找到红色,白色2种,要想用其它颜色得用共阳的才有
开发环境为 arduino IDE 1.8.5 for ESP8266
代码很简单,只有48行肯定要用到库了,除自带库 用到了tm1650驱动库,NTPClient 2个库,这个两个库都可以在IDE库管理中找到
这个两个库都很简洁,有兴趣可以研究一下,实现更多功能
校时是初次上电校时,然后就按设定的时间间隔校一次,具体过程可以看一下NTPClient ,而计时是NTPClient 库中使用millis()时差实现
所以只要获取时分数据显示出来即可,loop中只负责跳秒点和刷新显示
只要连上了wfii,名称和密码不变,上电就自动连接NTP服务器校时,自动定时更新
基本功能有注释,这个只是一个框架代码,还有更大的发挥空间,比如加几行引用一个wifimanager库就可以实现ap配网了,可能除掉注释也不会超过50行
#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <Wire.h>
#include <TM1650.h>
TM1650 d;
//填入要连接的路由器的SSID和密码
const char *ssid = "<SSID>";//
const char *password = "<PASSWORD>";//
WiFiUDP ntpUDP;
//时区北京时间,每隔10分钟同步时间stdtime.gov.hk(香港天文台服务器,快),cn.pool.ntp.org
NTPClient timeClient(ntpUDP, "stdtime.gov.hk", 8*3600, 10*60*1000);
int time_h=0,time_m=0;
String time_str="";
char time_show[]=" ";
void setup(){
Serial.begin(115200);
Wire.begin(12,14); //SDA-12,SCL-14 接TM1650 SDA,SCL
d.init();
d.setBrightnessGradually(5);
d.displayString("boot");
WiFi.begin(ssid, password);
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 500 );
Serial.print ( "." );
}
timeClient.begin();
}
void loop() {
if(timeClient.update()){
time_h = timeClient.getHours();
time_m = timeClient.getMinutes();
time_str=Num2Str(time_h)+Num2Str(time_m);
strcpy(time_show,time_str.c_str());
d.displayString(time_show);
d.setDot(1,true);
delay(500);
d.setDot(1,false);
delay(500);
Serial.println(timeClient.getFormattedTime());
}
else
{d.displayString("-SN-"); d.setDot(1,false);}//
}
//数字首位补零
String Num2Str(int num) {
if (num<10) { return "0" + String(num);} else { return String(num);}
}
学习学习:) ESP8266+tm1650+48行arduino代码 制作迷你数码管NTP时钟 开源带库
https://www.arduino.cn/forum.php?mod=viewthread&tid=91940&fromuid=204364
(出处: Arduino中文社区)
学习了,谢谢! 做得好漂亮。
这要是能驱动WS2812灯条,做个大的放在客厅中的时钟了就更酷了:loveliness: 谢谢分享,不错的,学习了 标注一下,晚上去练习练习:lol 没见过这么帅的楼主!! 分享精神 太棒啦 本帖最后由 lzm1019 于 2020-10-20 15:50 编辑
手头有不同尺寸的管子(0.36寸,0.4寸和0.56寸)。
只有0.4寸管子是时钟管,测试ok。一时好奇,换上0.36寸和0.56寸,也能工作,只是中间的2点闪烁切成了第2个8字符的dp点闪烁。
---
TM1637能用吗?
页:
[1]
2