代码拉取完成,页面将自动刷新
关注微信公众号“修电脑的杂货店”
#include <PubSubClient.h>
#include <stdlib.h>
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
#include <Ticker.h>
#define SENSOR_PIN 12
#define WIFI_SSID "DONGEAST"
#define WIFI_PASSWD "123456789"
#define MQTT_SERVER "183.230.40.39"
#define MQTT_PORT 6002
#define MQTT_USRNAME "422718"
#define MQTT_PASSWD "6OH5tfrDTZ5BiW20KKyP3P=Nklo="
#define CLIENT_ID "712824243"
#define ALINK_TOPIC_PROP_POST "$dp"
unsigned char TEM_STATE = 0;
unsigned char HUM_STATE = 0;
uint32_t x=0;
Ticker flipper;
WiFiClient espClient;
PubSubClient client(espClient);
//温度传感器定义
#include <SimpleDHT.h>
int pinDHT11 = 2; //GPIO2
SimpleDHT11 dht11(pinDHT11);
void mqttCheckConnect()
{
while (!client.connected())
{
Serial.println("Connecting to MQTT Server ...");
if (client.connect(CLIENT_ID,MQTT_USRNAME,MQTT_PASSWD))
{
Serial.println("MQTT Connected!");
Serial.println("subscribe done");
}
else
{
Serial.print("MQTT Connect err:");
Serial.println(client.state());
delay(5000);
}
}
}
void flip() {
if(!client.connected())
{
return;
}
char json[256];
char* jsonLedStr = "{\"datastreams\":[{\"id\":\"TemData\",\"datapoints\":[{\"value\":\"{\\\"type\\\":\\\"Tem\\\",\\\"value\\\":%d}\"}]}]}";
sprintf(json, jsonLedStr, TEM_STATE);
unsigned short outputStrLen = strlen(json);
unsigned char t_payload[outputStrLen + 3];
t_payload[0] = '\x01';
t_payload[1] = outputStrLen >> 8;
t_payload[2] = outputStrLen;
memcpy(t_payload + 3, json, outputStrLen);
Serial.println(json);
client.publish(ALINK_TOPIC_PROP_POST,t_payload,outputStrLen + 3);
char jsonone[256];
char* jsonLedStrone = "{\"datastreams\":[{\"id\":\"HumData\",\"datapoints\":[{\"value\":\"{\\\"type\\\":\\\"Hum\\\",\\\"value\\\":%d}\"}]}]}";
sprintf(jsonone, jsonLedStrone, HUM_STATE);
unsigned short outputStrLenone = strlen(jsonone);
unsigned char t_payloadone[outputStrLenone + 3];
t_payloadone[0] = '\x01';
t_payloadone[1] = outputStrLenone >> 8;
t_payloadone[2] = outputStrLenone;
memcpy(t_payloadone + 3, jsonone, outputStrLenone);
Serial.println(jsonone);
client.publish(ALINK_TOPIC_PROP_POST,t_payloadone,outputStrLenone + 3);
}
void setup() {
WiFi.mode(WIFI_STA);
WiFi.begin(WIFI_SSID, WIFI_PASSWD);
Serial.begin(115200);
ESP.wdtEnable(WDTO_8S);
pinMode(LED_BUILTIN, OUTPUT);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println(".");
}
Serial.println("IP address: ");
Serial.println(WiFi.localIP());/*WiFi初始化*/
client.setServer(MQTT_SERVER,MQTT_PORT); /*连接MQTT服务器*/
flipper.attach(5, flip);
}
void loop() {
ESP.wdtFeed();
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
return;
}
delay(1500);
TEM_STATE = temperature;
HUM_STATE = humidity;
mqttCheckConnect();
client.loop();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
只需要将温湿度传感器的数据改为自己想上传的数据即可
登录 后才可以发表评论