在网上买个时钟其实并不贵,几块钱到几百元都有,一般如果你不了解的话,只看漂亮的外表购买,你买到的钟表很有可能是不好的,不好指的是走着走着它就不准了,因为一般的机芯都有这样的问题,作为时钟,只要是不准了,它就失去价值了,无论多漂亮无论价格多美丽。
例如下面这些,一个月后不是差分就是多秒。
为了解决时钟总是不准这种问题,有几种办法。
例如第一种是GPS授时,这种成本很高,价格都直逼300以上了。
第二种是购买电波表,价格也很高,为了减少成本,你可以单独买个电波机芯,然后再买个普通钟表换上,永远不用对时,分秒不差。成本大概在100元以内!
今天我们说的是最后一种,wifi时钟,不仅仅能够准确的显示时间,还能显示天气,今天、明天、后天的实时天气。因为成本非常的低,稍微需要你自己有点动手能力。
我们只需要购买一块esp8266或esp32模块,加一块0.96寸的ssd1306液晶屏,杜邦线4条就可以做出来了,总成本在26元以内。
需要注意:esp8266和esp32都可以,推荐买esp8266,成本更低一些,尺寸上有大的小的,建议买小的,方便自己diy外壳。
有以上材料后,你只需要用电脑给esp8266模块写一个固件即可,最终可以获得下图的这种效果,需要注意,外壳你得自己想办法,因为这个属于DIY。
写入固件的方法
买到上面的材料后,按照下面的图接线,如果没有左侧那个DS18B20温度探测头可以不用接,结果就是屏幕右下角不显示室内温度,但是不影响室外温度的显示。
然后到下面这个链接下载写入固件的开发工具arduino,自己到其他地方下载也可以,都一样。
https://share.weiyun.com/lEzbr39k
如果你使用腾讯微云下载速度慢,参考这篇文章:https://get.qiaobuqiao.com/post-283
根据自己的系统选择,目前支持linux、macosx、Windows,下载后直接安装,差的环境软件会自动补齐,如果没补齐,例如java环境没有自动安装,你得自己手动网上下载安装了。
安装成功后还得配置一下库。
1、自行设置安装ESP8266开发板
进入首选项(Preferences),找到附加开发板管理器地址(Additional Board Manager URLs),并在其后添加如下信息:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
2、在安装下面的库
项目—加载库—管理库
- ArduinoJson库 用于解析和风天气API response的JSON
- DS18B20库 用于读取DS18B20的温度,检测房间内实时温度
- ESP8266 and ESP32 OLED driver for SSD1306 displays库 用于驱动OLED屏幕显示内容
- OneWire库 用于连接DS18B20
然后,从文末提供的固件官方,下载后直接运行.ino格式的文件,arduino就会打开编辑界面。
将esp8266/esp32模块连到电脑,正常情况下在win10会自动安装驱动,然后在工具里面就可以选择开发板了。
按照文末固件官方网站提供的教程修改天气数据调用的API接口密钥后,你就可以直接把固件写入到esp8266模块了,其他的代码你都不用改,只要添加天气api密钥。
写入成功后,你就可以看到模块屏幕上显示信息了,会让你用手机连一个ip网址,连上后你可以给模块设置wifi连接信息,让模块连上你的路由器上网。
为了方便,你也可以直接将wifi密码写死在代码里,看下图。这样就不需要给模块设置连接wifi的信息了,上电就自动连接,迅速显示天气。
最终结果
如果你熟悉 ,其实很容易就做一个这种wifi时钟了,如果你有3d打印机,你甚至可以自己设计外壳,不过我没有,只能将就做一个给大家看一下。这个也是在网上看到挺有意思,决定自己尝试下,没想到真的可以。
文末总结
注意,本文需要有一定折腾能力才能搞定,主要推荐大家的是这个新事物,以及这个开源的固件,从这种diy折腾中你也可以获得一定的快乐。
固件官方网站有详细的教程和视频。
外壳大家可以自由发挥,也可以想办法嵌入到各种盒子、设备外壳里。
下面的内容包含两个官方链接,哪个能打开就用哪个,都一样的。