You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
223 lines
5.3 KiB
223 lines
5.3 KiB
/*
|
|
This sketch sends data via HTTP GET requests to data.sparkfun.com service.
|
|
|
|
You need to get streamId and privateKey at data.sparkfun.com and paste them
|
|
below. Or just customize this script to talk to other HTTP servers.
|
|
|
|
*/
|
|
|
|
#include <ESP8266WiFi.h>
|
|
#include <NTPClient.h>
|
|
#include <WiFiUdp.h>
|
|
const char* ssid = "VOVA-47V";
|
|
const char* password = "vovak26102003";
|
|
WiFiUDP ntpUDP;
|
|
const char* host = "api.openweathermap.org";
|
|
String line ;
|
|
NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600 + 7200, 60000);
|
|
int a = 0;
|
|
|
|
//****************************************************************************
|
|
void setup() {
|
|
|
|
// delay(1000);
|
|
Serial.begin(9600);
|
|
delay(1000);
|
|
|
|
//pinMode(2, OUTPUT);//gpio2//motor
|
|
// digitalWrite(2, 1);
|
|
// We start by connecting to a WiFi network
|
|
|
|
|
|
// Serial.println();
|
|
// Serial.println();7
|
|
Serial.print("Connecting to ");
|
|
Serial.println(ssid);
|
|
|
|
WiFi.begin(ssid, password);
|
|
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
delay(500);
|
|
a++;
|
|
if (a > 10)
|
|
{ a = 0;
|
|
goto q;
|
|
}
|
|
// Serial.print(".");
|
|
}
|
|
|
|
// Serial.println("");
|
|
Serial.println("WiFi connected");
|
|
Serial.println("IP");
|
|
Serial.println(WiFi.localIP());
|
|
q:
|
|
//Serial.println();
|
|
delay(2000);
|
|
}
|
|
|
|
int value = 0;
|
|
int n = 0;
|
|
|
|
|
|
|
|
void loop() {
|
|
Serial.println("hi");
|
|
|
|
a = 0;
|
|
n = 0;
|
|
while (a < 10)
|
|
{
|
|
delay(2000);
|
|
if (Serial.available() > 0) {
|
|
n = Serial.read() - 48;
|
|
|
|
if (n == 7)
|
|
{ Serial.print(n);
|
|
Serial.println("+");
|
|
|
|
a = 11;
|
|
}
|
|
}
|
|
a++;
|
|
}
|
|
if (n > 0)
|
|
{ a = 0;
|
|
n = 0;
|
|
while (a < 10)
|
|
{ delay(2000);
|
|
a++;
|
|
if (Serial.available() > 0) {
|
|
n = Serial.read() - 48;
|
|
|
|
if (n == 1)
|
|
{
|
|
Serial.print(n);
|
|
Serial.println("+");
|
|
|
|
Serial.print("connecting to ");
|
|
Serial.println(host);
|
|
|
|
// Use WiFiClient class to create TCP connections
|
|
WiFiClient client;
|
|
const int httpPort = 80;
|
|
// We now create a URI for the request
|
|
String url = "/data/2.5/forecast/daily?q=";
|
|
// url +="yevpatoriya&mode=xml&units=metric&cnt=7";
|
|
url += "Yevpatoriya,UA&APPID=a0b9f94d153cbcbfeb00ea5632db24ac&mode=xml&cnt=7";
|
|
//http://api.openweathermap.org/data/2.5/forecast/daily?q=
|
|
// Yevpatoriya,UA&APPID=a0b9f94d153cbcbfeb00ea5632db24ac&mode=metric&cnt=7
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// url=data/2.5/forecast/daily?q=yevpatoriya&mode=xml&units=metric&cnt=7
|
|
|
|
|
|
// This will send the request to the server
|
|
if (!client.connect(host, httpPort)) {
|
|
Serial.println("connection failed");
|
|
a = 0;
|
|
return;
|
|
}
|
|
|
|
|
|
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
|
|
"Host: " + host + "\r\n" +
|
|
"Connection: close\r\n\r\n");
|
|
Serial.print("Requesting URL: ");
|
|
Serial.println(url);
|
|
delay(1000);
|
|
Serial.print( "host1");
|
|
Serial.println();
|
|
// Read all the lines of the reply from server and print them to Serial
|
|
while (client.available()) {
|
|
line = client.readStringUntil('\r');
|
|
Serial.print(line);
|
|
}
|
|
Serial.println();
|
|
Serial.print(line.length());
|
|
delay(5000);
|
|
if (line.length() < 10)
|
|
{ if (!client.connect(host, httpPort)) {
|
|
Serial.println("connection failed");
|
|
a = 0;
|
|
return;
|
|
}
|
|
// This will send the request to the server
|
|
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
|
|
"Host: " + host + "\r\n" +
|
|
"Connection: close\r\n\r\n");
|
|
Serial.print("Requesting URL: ");
|
|
Serial.println(url);
|
|
delay(500);
|
|
Serial.print( "host1");
|
|
Serial.println();
|
|
// Read all the lines of the reply from server and print them to Serial
|
|
while (client.available()) {
|
|
String line = client.readStringUntil('\r');
|
|
Serial.print(line);
|
|
}
|
|
}
|
|
|
|
Serial.println();
|
|
Serial.println("closing connection");
|
|
delay(2000);
|
|
|
|
}
|
|
//******************************Time
|
|
if (n == 2)
|
|
{
|
|
Serial.print(n);
|
|
Serial.println("+");
|
|
|
|
timeClient.update();
|
|
|
|
time_t epochTime = timeClient.getEpochTime();
|
|
|
|
|
|
Serial.println(timeClient.getFormattedTime());
|
|
//Get a time structure
|
|
struct tm *ptm = gmtime ((time_t *)&epochTime);
|
|
|
|
int monthDay = ptm->tm_mday;
|
|
// Serial.print("Month day: ");
|
|
// Serial.println(monthDay);
|
|
|
|
int currentMonth = ptm->tm_mon + 1;
|
|
// Serial.print("Month: ");
|
|
// Serial.println(currentMonth);
|
|
int currentYear = ptm->tm_year + 1900;
|
|
//Serial.print("Year: ");
|
|
// Serial.println(currentYear);
|
|
String currentDate = String(monthDay) + "-" + String(currentMonth) + "-" + String(currentYear) ;
|
|
Serial.println(currentDate);
|
|
|
|
}
|
|
} //serial available
|
|
}
|
|
}
|
|
Serial.println("sleep");
|
|
delay(1000);
|
|
ESP.deepSleep(9000000);
|
|
|
|
|
|
}
|
|
|
|
|
|
void con()
|
|
{
|
|
WiFi.begin(ssid, password);
|
|
while (WiFi.status() != WL_CONNECTED) {
|
|
a = 0;
|
|
delay(500);
|
|
a++;
|
|
if (a > 10)
|
|
{ a = 0;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|