大神帮我看看总是重启和在blinker上控制延时谢谢啦-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2284|回复: 0

[未解决] 大神帮我看看总是重启和在blinker上控制延时谢谢啦

[复制链接]
发表于 2020-12-15 19:27 | 显示全部楼层 |阅读模式
esp8266+tft屏幕+thd11+led灯  谢谢啦  我是零基础刚开始学  


#define BLINKER_WIFI //定义wifi模块
#define DHTPIN 12      //定义DHT11模块连接管脚io2
#define TFT_CS     D1
#define TFT_RST    D2  
#define TFT_DC     D3
#define TFT_SCLK 13  
#define TFT_MOSI 11

#define DHTTYPE DHT11   // 使用温度湿度模块的类型为DHT11

#include <Blinker.h>    //包含Blinker头文件
#include <DHT.h>        //包含DHT头文件

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS,  TFT_DC, TFT_RST);

char auth[] = "df068e9c181a";  //设备key
char ssid[] = "b20e";          //wifi 名称
char pswd[] = "334452100";    //wifi 密码


BlinkerNumber HUMI("humi");    //定义湿度数据键名
BlinkerNumber TEMP("temp");    //定义温度数据键名


BlinkerButton Button1("deng");

void button1_callback(const String & state) {
   BLINKER_LOG("get button state: ", state);
   digitalWrite(3, !digitalRead(3));
   Blinker.vibrate();
}                                  // 按下按键即会执行该函数


DHT dht(DHTPIN, DHTTYPE);  //生成DHT对象,参数是引脚和DHT的类型

float humi_read = 0, temp_read = 0;  //定义浮点型全局变量 储存传感器读取的温湿度数据


void heartbeat()
{
    HUMI.print(humi_read);        //给blinkerapp回传湿度数据
    TEMP.print(temp_read);        //给blinkerapp回传温度数据
}


void dataStorage()   //云存储温湿度数据函数
{
    Blinker.dataStorage("temp", temp_read);   //存储温度
    Blinker.dataStorage("humi", humi_read);   //存储湿度

}
void rotateText() {
    for (uint8_t i=0; i<4; i++) {
    tft.fillScreen(ST7735_BLACK);
    tft.setCursor(0, 30);

    tft.setTextColor(ST7735_RED);
    tft.setTextSize(2);
    tft.println("temp");

    tft.setTextColor(ST7735_YELLOW);
    tft.setTextSize(4.2);
    tft.println((float)dht.readTemperature());

    tft.setTextColor(ST7735_GREEN);
    tft.setTextSize(2);
    tft.println("humi");

    tft.setTextColor(ST7735_YELLOW);
    tft.setTextSize(4.2);
    tft.print((float)dht.readHumidity());

    tft.setRotation(+3);

    delay(3000);
  }
}


void setup()
{
    Button1.attach(button1_callback);
    Serial.begin(115200);//初始化端口
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();

    #if defined(BLINKER_PRINT)
        BLINKER_DEBUG.stream(BLINKER_PRINT);
    #endif

    pinMode(3, OUTPUT);
    digitalWrite(3, HIGH);


    Blinker.begin(auth, ssid, pswd);    // 初始化blinker
    Blinker.attachHeartbeat(heartbeat);  //将传感器获取的数据传给blinker app上
    Blinker.attachDataStorage(dataStorage);//数据存储?

    dht.begin();                      //初始化DHT传感器

    tft.initR(INITR_144GREENTAB);  
    tft.setTextWrap(false);
    tft.fillScreen(ST7735_BLACK);

}


void loop()                              //把主代码放在这里,重复运行:
{  
    Blinker.run();           //运行Blinker  

    float h = dht.readHumidity();//读取DHT11传感器的湿度 并赋值给h
    float t = dht.readTemperature();//读取传感器的温度   并赋值给t

    if (isnan(h) || isnan(t))//判断是否成功读取到温湿度数据
    {
        BLINKER_LOG("Failed to read from DHT sensor!");//读取温湿度失败!
    }
    else//成功读取到数据
    {   

        BLINKER_LOG("Humidity: ", h, " %");
        BLINKER_LOG("Temperature: ", t, " *C");

        humi_read = h;//将读取到的湿度赋值给全局变量humi_read
        temp_read = t;//将读取到的温度赋值给全局变量temp_read
    }
        Blinker.delay(2000);
        rotateText();

    }

盒子.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-29 17:44 , Processed in 0.104548 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表