Advertisement
Guest User

Untitled

a guest
Jan 9th, 2018
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. #include <WiFi.h>
  2. #include <PubSubClient.h>
  3. #include "DHT.h"
  4.  
  5. /*****************************************************
  6. * LED settings
  7. ******************************************************/
  8. int LED_BUILTIN = 2;
  9.  
  10. /*****************************************************
  11. * MQTT settings
  12. * WIFI settings
  13. *****************************************************/
  14. const char* ssid = "wifi";
  15. const char* password = "myPass";
  16. const char* mqttServer = "192.168.25.20";
  17. const int mqttPort = 1883;
  18. const char* mqttUser = "yourMQTTuser";
  19. const char* mqttPassword = "yourMQTTpassword";
  20.  
  21.  
  22. WiFiClient espClient;
  23. PubSubClient client(espClient);
  24.  
  25. /*****************************************************
  26. * ESP32 DHT Reading
  27. * DHT Input: ==> GPIO23.
  28. *****************************************************/
  29.  
  30. #define DHTPIN 33
  31. #define DHTTYPE DHT22
  32. DHT dht(DHTPIN, DHTTYPE);
  33. float localHum = 0;
  34. float localTemp = 0;
  35. char temp[20];
  36. char hum[20];
  37.  
  38.  
  39. /*****************************************************
  40. * Global settings
  41. *
  42. *****************************************************/
  43. int LoopCounter = 0;
  44.  
  45. /***************************************************
  46. * Get indoor Temp/Hum data
  47. ****************************************************/
  48. void getDHT()
  49. {
  50. float tempIni = localTemp;
  51. float humIni = localHum;
  52. localTemp = dht.readTemperature();
  53. localHum = dht.readHumidity();
  54. if (isnan(localHum) || isnan(localTemp)) // Check if any reads failed and exit early (to try again).
  55. {
  56. localTemp = tempIni;
  57. localHum = humIni;
  58. return;
  59. }
  60. }
  61.  
  62. void callback(char* topic, byte* payload, unsigned int length)
  63. {
  64. Serial.print("Message arrived in topic: ");
  65. Serial.println(topic);
  66. char msg[16];
  67. Serial.print("Message:");
  68. for (int i = 0; i < length; i++)
  69. {
  70. Serial.print((char)payload[i]);
  71. if ((char)payload[i] != ',')
  72. {
  73. msg[i]=(char)payload[i];
  74. }
  75. else
  76. {
  77. break;
  78. }
  79. }
  80. Serial.println();
  81. Serial.println("-----------------------");
  82. if ((char)payload[length-1] == '1')
  83. {
  84. digitalWrite(LED_BUILTIN, HIGH);
  85. }
  86. else
  87. {
  88. digitalWrite(LED_BUILTIN, LOW);
  89. }
  90. /*
  91. * TODO SOlve this!!
  92. * char ok_msg[]="ok=";
  93. strcat(ok_msg,msg);
  94. Serial.print("Lets reply back > ");
  95. Serial.println(ok_msg);
  96. client.publish("v1/username/things/clientid/reponse/",ok_msg);
  97. */
  98. }
  99.  
  100. void setup()
  101. {
  102. pinMode(LED_BUILTIN, OUTPUT);
  103. Serial.begin(115200);
  104. WiFi.begin(ssid, password);
  105. while (WiFi.status() != WL_CONNECTED)
  106. {
  107. delay(500);
  108. Serial.println("Connecting to WiFi..");
  109. }
  110. Serial.println("Connected to the WiFi network");
  111.  
  112. client.setServer(mqttServer, mqttPort);
  113. client.setCallback(callback);
  114.  
  115. while (!client.connected())
  116. {
  117. Serial.println("Connecting to MQTT...");
  118. if (client.connect("ESP32Client", mqttUser, mqttPassword )) {
  119. Serial.println("connected to MQTT");
  120. }
  121. else
  122. {
  123. Serial.print("failed with state ");
  124. Serial.print(client.state());
  125. delay(2000);
  126. }
  127. }
  128.  
  129. client.subscribe("v1/username/things/clientid/things/64a2f670-063e-11e7-a905-f3d1e6fb8dd5/cmd/152");
  130.  
  131. }
  132.  
  133. void loop()
  134. {
  135. digitalWrite(LED_BUILTIN, LOW);
  136. LoopCounter++;
  137. client.loop();
  138. getDHT();
  139. if (LoopCounter > 10)
  140. {
  141. digitalWrite(LED_BUILTIN, HIGH);
  142. Serial.println("Publishing to J");
  143. sprintf(hum,"analog_actuator=%g",localHum);
  144. Serial.println(hum);
  145. client.publish("v1/username/things/clientid/data/151",hum);
  146. sprintf(temp,"analog_actuator=%g",localTemp);
  147. delay(1000);
  148. Serial.println(temp);
  149. client.publish("v1/username/things/clientid/64a2f670-063e-11e7-a905-f3d1e6fb8dd5/data/150",temp);
  150. LoopCounter = 0;
  151. }
  152. delay(2000);
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement