Program ESP 8266

Ak ste sa rozhodli pre ESP8266 so vstavaným USB prevodníkom stačí pripojiť ESP modul pomocou USB kábla do PC nastaviť port v Arduino IDE a nahrať program.

Ak ste sa však rozhodli pre verziu bez USB prevodníku napr. ESP8266-01 budete potrebovať ešte externý programátor.

NodeMCU-lolin-ESP8266 s USB prevodníkom
ESP8266-01 bez USB prevodníku
Programátor ESP8266-01

Nižšie je uvedený kód ktorý je potrebné doplniť o nasledovné veci:

  1. ssid Wifi siete
  2. heslo Wifi siete
  3. API kód ktorý získate po registrácii
/**********************************************************************
 *Projekt:                                                            *                                                   
 *EPS8266 web tepllomer s pouzitim DHT22 a ESP8266-01                 *                                            
 *                                                                    *
 * Kontakt:                                                           *                                   
 * http://webtemp.wz.cz/                                              *
 * info@webtemp.wz.cz                                                 *
 *                                                                    *
 * Vytvorene: 2020/09/08                                              *                                                   
 * V1.0                                                               *  
 * Popis verzie                                                       *  
 * Posielané data:                                                    *
 * API                                                                *
 * Value1,Value2,Value3                                               *
 **********************************************************************/
 
//nacitanie kniznic
#ifdef ESP32
  #include <WiFi.h>
  #include <HTTPClient.h>
#else
  #include <ESP8266WiFi.h>
  #include <ESP8266HTTPClient.h>
  #include <WiFiClient.h>
#endif
 
//WIFI
const char* ssid          = "xxx";  //SSID WIFI siete
const char* password_wifi = "xxx";   //Heslo WIFI siete
//api webtemp
String apiKeyValue        = "xxx";  //API kod ziskate po registracii
 
const char* serverName1   = "http://webtemp.wz.cz/a_esp_data/api.php";
 
//DHT22
#include <DHT.h>
#define DHTPIN 2 // D1 pin on Nodemcu / D2 ESP8266-01
DHT dht(DHTPIN, DHT22);
//*****************************************************************
 
//SETUP
void setup() {
  Serial.begin(115200);
  delay(100);
  Serial.print("Setup");
 
//Start WiFI
// WiFi.mode(WIFI_OFF);   //vypne pristupovy bod wifi alebo WIFI_STA  
  WiFi.begin(ssid, password_wifi);
  Serial.println("Connecting");
  while(WiFi.status() != WL_CONNECTED) { 
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to WiFi network with IP Address: ");
  Serial.println(WiFi.localIP());
 
//Start DHT
dht.begin();
}
 
//*****************************************************************
//LOOP
void loop() {
Serial.println("loop");
//citanie dat z DHT
float h = dht.readHumidity();
float t = dht.readTemperature();
//volny parameter
float p = 1024.0;
 
// float h = 23.1;   //testovacie data
// float t = 24.2;     //testovacie data
 
//Pripojenie WIFI
  if(WiFi.status()== WL_CONNECTED){
    HTTPClient http;
    Serial.println("connect");
 
    //adresa serveru
    http.begin(serverName1);  
    
    //Nastavenie sposobu pripojenoia
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
     
    //Odosielanie dat
    String httpRequestData =  "api_key=" + apiKeyValue +                            
                              "&value1=" + String(t) +
                              "&value2=" + String(h) +
                              "&value3=" + String(p) + "";  
    // Zobrazenie odoslanych dat na serialmonitor
    Serial.print("httpRequestData: ");  
    Serial.println(httpRequestData);  
     
    int httpResponseCode = http.POST(httpRequestData);
 
    // zobrazenie odpovedi po odoslani dat na serialmonitore
    if (httpResponseCode>0) {
      Serial.print("HTTP Response code: ");
      Serial.println(httpResponseCode);
    }
    else {
      Serial.print("Error code: ");
      Serial.println(httpResponseCode);
    }
    // Free resources
    http.end();
 
  //300 000 ms ->5min cas cakania pred dalsim posielanim
  delay(300000);  
}
 }