科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

Raspberry Pi, Arduino, 不管项目简单还是复杂,动手实现它就是成功!
shi370540
帖子: 9
注册: 周一 6月 18, 2018 5:04 pm

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站 by 科技小制作

帖子shi370540 » 周二 6月 26, 2018 2:42 pm

重装ardunio 和 库
头像
lgn
Site Admin
帖子: 15
注册: 周二 3月 10, 2015 12:41 am
地址: Shenzhen

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站 by 科技小制作

帖子lgn » 周二 6月 26, 2018 11:02 pm

shi370540 写了:重装ardunio 和 库

知道了 :!:
世界上只有10种人,一种懂二进制的,另外是不懂的 :geek:
sdk110
帖子: 4
注册: 周四 12月 06, 2018 6:11 pm

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

帖子sdk110 » 周五 12月 21, 2018 3:16 pm

意思是重新刷一遍么? 楼主
头像
max
帖子: 113
注册: 周六 3月 14, 2015 10:57 am

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

帖子max » 周六 12月 22, 2018 1:55 pm

sdk110 写了:意思是重新刷一遍么? 楼主

shi370540 的意思是PC上重装了Arduino IDE和这个项目需要的支持库。不是重刷。

如果shi370540能及时看到,等待他的确认~
卤蛋不要懒惰啊
帖子: 1
注册: 周二 1月 08, 2019 10:15 am

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

帖子卤蛋不要懒惰啊 » 周二 1月 08, 2019 11:46 am

我想问一下,我用8266连接mqtt服务器的时候为什么一直是reconnect状态或者连接失败的状态啊
头像
max
帖子: 113
注册: 周六 3月 14, 2015 10:57 am

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

帖子max » 周三 1月 09, 2019 1:24 pm

卤蛋不要懒惰啊 写了:我想问一下,我用8266连接mqtt服务器的时候为什么一直是reconnect状态或者连接失败的状态啊

请说明一下具体的使用场景和配置,贴出相关代码和输出内容,不然没法判断。
如果代码中有密码等个人信息,使用xxx或者无关字符替换后发布。
sdk110
帖子: 4
注册: 周四 12月 06, 2018 6:11 pm

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

帖子sdk110 » 周一 3月 18, 2019 9:32 am

以下是发送给您的内容
~~~~~~~~~~~~~~~~~~~~~~~~~~~

我也遇到了你的不显示数据的问题,基本都是男 满篇幅; 偶尔重新连接电源有一下、两下有时候数据但是很奇怪 ﹣12度 湿度160
……图片

代码:
#include <ESP8266WiFi.h>

#include "DHT.h"
#include <PubSubClient.h>

#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

const char* ssid = "sdk110";
const char* password = "sdk1105187";
const char* mqtt_server = "192.168.1.105";

WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];

float h; // humidity
float t; // temperature

void setup_wifi() {
delay(10);
// We start by connecting to a WiFi network
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}

void callback(char* topic, byte* payload, unsigned int length) {
Serial.print("Message arrived [");
Serial.print(topic);
Serial.print("] ");
for (int i = 0; i < length; i++) {
Serial.print((char)payload[i]);
}
Serial.println();

// Switch on the LED if an 1 was received as first character
if ((char)payload[0] == '1') {
digitalWrite(BUILTIN_LED, LOW); // Turn the LED on (Note that LOW is the voltage level
// but actually the LED is on; this is because
// it is acive low on the ESP-01)
} else {
digitalWrite(BUILTIN_LED, HIGH); // Turn the LED off by making the voltage HIGH
}

}

void reconnect() {
// Loop until we're reconnected
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
// Attempt to connect
if (client.connect("ESP8266Client")) {
Serial.println("connected");
// Once connected, publish an announcement...
client.publish("weather/temp", "init...");
client.publish("weather/humidity", "init...");
// ... and resubscribe
client.subscribe("weather/control");
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
// Wait 5 seconds before retrying
delay(5000);
}
}
}

void setup(void){
pinMode(BUILTIN_LED, OUTPUT); // Initialize the BUILTIN_LED pin as an output
Serial.begin(115200);
setup_wifi();
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
delay(2000); // delay for DHT11 init.
}

void loop(void){
if (!client.connected()) {
reconnect();
}
client.loop();

long now = millis();
if (now - lastMsg > 30000) {
lastMsg = now;
gettemp();
Serial.print("Publish message: ");
Serial.println(t);
char tmp[5];
dtostrf(t,4,3,tmp);
client.publish("weather/temp", tmp);
Serial.print("Publish message: ");
Serial.println(h);
dtostrf(h,4,3,tmp);
client.publish("weather/humidity", tmp);
}
}

void gettemp() {
h = dht.readHumidity();
t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
}
头像
max
帖子: 113
注册: 周六 3月 14, 2015 10:57 am

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

帖子max » 周一 3月 18, 2019 11:23 am

图片是无效引用,请更换图片空间或者使用“附件”形式上传到论坛上然后插入到帖子中。不然看不到。。。。

另外,贴出错误信息或者是运行日志的相关信息才能判断可能的问题!代码部分可以使用文本编辑器顶部第五个按钮(显示代码)来格式化。
sdk110
帖子: 4
注册: 周四 12月 06, 2018 6:11 pm

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

帖子sdk110 » 周三 3月 20, 2019 12:07 pm

max 写了:图片是无效引用,请更换图片空间或者使用“附件”形式上传到论坛上然后插入到帖子中。不然看不到。。。。

另外,贴出错误信息或者是运行日志的相关信息才能判断可能的问题!代码部分可以使用文本编辑器顶部第五个按钮(显示代码)来格式化。




Node red 的图片
QQ图片20190318090543.png
您没有权限查看这个主题的附件。
头像
max
帖子: 113
注册: 周六 3月 14, 2015 10:57 am

Re: 科技小制作 - 使用Node-RED + DHT11 + ESP8266实现温湿度气象站

帖子max » 周四 3月 21, 2019 12:10 am

[quote="sdk110"][/quote]
看截图仿佛node-red运行没什么问题,但输出是不正常的。检查过esp的输出没有?

回到 “天工开物”

在线用户

用户浏览此论坛: frandek 和 0 访客