Kód: Vybrat vše
#include <ESP8266WiFi.h>
#include <SPI.h>
#define BUFF_DELKA 255
const char* ssid = "Kony";
const char* password = "heslo";
char server[] = "server.eu"; //URL adresa serveru
char buffer[BUFF_DELKA]; //zásobník na příchozí řetězec
const int analogIn = A0;
int konstanta = 50;
WiFiClient client;
// Promenna s HTTP pozadavkem z prohlizece
String request;
void setup() {
// Nastartuj seriovou linku, do ktere budu vypisovat provozni informace
Serial.begin(9600);
pinMode(D1, OUTPUT);
pinMode(analogIn, INPUT);
// Pripojeni k Wi-Fi
Serial.println();
Serial.print("Pripojuji k ");
Serial.println(ssid);
WiFi.begin(ssid, password);
// Dokud nejsem pripojeny k Wi-Fi,zapisuj do seriove linky tecky progressbaru
while (WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.print(".");
}
// Jsem pripojeny k Wi-Fi a mohu pokracovat
Serial.println();
Serial.println("WiFi pripojena!");
}
// Smycka loop se opakuje stale dokola
void loop() {
// proměnné pro výpočty proudu
double napeti = 0;
double napetiRMS = 0;
double proudRMS = 0;
napeti = zmerVpp();
// přepočet napětí na proud
napetiRMS = (napeti/2.0) *0.707;
proudRMS = (napetiRMS * 1000)/konstanta;
// výpis výsledku na 3 desetinná místa
Serial.print("Proud: ");
Serial.print(proudRMS,3);
Serial.println(" A");
Serial.print("Odber: ");
Serial.print((proudRMS*235)-7);
Serial.println(" W");
if(client.connect(server, 80)){
delay(1000);
client.print("GET http://server/logger_3D.php?spotreba=");
client.println((proudRMS*235)-7);
client.println("Host: server.eu");
client.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.println("Connection: close");
client.println();
delay(1000);
client.stop();
}
if(client.connect(server, 80)){
delay(1000);
client.println("GET http://server/3Dzasuvka.php");
client.println("Host: server.eu");
client.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.println("Connection: close");
client.println();
delay(1000);
int inBuffer = 0;
for(int i = 0; i < BUFF_DELKA; i++){ //vyprázdní buffer
buffer[i] = '\\0'; //nastaví všechny prvky buffer na znak konce řetězce
}
while(client.available()){
buffer[inBuffer] = client.read();
inBuffer++;
}
if(inBuffer == 12){
if(buffer[0] == '3' && buffer[1] == 'D' && buffer[2] == 'z' && buffer[3] == 'a' && buffer[4] == 's' && buffer[5] == 'u' && buffer[6] == 'v' && buffer[7] == 'k' && buffer[8] == 'a'){
if(buffer[10] == '1'){
digitalWrite(D1, HIGH);
}
else{
digitalWrite(D1, LOW);
}
}
}
client.stop();
}
Serial.println(buffer[10]);
delay(120000);
}
float zmerVpp()
{
// proměnné pro měření
float vysl;
int napAng;
int maximum = 0;
int minimum = 1023;
unsigned long mezicas = millis();
// opakování měření po dobu 1 vteřiny
while((millis()-mezicas) < 1000)
{
// načtení hodnoty analogového vstupu
napAng = analogRead(analogIn);
// hledání maxima
if (napAng > maximum)
{
maximum = napAng;
}
// hledání minima
if (napAng < minimum)
{
minimum = napAng;
}
}
// přepočet hodnoty analogového vstupu na napětí
vysl = ((maximum - minimum) * 20.0)/1023.0;
return vysl;
}