· last year · Nov 13, 2023, 11:45 PM
1#include <ESP8266WiFi.h>
2
3#include "DFRobot_RP2040_SCI.h"
4DFRobot_RP2040_SCI_IIC sci(/*addr=*/RP2040_SCI_ADDR_0X21, &Wire);
5
6String apiKey = "VGSPGMRUMIXZBPRB"; // Enter your Write API key from ThingSpeak
7
8const char *ssid = "DELAROSA"; // replace with your wifi ssid and wpa2 key
9const char *pass = "$Dtd50djfA";
10const char* server = "api.thingspeak.com";
11
12WiFiClient client;
13
14void setup()
15{
16 Serial.begin(115200);
17 delay(10);
18
19 Serial.println("Connecting to ");
20 Serial.println(ssid);
21 WiFi.begin(ssid, pass);
22
23 while (WiFi.status() != WL_CONNECTED)
24 {
25 delay(500);
26 Serial.print(".");
27 }
28 Serial.println("");
29 Serial.println("WiFi connected");
30
31}
32
33void loop()
34{
35 /* Sensor SHT31 Temperatura y humedad*/
36 float Temp_Air_val = sci.getValue(sci.eALL,"Temp_Air").toFloat();
37 String Temp_Air_unit = sci.getUnit(sci.eALL,"Temp_Air");
38 float Humi_Air_val = sci.getValue(sci.eALL,"Humi_Air").toFloat();
39 String Humi_Air_unit = sci.getUnit(sci.eALL,"Humi_Air");
40 // Serial.print(" TimeStamp: "); Serial.print(TimeStamp);
41 Serial.print(" Temp_Air: "); Serial.print(Temp_Air_val); Serial.print(" ");Serial.print(Temp_Air_unit);
42 Serial.print(" Humi_Air: "); Serial.print(Humi_Air_val); Serial.print(" ");Serial.println(Humi_Air_unit);
43 Serial.println();
44
45 /* Sensor PM2.5 */
46 float PM1_0_val = sci.getValue(sci.eALL,"PM1.0").toFloat();
47 String PM1_0_unit = sci.getUnit(sci.eALL,"PM1.0");
48 float PM2_5_val = sci.getValue(sci.eALL,"PM2.5").toFloat();
49 String PM2_5_unit = sci.getUnit(sci.eALL,"PM2.5");
50 float PM10_val = sci.getValue(sci.eALL,"PM10").toFloat();
51 String PM10_unit = sci.getUnit(sci.eALL,"PM10");
52 Serial.print(" PM1.0: "); Serial.print(PM1_0_val); Serial.print(" ");Serial.print(PM1_0_unit);
53 Serial.print(" PM2.5: "); Serial.print(PM2_5_val); Serial.print(" ");Serial.println(PM2_5_unit);
54 Serial.print(" PM10: "); Serial.print(PM10_val); Serial.print(" ");Serial.println(PM10_unit);
55
56
57 /* Sensor ENS160 */
58 float AQI_val = sci.getValue(sci.eALL,"AQI").toFloat();
59 String AQI_unit = sci.getUnit(sci.eALL,"AQI");
60 float TVOC_val = sci.getValue(sci.eALL,"TVOC").toFloat();
61 String TVOC_unit = sci.getUnit(sci.eALL,"TVOC");
62 float ECO2_val = sci.getValue(sci.eALL,"ECO2").toFloat();
63 String ECO2_unit = sci.getUnit(sci.eALL,"ECO2");
64 Serial.print(" AQI: "); Serial.print(AQI_val); Serial.print(" ");Serial.print(AQI_unit);
65 Serial.print(" TVOC: "); Serial.print(TVOC_val); Serial.print(" ");Serial.println(TVOC_unit);
66 Serial.print(" ECO2: "); Serial.print(ECO2_val); Serial.print(" ");Serial.println(ECO2_unit);
67
68 //delay(500);
69 // thingspeak needs minimum 15 sec delay between updates
70 delay(60000);//wait for 1 min
71 if (client.connect(server,80)) // "184.106.153.149" or api.thingspeak.com
72 {
73 String postStr = apiKey;
74 postStr +="&field1=";
75 postStr += String(AQI_val);
76 postStr +="&field2=";
77 postStr += String(TVOC_val);
78 postStr +="&field3=";
79 postStr += String(ECO2_val);
80 postStr +="&field4=";
81 postStr += String(Temp_Air_val);
82 postStr +="&field5=";
83 postStr += String(Humi_Air_val);
84 postStr +="&field6=";
85 postStr += String(PM1_0_val);
86 postStr +="&field7=";
87 postStr += String(PM2_5_val);
88 postStr +="&field8=";
89 postStr += String(PM10_val);
90 postStr += "\r\n\r\n";
91
92 client.print("POST /update HTTP/1.1\n");
93 client.print("Host: api.thingspeak.com\n");
94 client.print("Connection: close\n");
95 client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
96 client.print("Content-Type: application/x-www-form-urlencoded\n");
97 client.print("Content-Length: ");
98 client.print(postStr.length());
99 client.print("\n\n");
100 client.print(postStr);
101 Serial.println("%. Send to Thingspeak.");
102 }
103 client.stop();
104 Serial.println("Waiting...");
105
106
107}
108