Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<WiFi.h>
- #include<PubSubClient.h>
- #include <Ethernet.h>
- #include <SPI.h>
- #include "DHT.h"
- #define dhtPin 27 //讀取DHT11 Data
- #define dhtType DHT11 //選用DHT11
- DHT dht(dhtPin, dhtType); // Initialize DHT sensor
- const char*ssid = "e710-2";
- const char*password = "e710e710";
- const char*mqttServer = "broker.mqtt-dashboard.com";
- const int mqttPort = 1883;
- const char* mqttUserName = ""; // 使用者名稱,隨意設定。
- const char* mqttPwd = ""; // MQTT密碼
- const char* clientID = "";
- const char topic[] = "esp32/test456";
- String msgStr = "";
- char json[25];
- unsigned long atime = millis();
- unsigned long btime;
- WiFiClient espClient;
- PubSubClient client(espClient);
- void setup_wifi() {
- Serial.print("Connecting to ");
- Serial.println(ssid);
- WiFi.begin(ssid, password);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.println("Connecting...");
- }
- Serial.println("");
- Serial.println("WiFi connected with IP address: ");
- Serial.println(WiFi.localIP());
- }
- void reconnect() {
- while (!client.connected()) {
- if (client.connect(clientID, mqttUserName, mqttPwd)) {
- Serial.println("MQTT connected");
- } else {
- Serial.print("failed, rc=");
- Serial.print(client.state());
- Serial.println(" try again in 5 seconds");
- delay(5000); // 等5秒之後再重試
- }
- }
- }
- void setup() {
- Serial.begin(115200);
- setup_wifi();
- client.setServer(mqttServer, mqttPort);
- reconnect();
- client.subscribe("esp32/test456");
- dht.begin();
- }
- void loop() {
- if (!client.connected()) {
- reconnect();
- }
- client.loop();
- btime = millis();
- if ((btime - atime) >= 5000) {
- float h = dht.readHumidity();//讀取濕度
- float t = dht.readTemperature();//讀取攝氏溫度
- float f = dht.readTemperature(true);//讀取華氏溫度
- if (isnan(h) || isnan(t) || isnan(f)) {
- Serial.println("無法從DHT傳感器讀取!");
- return;
- }
- Serial.print("濕度: ");
- Serial.print(h);
- Serial.print("%\t");
- Serial.print("攝氏溫度: ");
- Serial.print(t);
- Serial.print("*C\t");
- Serial.print("華氏溫度: ");
- Serial.print(f);
- Serial.print("*F\n");
- msgStr = msgStr + "temp: " + t + " humid: " + h +"%";
- msgStr.toCharArray(json, 25);
- client.publish(topic, json);
- msgStr = "";
- atime = btime;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement