Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "DHT.h"
- #include <WiFi.h>
- #include "WiFiClientSecure.h"
- #include "Adafruit_MQTT.h"
- #include "Adafruit_MQTT_Client.h"
- #define WLAN_SSID "network"
- #define WLAN_PASS "123456789"
- #define AIO_SERVER "io.adafruit.com"
- #define AIO_SERVERPORT 8883
- #define AIO_USERNAME "project23112023"
- #define AIO_KEY "aio_bcAI31EJW1gzplrK81PjzziryoSB"
- #define Sensor_1_Pin 22
- #define Sensor_2_Pin 23
- #define DHTTYPE DHT22
- DHT dht1(Sensor_1_Pin, DHTTYPE);
- DHT dht2(Sensor_2_Pin, DHTTYPE);
- WiFiClientSecure client;
- Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
- const char* adafruitio_root_ca = \
- "-----BEGIN CERTIFICATE-----\n"
- "MIIEjTCCA3WgAwIBAgIQDQd4KhM/xvmlcpbhMf/ReTANBgkqhkiG9w0BAQsFADBh\n"
- "MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3\n"
- "d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH\n"
- "MjAeFw0xNzExMDIxMjIzMzdaFw0yNzExMDIxMjIzMzdaMGAxCzAJBgNVBAYTAlVT\n"
- "MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j\n"
- "b20xHzAdBgNVBAMTFkdlb1RydXN0IFRMUyBSU0EgQ0EgRzEwggEiMA0GCSqGSIb3\n"
- "DQEBAQUAA4IBDwAwggEKAoIBAQC+F+jsvikKy/65LWEx/TMkCDIuWegh1Ngwvm4Q\n"
- "yISgP7oU5d79eoySG3vOhC3w/3jEMuipoH1fBtp7m0tTpsYbAhch4XA7rfuD6whU\n"
- "gajeErLVxoiWMPkC/DnUvbgi74BJmdBiuGHQSd7LwsuXpTEGG9fYXcbTVN5SATYq\n"
- "DfbexbYxTMwVJWoVb6lrBEgM3gBBqiiAiy800xu1Nq07JdCIQkBsNpFtZbIZhsDS\n"
- "fzlGWP4wEmBQ3O67c+ZXkFr2DcrXBEtHam80Gp2SNhou2U5U7UesDL/xgLK6/0d7\n"
- "6TnEVMSUVJkZ8VeZr+IUIlvoLrtjLbqugb0T3OYXW+CQU0kBAgMBAAGjggFAMIIB\n"
- "PDAdBgNVHQ4EFgQUlE/UXYvkpOKmgP792PkA76O+AlcwHwYDVR0jBBgwFoAUTiJU\n"
- "IBiV5uNu5g/6+rkS7QYXjzkwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsG\n"
- "AQUFBwMBBggrBgEFBQcDAjASBgNVHRMBAf8ECDAGAQH/AgEAMDQGCCsGAQUFBwEB\n"
- "BCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEIGA1Ud\n"
- "HwQ7MDkwN6A1oDOGMWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEds\n"
- "b2JhbFJvb3RHMi5jcmwwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEW\n"
- "HGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwDQYJKoZIhvcNAQELBQADggEB\n"
- "AIIcBDqC6cWpyGUSXAjjAcYwsK4iiGF7KweG97i1RJz1kwZhRoo6orU1JtBYnjzB\n"
- "c4+/sXmnHJk3mlPyL1xuIAt9sMeC7+vreRIF5wFBC0MCN5sbHwhNN1JzKbifNeP5\n"
- "ozpZdQFmkCo+neBiKR6HqIA+LMTMCMMuv2khGGuPHmtDze4GmEGZtYLyF8EQpa5Y\n"
- "jPuV6k2Cr/N3XxFpT3hRpt/3usU/Zb9wfKPtWpoznZ4/44c1p9rzFcZYrWkj3A+7\n"
- "TNBJE0GmP2fhXhP1D/XVfIW/h0yCJGEiV9Glm/uGOa3DXHlmbAcxSyCRraG+ZBkA\n"
- "7h4SeM6Y8l/7MBRpPCz6l8Y=\n"
- "-----END CERTIFICATE-----\n";
- Adafruit_MQTT_Publish Sensor_1_hum = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dht22_1_hum");
- Adafruit_MQTT_Publish Sensor_1_temp = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dht22_1_temp");
- Adafruit_MQTT_Publish Sensor_2_hum = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dht22_2_hum");
- Adafruit_MQTT_Publish Sensor_2_temp = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/dht22_2_temp");
- void setup() {
- Serial.begin(115200);
- dht1.begin();
- dht2.begin();
- delay(10);
- connectToWiFiAndAdafruitIO();
- }
- void loop() {
- MQTT_connect();
- float h1 = dht1.readHumidity();
- float t1 = dht1.readTemperature();
- float h2 = dht2.readHumidity();
- float t2 = dht2.readTemperature();
- Serial.print(F("Humidity: "));
- Serial.print(h1);
- Serial.print(F("% Temperature: "));
- Serial.print(t1);
- Serial.println(F("°C "));
- Serial.print(F("Humidity: "));
- Serial.print(h2);
- Serial.print(F("% Temperature: "));
- Serial.print(t2);
- Serial.println(F("°C "));
- Serial.println("-------------------------------");
- if (!Sensor_1_hum.publish(h1)) {
- Serial.println(F("[1] Failed"));
- } else {
- Serial.println(F("[1] OK!"));
- }
- if (!Sensor_1_temp.publish(t1)) {
- Serial.println(F("[2] Failed"));
- } else {
- Serial.println(F("[2] OK!"));
- }
- if (!Sensor_2_hum.publish(h2)) {
- Serial.println(F("[1] Failed"));
- } else {
- Serial.println(F("[1] OK!"));
- }
- if (!Sensor_2_temp.publish(t2)) {
- Serial.println(F("[2] Failed"));
- } else {
- Serial.println(F("[2] OK!"));
- }
- // wait a couple seconds to avoid rate limit 30 Data/Min
- delay(12000);
- }
- void MQTT_connect() {
- int8_t ret;
- // Stop if already connected.
- if (mqtt.connected()) {
- return;
- }
- Serial.print("Connecting to MQTT... ");
- uint8_t retries = 3;
- while ((ret = mqtt.connect()) != 0) { // connect will return 0 for connected
- Serial.println(mqtt.connectErrorString(ret));
- Serial.println("Retrying MQTT connection in 5 seconds...");
- mqtt.disconnect();
- delay(5000); // wait 5 seconds
- retries--;
- if (retries == 0) {
- // basically die and wait for WDT to reset me
- while (1)
- ;
- }
- }
- Serial.println("MQTT Connected!");
- }
- void connectToWiFiAndAdafruitIO() {
- Serial.println(F("Adafruit IO MQTTS (SSL/TLS) Example"));
- // Connect to WiFi access point.
- Serial.println();
- Serial.println();
- Serial.print("Connecting to ");
- Serial.println(WLAN_SSID);
- delay(1000);
- WiFi.begin(WLAN_SSID, WLAN_PASS);
- delay(2000);
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.println();
- Serial.println("WiFi connected");
- Serial.println("IP address: ");
- Serial.println(WiFi.localIP());
- // Set Adafruit IO's root CA
- client.setCACert(adafruitio_root_ca);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement