· 6 years ago · Apr 18, 2020, 06:38 PM
1
2#include <ESP8266WiFi.h>
3#include <NTPClient.h>
4#include <WiFiUdp.h>
5#include <ThingspeakUploader.h>
6
7String api_key = "7ER2V5YFUL7G8CXB"; // Enter your Write API key from ThingSpeak
8const char *ssid = "Internetz"; // replace with your wifi ssid and wpa2 key
9const char *pass = "nutellamarmelade";
10const char* server = "api.thingspeak.com";
11
12WiFiClient client;
13
14
15
16const long utcOffsetInSeconds = 0;
17WiFiUDP ntpUDP;
18NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);
19ThingspeakUploader up();
20
21void setup()
22{
23 Serial.begin(115200);
24 delay(10);
25 pinMode(2, OUTPUT);
26 digitalWrite(2, 0);
27 Serial.println("Connecting to ");
28 Serial.println(ssid);
29
30 WiFi.hostname("ESP8266");
31 WiFi.begin(ssid, pass);
32
33
34
35 while (WiFi.status() != WL_CONNECTED)
36 {
37 delay(500);
38 Serial.print(".");
39 }
40 Serial.println("");
41 Serial.println("WiFi connected");
42
43
44 pinMode(4, INPUT);
45
46 timeClient.begin();
47
48}
49
50long b = 1;
51
52
53void loop()
54{
55 b = b * 2;
56 if (client.connect(server,80)) // "184.106.153.149" or api.thingspeak.com
57 {
58 timeClient.update();
59 String data_to_send = api_key;
60 data_to_send += "&field1=";
61 data_to_send += b;
62 data_to_send += "&created_at=";
63 data_to_send += timeClient.getFormattedDate();;
64
65 client.print("POST /update HTTP/1.1\n");
66 client.print("Host: api.thingspeak.com\n");
67 client.print("Connection: close\n");
68 client.print("X-THINGSPEAKAPIKEY: " + api_key + "\n");
69 client.print("Content-Type: application/x-www-form-urlencoded\n");
70 client.print("Content-Length: ");
71 client.print(data_to_send.length());
72 client.print("\n\n");
73 client.print(data_to_send);
74 delay(1000);
75 Serial.println(data_to_send);
76 up.make();
77 }
78 client.stop();
79
80 Serial.println("Waiting...");
81
82 // thingspeak needs minimum 15 sec delay between updates, i've set it to 30 seconds
83 delay(30000);
84}