Advertisement
safwan092

Untitled

Nov 22nd, 2023
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.37 KB | None | 0 0
  1. #include "DHT.h"
  2. #include <WiFi.h>
  3. #include "WiFiClientSecure.h"
  4. #include "Adafruit_MQTT.h"
  5. #include "Adafruit_MQTT_Client.h"
  6.  
  7. #define WLAN_SSID "network"
  8. #define WLAN_PASS "123456789"
  9. #define AIO_SERVER "io.adafruit.com"
  10. #define AIO_SERVERPORT 8883
  11. #define AIO_USERNAME "project23112023"
  12. #define AIO_KEY "aio_bcAI31EJW1gzplrK81PjzziryoSB"
  13.  
  14.  
  15. #define Sensor_1_Pin 22
  16. #define Sensor_2_Pin 23
  17. #define DHTTYPE DHT22
  18.  
  19. DHT dht1(Sensor_1_Pin, DHTTYPE);
  20. DHT dht2(Sensor_2_Pin, DHTTYPE);
  21.  
  22. WiFiClientSecure client;
  23. Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
  24. const char* adafruitio_root_ca = \
  25. "-----BEGIN CERTIFICATE-----\n"
  26. "MIIEjTCCA3WgAwIBAgIQDQd4KhM/xvmlcpbhMf/ReTANBgkqhkiG9w0BAQsFADBh\n"
  27. "MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
  28. "d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\n"
  29. "MjAeFw0xNzExMDIxMjIzMzdaFw0yNzExMDIxMjIzMzdaMGAxCzAJBgNVBAYTAlVT\n"
  30. "MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n"
  31. "b20xHzAdBgNVBAMTFkdlb1RydXN0IFRMUyBSU0EgQ0EgRzEwggEiMA0GCSqGSIb3\n"
  32. "DQEBAQUAA4IBDwAwggEKAoIBAQC+F+jsvikKy/65LWEx/TMkCDIuWegh1Ngwvm4Q\n"
  33. "yISgP7oU5d79eoySG3vOhC3w/3jEMuipoH1fBtp7m0tTpsYbAhch4XA7rfuD6whU\n"
  34. "gajeErLVxoiWMPkC/DnUvbgi74BJmdBiuGHQSd7LwsuXpTEGG9fYXcbTVN5SATYq\n"
  35. "DfbexbYxTMwVJWoVb6lrBEgM3gBBqiiAiy800xu1Nq07JdCIQkBsNpFtZbIZhsDS\n"
  36. "fzlGWP4wEmBQ3O67c+ZXkFr2DcrXBEtHam80Gp2SNhou2U5U7UesDL/xgLK6/0d7\n"
  37. "6TnEVMSUVJkZ8VeZr+IUIlvoLrtjLbqugb0T3OYXW+CQU0kBAgMBAAGjggFAMIIB\n"
  38. "PDAdBgNVHQ4EFgQUlE/UXYvkpOKmgP792PkA76O+AlcwHwYDVR0jBBgwFoAUTiJU\n"
  39. "IBiV5uNu5g/6+rkS7QYXjzkwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG\n"
  40. "AQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMDQGCCsGAQUFBwEB\n"
  41. "BCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEIGA1Ud\n"
  42. "HwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEds\n"
  43. "b2JhbFJvb3RHMi5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEW\n"
  44. "HGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwDQYJKoZIhvcNAQELBQADggEB\n"
  45. "AIIcBDqC6cWpyGUSXAjjAcYwsK4iiGF7KweG97i1RJz1kwZhRoo6orU1JtBYnjzB\n"
  46. "c4+/sXmnHJk3mlPyL1xuIAt9sMeC7+vreRIF5wFBC0MCN5sbHwhNN1JzKbifNeP5\n"
  47. "ozpZdQFmkCo+neBiKR6HqIA+LMTMCMMuv2khGGuPHmtDze4GmEGZtYLyF8EQpa5Y\n"
  48. "jPuV6k2Cr/N3XxFpT3hRpt/3usU/Zb9wfKPtWpoznZ4/44c1p9rzFcZYrWkj3A+7\n"
  49. "TNBJE0GmP2fhXhP1D/XVfIW/h0yCJGEiV9Glm/uGOa3DXHlmbAcxSyCRraG+ZBkA\n"
  50. "7h4SeM6Y8l/7MBRpPCz6l8Y=\n"
  51. "-----END CERTIFICATE-----\n";
  52.  
  53. Adafruit_MQTT_Publish Sensor_1_hum = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dht22_1_hum");
  54. Adafruit_MQTT_Publish Sensor_1_temp = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dht22_1_temp");
  55. Adafruit_MQTT_Publish Sensor_2_hum = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dht22_2_hum");
  56. Adafruit_MQTT_Publish Sensor_2_temp = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dht22_2_temp");
  57.  
  58. void setup() {
  59. Serial.begin(115200);
  60. dht1.begin();
  61. dht2.begin();
  62. delay(10);
  63. connectToWiFiAndAdafruitIO();
  64. }
  65.  
  66. void loop() {
  67. MQTT_connect();
  68. float h1 = dht1.readHumidity();
  69. float t1 = dht1.readTemperature();
  70. float h2 = dht2.readHumidity();
  71. float t2 = dht2.readTemperature();
  72. Serial.print(F("Humidity: "));
  73. Serial.print(h1);
  74. Serial.print(F("% Temperature: "));
  75. Serial.print(t1);
  76. Serial.println(F("°C "));
  77. Serial.print(F("Humidity: "));
  78. Serial.print(h2);
  79. Serial.print(F("% Temperature: "));
  80. Serial.print(t2);
  81. Serial.println(F("°C "));
  82. Serial.println("-------------------------------");
  83. if (!Sensor_1_hum.publish(h1)) {
  84. Serial.println(F("[1] Failed"));
  85. } else {
  86. Serial.println(F("[1] OK!"));
  87. }
  88. if (!Sensor_1_temp.publish(t1)) {
  89. Serial.println(F("[2] Failed"));
  90. } else {
  91. Serial.println(F("[2] OK!"));
  92. }
  93. if (!Sensor_2_hum.publish(h2)) {
  94. Serial.println(F("[1] Failed"));
  95. } else {
  96. Serial.println(F("[1] OK!"));
  97. }
  98. if (!Sensor_2_temp.publish(t2)) {
  99. Serial.println(F("[2] Failed"));
  100. } else {
  101. Serial.println(F("[2] OK!"));
  102. }
  103. // wait a couple seconds to avoid rate limit 30 Data/Min
  104. delay(12000);
  105. }
  106.  
  107. void MQTT_connect() {
  108. int8_t ret;
  109. // Stop if already connected.
  110. if (mqtt.connected()) {
  111. return;
  112. }
  113.  
  114. Serial.print("Connecting to MQTT... ");
  115.  
  116. uint8_t retries = 3;
  117. while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected
  118. Serial.println(mqtt.connectErrorString(ret));
  119. Serial.println("Retrying MQTT connection in 5 seconds...");
  120. mqtt.disconnect();
  121. delay(5000); // wait 5 seconds
  122. retries--;
  123. if (retries == 0) {
  124. // basically die and wait for WDT to reset me
  125. while (1)
  126. ;
  127. }
  128. }
  129.  
  130. Serial.println("MQTT Connected!");
  131. }
  132.  
  133.  
  134. void connectToWiFiAndAdafruitIO() {
  135. Serial.println(F("Adafruit IO MQTTS (SSL/TLS) Example"));
  136. // Connect to WiFi access point.
  137. Serial.println();
  138. Serial.println();
  139. Serial.print("Connecting to ");
  140. Serial.println(WLAN_SSID);
  141. delay(1000);
  142. WiFi.begin(WLAN_SSID, WLAN_PASS);
  143. delay(2000);
  144. while (WiFi.status() != WL_CONNECTED) {
  145. delay(500);
  146. Serial.print(".");
  147. }
  148. Serial.println();
  149. Serial.println("WiFi connected");
  150. Serial.println("IP address: ");
  151. Serial.println(WiFi.localIP());
  152. // Set Adafruit IO's root CA
  153. client.setCACert(adafruitio_root_ca);
  154. }
  155.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement