切换到宽版
爱科技/爱创意/爱折腾/爱极致;技术知识分享平台,点击进入新版数码之家网站
  • 3464阅读
  • 8回复

[WiFi]通用型-易配制-可扩展LED点阵网络时钟(ESP8266, SNTP, WIFI, APP, TIMEZONE) [复制链接]

上一主题 下一主题
离线ppxiaop
 

发帖
88
M币
622
专家
5
粉丝
23
只看楼主 倒序阅读 我要置顶 楼主  发表于: 2018-01-19
首先感谢aqxgm的WIFI时钟例子:http://bbs.mydigit.cn/read.php?tid=2283077

在复刻了这个版本的同时,加入光感应亮度调节,最重要是通过建立TCP服务器,与时钟可以进行双向通讯,从而可以很方便地通过手机进行控制点钟时钟,修改包括SSID,时区,SNTP服务器在内的各项参数,具备了通用性,且扩展性强。在这个基础上,使得这个点阵时钟从个人DIY到具备商品化的可能。

基本工作流程逻辑为:
1. 时钟启动,读取set.log配置文件中的SSID名和密码,连接WIFI网络
2. 如果连接成功,则通过SNTP服务器获取时间。
3. 如果连接失败,则自动重启,然后创立一个热点。
4. 使用手机连接热点,使用手机端的app,或者任意tcp客户端工具,可以连接到时钟的TCP服务器,更新set.log配置文件内的ssid来连接WIFI网络。
5. 时钟重启,连接wifi,获取网络时间,此时手机端的app同样也可连接到时钟建立的TCP服务器,来修改配置文件。

惯例先上几张图:












网络拓扑和通信简图:



使用APP控制时钟的视频(目前可以修改SSID名字,密码,时区以及SNTP服务器):
flash: http://player.youku.com/player.php/sid/XMzMzMjc5NTU4NA==/v.swf

附上Lua TCP服务器的脚本。根据需要可以自行添加更多命令。ESP8266使用“set.log"保存各项配置,通过与TCP服务器通讯可以对配置文件进行更新。
  1. srv=net.createServer(net.TCP, 30)
  2. srv:listen(8080,function(conn)
  3.         
  4.     conn:on("receive",function(conn,payload)
  5.         if (payload == "cmd|restart") then
  6.             conn:send("OK|system will restart")
  7.             node.restart()   --restart system
  8.         elseif (string.sub(payload,1,11) == "cmd|acquire") then
  9.             if file.open("set.log", "r") then
  10.                 set = string.gsub(file.read(),string.char(10),"")
  11.             end
  12.             conn:send(set)
  13.         elseif (string.sub(payload,1,7) == "cmd|set") then
  14.             file.open("set.log", "w+")
  15.             file.writeline(string.sub(payload,9,-1))
  16.             file.close()
  17.             conn:send("OK|setting stored")
  18.             message = 2
  19.             tmr.alarm(3, 3000, tmr.ALARM_SINGLE, function()
  20.                 wifi.setmode(wifi.STATION)
  21.                 node.restart()
  22.             end)
  23.         else      
  24.             conn:send("OK|client time is|"..rtctime.get())
  25.         end
  26.     end)  
  27.         
  28.     conn:on("disconnection",function(c)
  29.     --    uart.on("data")
  30.     end)      
  31. end)
待继续更新。。。
[ 此帖被ppxiaop在2018-01-19 17:30重新编辑 ]
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共4条打赏M币+68专家+1
离线a268295

发帖
1287
M币
125
专家
5
粉丝
17
只看该作者 1楼 发表于: 2018-01-19
请登录后查看
离线我爱苹果

发帖
868
M币
108
专家
3
粉丝
54
只看该作者 2楼 发表于: 2018-04-18
请登录后查看
离线触景情伤

发帖
3862
M币
28
专家
4
粉丝
70
只看该作者 3楼 发表于: 2018-04-18
离线zhongjiafa
发帖
95
M币
483
专家
0
粉丝
4
只看该作者 4楼 发表于: 2018-04-27
请登录后查看
离线3c905b

发帖
4752
M币
495
专家
1
粉丝
15
只看该作者 5楼 发表于: 2018-04-27
请登录后查看
离线ztrdiy

发帖
3687
M币
417
专家
3
粉丝
64
只看该作者 6楼 发表于: 2018-04-27
请登录后查看
离线zps555

发帖
583
M币
471
专家
0
粉丝
28
只看该作者 7楼 发表于: 2018-04-28
请登录后查看
离线yishuizi

发帖
686
M币
1970
专家
5
粉丝
61
只看该作者 8楼 发表于: 2018-05-29
请登录后查看
快速回复
限80 字节
“新手上路”发帖需审核后才能显示(请认真发帖),达到数码9级后取消此限制
 
上一个 下一个