制作一个带SNTP的智能手表
0赞智能手表已成为穿戴设备中最重要的一项。我使用了mbed网页编译器。建议你也使用mbed网页编译器。
计划如下。
- WIZwiki-W7500 + OLED + bluetooth + 安卓手机
但是…时间值数据错误(从智能手机获取数据)
所以,我改变了计划。
WIZwiki-W7500 + OLED + Ethernet + NTP服务器
系统操作
1. 初始化时,网络时间从NTP服务器获取
2. 接下来,使用MCU中的RTC计时
3. 几秒后,就从小号的yy/mm/dd h/m/s变成了大号的 h/m
4. 当按钮连接到D3,就从大号的h/m变成了小号的 yy/mm/dd h/m/s
步骤1:零件
-WIZwiki-W7500at WIZnet :WIZwiki-W7500
-OLED 128×64(SSD1306/i2c)at Adafruit :http://www.adafruit.com/products/326
-Easy module Shieldat YWRobot(只有中文网页) :YWRobot
-Jumper cable: 将 OLED 及 easy 模块插板连接
库文件
- SSD1306 驱动
- Ethernet库(来此WIZnet)
工具
- mbed 网页编译器:LINK
步骤2:硬件
WIZWIKI-W7500 | OLED | |
---|---|---|
SCL | PA_9 | SCL |
SDA | PA_10 | SDA |
GND | GND | GND |
VCC | VCC | VCC |
WIZWIKI-W7500 | |
---|---|
Button | PC_0 |
步骤3:实现智能时钟
1. 使用SNTP协议,网络时间可以从NTP服务器上获取
2. RTC初始值写入数据
3. 时钟计时使用设置值
NTP服务器地址是“time.nist.gov”,端口为40。
步骤4:代码
代码基于bmed(C++)。但是你使用SSD1306.h 文件(c)
SSD1306.h 文件和SSD1306库一样使用。
注意!!!
当rtc存储数据获得ntp时间,你需要计算一下ntptime(month) -1 and ntptime(year) – 1900
步骤5:Mbed网页编译器及CMSIS-DAP
你可以使用mbed网页编译器下载固件。
1. 当你给WIZwiki-W7500插上USB线时,PC被识别为一个可移动磁盘。可移动磁盘名称为MBED。
2. 你拖放或者复制硬件到可移动磁盘,固件写进程已完成。
3. 完成固件写入后,打开检查可移动磁盘。
4. 如果”fail.txt”文件在可移动磁盘中存在,这表明写固件失败。
5. 按下WIZwiki-W7500的Reset按钮(SW1)后,请从第二步开始重复一次。
步骤6:设计时钟
3D打印:链接
步骤7:确认操作
步骤8:源码及参考网页
- 智能表源码:链接
- Ethernet源码:链接
- 3D打印:链接