借助arduino uno板,通过esp8266与LCD1602和Blynk服务器同步显示温湿度

#define BLYNK_PRINT Serial
#include <BlynkSimpleShieldEsp8266.h>
#include <ESP8266_Lib.h>
#include <TimeLib.h>
#include <LiquidCrystal.h>
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
#define ESP8266_BAUD 115200
BlynkTimer timer;
ESP8266 wifi(&Serial);

float t;
float h;
char auth[] = "0c9e07451226439cb4047f7d9bbdb30b"; 
char ssid[] = "kang";
char pass[] = "12345678";
LiquidCrystal mylcd(12,11,5,4,3,2);
void myTimerEvent() {
  t = dht.readTemperature();
  h = dht.readHumidity();


  mylcd.setCursor(0, 0);
  mylcd.print("TEMP(C):");
  mylcd.setCursor(0, 1);
  mylcd.print("HUMI(%):");
  mylcd.setCursor(12, 0);
  mylcd.setCursor(10,0);
  mylcd.print(t);
  mylcd.setCursor(10,1);
  mylcd.print(h);
  
  Blynk.virtualWrite(V0,h );
  Blynk.virtualWrite(V1,t );
   }
void led()
{
  if (t >= 25 || t <= 15) {
    digitalWrite(13,HIGH);
    delay(2000);
    digitalWrite(13,LOW);
  } //红灯亮起
  else if (h <= 35 || h >= 65) {
    digitalWrite(10,HIGH);
    delay(2000);
    digitalWrite(10,LOW);
  } //蓝灯亮起
  else if ((t < 25 && t > 15) && (h > 35 && h < 65)) {
    digitalWrite(9,HIGH);
    delay(2000);
    digitalWrite(9,LOW);
  }//绿灯亮起
  }
void setup()
{
 Serial.begin(9600);
 delay(10);
 mylcd.begin(16,2);
 dht.begin();
 Serial.begin(ESP8266_BAUD);
 delay(10);
 
 pinMode(8,OUTPUT);//DH11传感器
 pinMode(9,OUTPUT);//三个led灯
 pinMode(10,OUTPUT);
 pinMode(13,OUTPUT);

 Blynk.begin(auth, wifi, ssid, pass, "116.62.49.166",8080);
 timer.setInterval(1000L,myTimerEvent);
}
void loop()
{
 led();
 Blynk.run();
 timer.run();
} 

深坑:出了一个问题,要不就是1602显示,要不就是只能连接服务器。
解决办法:当esp8266连接服务器后,lcd1602才会显示温湿度值。
arduino 1.85配置好各类库的版本,链接:https://pan.baidu.com/s/15j8fhZ_MT4JJDsmxgecvbA
提取码:mj54

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值