首先,硬件上,单片机通过串口AT指令访问WIFI模块(ESP12S)。具体AT指令怎样是写,可以参考之前的文章《AT指令程序的编写》。上电后,先配置WIFI模块的工作模式等,用到的AT指令如下: 1. 关闭回显 ATE0 2. 设置为STA模式 AT+CWMODE_DEF=1 3. 设置WIFI名称和密码 AT+CWJAP_DEF=”SSID”,”Password” 4. 开启DHCP AT+CWDHCP_DEF=1,1 5. 设置为单连接模式 AT+CIPMUX=0 6. 透传模式 AT+CIPMODE=1
2.获取网络时间 获取网络时间的方式有两种,对于较新版本的固件,可以直接通过AT指令来获取。(可以通过AT+GMR指令来查询固件的版本。) AT+CIPSNTPTIME? 对于较老版本的固件,不支持该AT指令,只能通过自己链接网络服务器来获取当前时间。具体需要的AT指令如下: 1.建立TCP链接 AT+CIPSTART="TCP","www.beijing-time.org",80 2.打开传透模式 AT+CIPSEND 3.收到‘>’符号后,随便发送个数据 4.等待接收数据 接收的数据可以先用网络调试助手来测试,如下,可以看大,数据中包含了当前的日期和时间信息,我们可以先找到字符串中“Data”的位置,再解析后面的数据。数据格式固定,直接按照字符位置解析就行。 需要注意的是,获取的这个时间是格林威治时间,与北京时间相差8个小时。 当然,也可以通过连接其它NTP时间服务器来获取时间,步骤是类似的。
|