我今天無意中才發現你的貼子,我已給論壇發帖建議改進發帖提醒功能。非常包歉下面奉上該程序:
#include <dht11.h>
#include <Wire.h>
#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <U8g2lib.h>
#include <EEPROM.h>
U8G2_SSD1306_128X32_UNIVISION_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 3, /* data=*/ 1, /* reset=*/ U8X8_PIN_NONE);
dht11 DHT11;
#define DHT11PIN 2
const char *ssid = "******" ; WIFI名稱
const char *password = "******" ; WIFI密碼
int e=1;
int f=2;
int g=0;
int h=0;
int i=0;
int j=0;
int k=0;
int x=0;
int y=0;
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP,"ntp1.aliyun.com",60*60*8,30*60*1000);
void setup() {
Wire.begin(1,3);
u8g2.begin();
Serial.begin(115200);
WiFi.begin(ssid, password);
pinMode(0, OUTPUT);
pinMode(2, INPUT_PULLUP);
pinMode(1, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
digitalWrite(0,LOW);
while ( WiFi.status() != WL_CONNECTED ) {
delay ( 1000 );
}
timeClient.begin();
}
void loop() {
if((y==0)&&(i==0)) {
EEPROM.begin(512);
e=EEPROM.read(500);
f=EEPROM.read(502);
g=EEPROM.read(503);
h=EEPROM.read(504);
}
y=1;
int chk = DHT11.read(DHT11PIN);
timeClient.update();
String comdata=timeClient.getFormattedTime();
String hh=comdata.substring(0,1);
String hl=comdata.substring(1,2);
String mh=comdata.substring(3,4);
String ml=comdata.substring(4,5);
int a=hh.toInt();
int b=hl.toInt();
int c=mh.toInt();
int d=ml.toInt();
if((e==a)&&(f==b)&&(g==c)&&(h==d)&&(i== 5))
{ digitalWrite(0,HIGH);
j=1;
}
if(j==1) digitalWrite(0,!digitalRead(0));
k++;
if(k==6) k=0;
if(digitalRead(1)== LOW) i++;
if(i==6) i=0;
if(i==0) {
j=0;
x=0;
digitalWrite(0,LOW);
u8g2.setFont(u8g2_font_inr33_mr);
// u8g2.setFont(u8g2_font_logisoso34_tn);
if(k<4) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
if(a==0) u8g2.print(" ");
else u8g2.print(a);
u8g2.setCursor(25,31);
u8g2.print(b);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(c);
u8g2.setCursor(103,31);
u8g2.print(d);
u8g2.sendBuffer();
delay(500);
u8g2.clearBuffer();
u8g2.setCursor(0,31);
if(a==0) u8g2.print(" ");
else u8g2.print(a);
u8g2.setCursor(25,31);
u8g2.print(b);
u8g2.drawStr(54,26," ");
u8g2.setCursor(79,31);
u8g2.print(c);
u8g2.setCursor(103,31);
u8g2.print(d);
u8g2.sendBuffer();
delay(500);
}
if(k==4) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print((int)DHT11.temperature);
u8g2.drawStr(103,31,"C");
u8g2.sendBuffer();
delay(1000);
}
if(k==5) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print((int)DHT11.humidity);
u8g2.drawStr(103,31,"%");
u8g2.sendBuffer();
delay(1000);
}
}
if(i==1) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print(e);
u8g2.setCursor(25,31);
u8g2.print(f);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(g);
u8g2.setCursor(103,31);
u8g2.print(h);
u8g2.sendBuffer();
delay(500);
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print(" ");
u8g2.setCursor(25,31);
u8g2.print(f);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(g);
u8g2.setCursor(103,31);
u8g2.print(h);
u8g2.sendBuffer();
delay(500);
if(digitalRead(2)== LOW) e++;
if(e==3) e=0;
}
if(i==2) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print(e);
u8g2.setCursor(25,31);
u8g2.print(f);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(g);
u8g2.setCursor(103,31);
u8g2.print(h);
u8g2.sendBuffer();
delay(500);
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print(e);
u8g2.setCursor(25,31);
u8g2.print(" ");
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(g);
u8g2.setCursor(103,31);
u8g2.print(h);
u8g2.sendBuffer();
delay(500);
if(digitalRead(2)== LOW) f++;
if((e<2)&&(f==10)) f=0;
if((e==2)&&(f==4)) f=0;
}
if(i==3) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print(e);
u8g2.setCursor(25,31);
u8g2.print(f);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(g);
u8g2.setCursor(103,31);
u8g2.print(h);
u8g2.sendBuffer();
delay(500);
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print(e);
u8g2.setCursor(25,31);
u8g2.print(f);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(" ");
u8g2.setCursor(103,31);
u8g2.print(h);
u8g2.sendBuffer();
delay(500);
if(digitalRead(2)== LOW) g++;
if(g==6) g=0;
}
if(i==4) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print(e);
u8g2.setCursor(25,31);
u8g2.print(f);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(g);
u8g2.setCursor(103,31);
u8g2.print(h);
u8g2.sendBuffer();
delay(500);
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print(e);
u8g2.setCursor(25,31);
u8g2.print(f);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(g);
u8g2.setCursor(103,31);
u8g2.print(" ");
u8g2.sendBuffer();
delay(500);
if(digitalRead(2)== LOW) h++;
if(h==10) h=0;
}
if(i==5) {
if(x==0) {
EEPROM.write(500, e);
EEPROM.write(502, f);
EEPROM.write(503, g);
EEPROM.write(504, h);
EEPROM.commit();
delay(100);
}
x=1;
if(k<4) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
if(a==0) u8g2.print(" ");
else u8g2.print(a);
u8g2.setCursor(25,31);
u8g2.print(b);
u8g2.drawStr(54,26,":");
u8g2.setCursor(79,31);
u8g2.print(c);
u8g2.setCursor(103,31);
u8g2.print(d);
u8g2.sendBuffer();
delay(1000);
}
if(k==4) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print((int)DHT11.temperature);
u8g2.drawStr(103,31,"C");
u8g2.sendBuffer();
delay(1000);
}
if(k==5) {
u8g2.clearBuffer();
u8g2.setCursor(0,31);
u8g2.print((int)DHT11.humidity);
u8g2.drawStr(103,31,"%");
u8g2.sendBuffer();
delay(1000);
}
}
} |