arduino for esp8266-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3198|回复: 7

[已解决] arduino for esp8266

[复制链接]
发表于 2020-9-28 15:29 | 显示全部楼层 |阅读模式
本帖最后由 鲁大师 于 2020-9-29 09:08 编辑

大佬们帮我看看这是什么问题,原来从来都能用,现在一编译就出现这个错误

把代码也贴到这里
#include <ESP8266WiFi.h>

#include <PubSubClient.h>

#include "DHT.h"

#define DHTPIN D3     // 我们连接的是什么密码
#define wifi_ssid "xyj"
#define wifi_password "01234567890"

#define mqtt_server "broker.emqx.io"  // MQTT Cloud address
//#define humidity_topic "humidity"
#define temperature_topic "temperature"

#define DHTTYPE DHT11   // DHT 11

WiFiClient espClient;
PubSubClient client(espClient);
DHT dht(DHTPIN, DHTTYPE);

void setup() {
    Serial.begin(9600);
    setup_wifi();
    client.setServer(mqtt_server, 1883);
    dht.begin();
}

void setup_wifi() {
    delay(10);
    WiFi.begin(wifi_ssid, wifi_password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
    }
}

void reconnect() {
    //循环,直到我们重新连接
    while (!client.connected()) {
        Serial.print("Attempting MQTT connection...");
        if (client.connect("nodeMcuDHT11")) {
            Serial.println("connected");
        } else {
            Serial.print("failed, rc=");
            Serial.print(client.state());
            Serial.println(" try again in 5 seconds");
            delay(50);
        }
    }
}

bool checkBound(float newValue, float prevValue, float maxDiff) {
    return newValue < prevValue - maxDiff || newValue > prevValue + maxDiff;
}

long lastMsg = 0;
float temp = 0.0;
float hum = 0.0;
float diff = 1.0;

void loop() {
   float a ; //定义字符数组,接受来自上位机的数据
  while (!Serial.available()); //等待数据传送过来,若没有数据,一直等待,即执行到本行不向下执行
  while (Serial.available()) //当发现缓存中有数据时,将数据送至字符数组a中
  {
    a = Serial.read();
    delay(3);
  }
   Serial.println(a);
    if (!client.connected()) {
        reconnect();
    }
    client.loop();

    long now = millis();
    if (now - lastMsg > 300) {
        //在测量之间等待几秒钟
        lastMsg = now;

       float newTemp = dht.readTemperature();
//     float newHum = dht.readHumidity();
        if (checkBound(newTemp, temp, diff)) {
            temp = a;
            Serial.print("New temperature:");
            Serial.println(String(temp).c_str());
            client.publish(temperature_topic, String(temp).c_str(), true);
        }

//        if (checkBound(newHum, hum, diff)) {
//            hum = newHum;
//            Serial.print("New humidity:");
//            Serial.println(String(hum).c_str());
//            client.publish(humidity_topic, String(hum).c_str(), true);
//        }
   }
}

QQ图片20200928152843.png
发表于 2020-9-28 16:20 | 显示全部楼层
库文件没有?
发表于 2020-9-28 19:54 | 显示全部楼层
百度云下载
1,esp8266com.rar
2,Arduino15-2.3.0.zip
解压分别得到目录:
esp8266com
Arduino15
 楼主| 发表于 2020-9-28 21:41 | 显示全部楼层

本来没有,后来装上两个zip的库,前面的头函数引用不报错了,但是编译一直出这个问题
 楼主| 发表于 2020-9-28 21:43 | 显示全部楼层
gz_ant 发表于 2020-9-28 19:54
百度云下载
1,esp8266com.rar
2,Arduino15-2.3.0.zip

老哥,求个下载链接
 楼主| 发表于 2020-9-28 21:47 | 显示全部楼层
gz_ant 发表于 2020-9-28 19:54
百度云下载
1,esp8266com.rar
2,Arduino15-2.3.0.zip

还有,老哥,这俩东西下完了怎么用呢
发表于 2020-10-7 17:54 | 显示全部楼层
解压分别得到目录:
esp8266com
Arduino15
复制
复制目录esp8266com到\Program Files (x86)\Arduino\hardware
复制目录Arduino15到
C:\Users\ant\AppData\Local
重新启动Arduino即可
发表于 2020-10-7 18:46 | 显示全部楼层
没提示的这个库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-29 22:42 , Processed in 0.089270 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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