硬件主控为ESP8266
温度传感器为DS19B20
显示为8段数码管
涉及到关键库为自动配网WiFiManager、获取SNTP服务器时间校准ESPPerfectTime、单总线读写温度DallasTemperature
//#include <sntp_pt.h>
#include <WiFiManager.h> //
#include <ArduinoOTA.h>
#include <ESPPerfectTime.h>
#include <TZ.h>
#include <DallasTemperature.h>
//闪烁时间间隔(秒)Aa123456Hi pqaguest
unsigned long t,tSave,tSave0,tSave1,tSave2;
int hour=9,minute=0,second=0;
//WiFiUDP ntpUDP;
//初始化为8小时的时间偏移60*60*8=28800 europe.pool.ntp.org
//NTPClient timeClient(ntpUDP,"europe.pool.ntp.org", 28800, 60000);
//const char *ntpServer = "ntp.nict.jp";//日本ntp服务器,获取时间慢
const char *ntpServer = "europe.pool.ntp.org";
void printTime(struct tm *tm, suseconds_t usec) {
Serial.printf("%04d/%02d/%02d %02d:%02d:%02d.%06ld\n",
tm->tm_year + 1900,
tm->tm_mon + 1,
tm->tm_mday,
tm->tm_hour,
tm->tm_min,
tm->tm_sec,
usec);
}
/******************** 本地常量声明 **************************************************/
// 0 1 2 3 4 5 6 7 8 9 A B C D E F 消隐 0x11 0x12 t o C 0x16
unsigned char Display_Code[]={
0xA0,0xFC,0x62,0x68,0x3C,0x29,0x21,0xEC,0x20,0x28,0x24,0x31,0xA3,0x70,0x23,0x27,0xFF,0X7F,0XFF,0x33,0x2E,0x83,0x40,0x20}; //段码
/******************** 本地变量声明 ******************************************/
unsigned char COM_Buff[]={
0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00};
/***************************管脚定义**************************************************/
int P_HC595_SER =