esp8266获取网络时间

我们使用的手机都有 “使用网络上的时间,自动调整日期和时间” 的功能。如果我们自己做的电子时钟也有自动调整时间的功能,那就很方便,而且不怕时间不准了。
我们先来看一个提供网络时间的网站,在浏览器输入“http://quan.suning.com/getSysTime.do”,网页上回出现一个日期和时间,这个是苏宁网站提供的网络授时。

现在我们就来利用这个网页提供的网络时间,让自己的开发板也能自动调整时间。
准备器材:一块WeMos D1的WiFi模块,一块I2C接口的1602液晶屏。
准备软件:Arduino IDE

这个模块就是WeMos D1模块,里面有一个esp8266的WiFi模块,而且和Arduino兼容,可以用Arduino那样编程控制,有Arduino那样的端口控制。
一. 编写程序,获取网络时间
我们要用Arduino IDE来编写ESP8266程序,就要先搭建ESP8266的编程环境,网上这些资料很多,我就不多说了,直接上程序源码吧:

#include <ESP8266WiFi.h>#include <ESP8266HTTPClient.h>//在这里输入你家的WiFi名字和密码
const char* ssid     = "wifissid"; const char* password = "wifipsw";   HTTPClient http;String GetUrl;String response;void setup() {// 连接到你家的WiFidelay(3000);Serial.begin(115200);WiFi.mode(WIFI_STA);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");Serial.println("IP address: ");Serial.println(WiFi.localIP());// 连接苏宁网站的授时网页GetUrl = "http://quan.suning.com/getSysTime.do";http.setTimeout(5000);http.begin(GetUrl);}void loop() {// 从网站获得网页内容int httpCode = http.GET();if (httpCode > 0) {Serial.printf("[HTTP] GET... code: %d\n", httpCode);if (httpCode == HTTP_CODE_OK) {//读取响应内容response = http.getString();Serial.println(response);}} else {Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());}http.end();delay(3000);}

在Arduino IDE中编译程序,并把程序烧写到WeMos开发板中,就可以在串口中看到和网页内容一样的日期和时间信息了。

二. 1602液晶屏显示
我们选择的1602是带I2C接口的,也就是普通的1602下面插上一块转接板,然后用四条线连接开发板。
VCC和GND连接开发板上面的5V电源,SCL连接D3,SDK连接D4。
接下来我们重新修改上面的程序,加入1602的显示控制。

#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>const char* ssid     = "ChinaNet-xxVP";
const char* password = "123456789";   HTTPClient http;
LiquidCrystal_I2C lcd(0x20, 16, 2);void setup() {// put your setup code here, to run once:delay(3000);lcd.begin();lcd.backlight();lcd.setCursor(0, 0);lcd.print("load time");Serial.begin(115200);WiFi.mode(WIFI_STA);WiFi.begin(ssid, password);while (WiFi.status() != WL_CONNECTED) {delay(500);Serial.print(".");}Serial.println("");Serial.println("WiFi connected");Serial.println("IP address: ");Serial.println(WiFi.localIP());String GetUrl = "http://quan.suning.com/getSysTime.do";http.setTimeout(5000);http.begin(GetUrl);}void loop() {int httpCode = http.GET();if (httpCode > 0) {Serial.printf("[HTTP] GET... code: %d\n", httpCode);if (httpCode == HTTP_CODE_OK) {//读取响应内容String response = http.getString();Serial.println(response);//在1602上面显示日期和时间lcd.setCursor(0, 0);lcd.print(response.substring(13, 23));lcd.setCursor(0, 1);lcd.print(response.substring(24, 32));}} else {Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());}http.end();delay(3000);
}

esp8266获取网络时间相关推荐

  1. ESP8266+STM32获取网络时间、OLED显示时间图片视频。

    学习过程不易,发文共享以下学习过程~ 先说说我的设计内容的组成: 目录 学习过程不易,发文共享以下学习过程~ 1. STM32控制ESP8266获取网络时间 第一步:电脑控制ESP8266获取时间数据 ...

  2. 【STM32训练—WiFi模块】第一篇、STM32驱动ESP8266WiFi模块获取网络时间

    目录 第一部分.写在前面 1.硬件准备 2.相关的AT指令 3.参考博客 第二部分.电脑串口助手调试ESP8266模块获取网络时间 1.ESP8266获取时间的流程 2.具体实现步骤 第三部分.STM ...

  3. esp8266 at接收数据中断时间_利用ESP8266获取网络同步时间(北京时间)

    本文需要读者有一点ESP8266的基础知识,比如ESP8266的模式设置,AP连接,联网. 1. 提供网络时间的网站 要想获取网络时间首先要有提供网络时间的网站,免费提供网络时间的网站有很多, 这里以 ...

  4. stm32 + ESP8266 wifi获取网络时间和天气 stm32天气预报

    大家遇到什么什么题,可以私聊我. 近期由于某些原因,玩了一下stm32+WiFi获取网络天气和网络时间.之前一直觉得这个东西会有点难度,其实,做完了才发现,其实那只是想象中的难而已.现在,将这几天的成 ...

  5. Arduino ESP32 获取网络时间并同步本地RTC时钟

    Arduino ESP32 获取网络时间并同步本地RTC时钟 相关篇<Arduino ESP32 最简单直接获取网络时间方法> 在 ArduinoESP32核心支持库当中已经包含相关的获取 ...

  6. 51单片机利用8266获取网络时间

    51单片机利用8266获取网络时间 我现在是成都一所不出名的二本院校大三学生,第一次来到CSDN,趁有时间,把我之前做的项目,其中一个模块拿出来和大家分享,我也是小白,希望提出宝贵意见.OK,废话不多 ...

  7. ESP8266获取网络时钟、天气

    硬件平台 正点原子ESP8266 前提 烧录到ESP8266的固件版本不要太老了,用比较新的(具体界限不清楚) 以安信可官网提供的AT固件举例,第5个不支持获取网络时间(AT指令不支持),我用的是第4 ...

  8. esp32获取网络时间和天气

    @[esp32获取网络时间和天气] esp32获取网络时间和天气 目录 一.库的获取 二.esp32连接wifi 三.oled显示 四.汉字或图片取模放在oled中显示 五.esp32获取网络时间 六 ...

  9. ESP8266-----SNTP获取网络时间

    目录 前言 user_init IP定时的回调函数 初始化SNTP SNTP定时回调函数 前言 介绍了8266如何获取网络时间 user_init 首先将8266设置为sta模式 void ICACH ...

最新文章

  1. php bdecode,PHP base64_encode和base64_decode 编码/解码url
  2. 【数据挖掘】数据挖掘总结 ( K-Means 聚类算法 | 二维数据的 K-Means 聚类 ) ★
  3. 自走棋电脑版_巨鸟公布自走棋正版自研手游:龙渊发行
  4. asp:DropDownList用法
  5. Spring Boot学习笔记(1)
  6. 高等数学下-赵立军-北京大学出版社-题解-练习10.5
  7. 华为Mate 30系列发布会定档:年度机皇 天生优秀!
  8. 【转载】计算几何题目集锦
  9. Python机器学习常用模块
  10. win7修复office图标显示不正确
  11. db2dual_DB2中类似于ORACLE中的DUAL表的表
  12. Flutter从入门到能寄几玩儿
  13. php 字符串转 buffer,ArrayBuffer与字符串的互相转换
  14. WinSetupFromUSB制作多系统U盘引导启动
  15. 点击button没有反应
  16. 欧拉筛(线性筛)超级详解 - Python3实现
  17. 51单片机知识点汇总
  18. [C语言]口令比较填空:阅读程序,按要求在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 下面程序比较用户键盘输入的口令userInput与内设的口令password是否相同。若相同,
  19. Win7下如何在windows资源管理器中打开FTP
  20. 小白搭建个人网站最详细的全过程

热门文章

  1. 响应式布局 meta详解
  2. 看到这些让员工无处遁形专利,我麻了
  3. 【MindInsight】在win下安装MindInsight遇到“ No module named apos;fcntlapos;“问题
  4. 马尔科夫预测MATLAB
  5. KNN+Dense SIFT+手势识别
  6. 最近看中的几款Limitless的家具
  7. 把大脑从衰老的身体里分离出来?“长寿科技”让人类活200年不再遥远
  8. salt-stack部署
  9. java 与数据库连接失败_java链接不上数据库,怎么解决!
  10. Docker教程01