zpět

IoT ESP8266 Lua NodeMcu V3 WIFI modul, TCP/IP

Informace:

Arduino IDE

Zkopírovat do Správce dalších URL :

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 

 

https://create.arduino.cc/editor/pavel_jo/4db14e81-81be-4944-80a3-9cef295e7c86/preview

Code :

// ESP8266 Web Server

// připojení potřebných knihoven

#include <ESP8266WiFi.h>

 

// připojení knihovny DHT

#include "DHT.h"

// nastavení čísla pinu s připojeným DHT senzorem

#define pinDHT 13

// odkomentování správného typu čidla

#define typDHT11 DHT11     // DHT 11

//#define typDHT22 DHT22   // DHT 22 (AM2302)

// inicializace DHT senzoru s nastaveným pinem a typem senzoru

DHT mojeDHT(pinDHT, typDHT11);

 

 

// vytvoření proměnné s naším API klíčem z Thingspeak - viz návod

String apiKlic = "7LZ1M14HGELOKTVD";

// vytvoření proměnných s názvem WiFi sítě a heslem

const char* nazevWifi = "MojeWiFi";

const char* hesloWifi = "Heslo123";

// vytvoření proměnné s názvem serveru Thingspeaku

const char* server = "api.thingspeak.com";

// inicializace WiFi v módu klienta

WiFiClient client;

 

void setup() {

  // zahájení komunikace po sériové lince

  Serial.begin(9600);

  // zahájení bezdrátové WiFi komunikace s připojením

  // na router skrze zadané přihl. údaje

  WiFi.begin(nazevWifi, hesloWifi);

  // čekání na úspěšné připojení k routeru,

  // v průběhu čekání se vytiskne každých

  // 500 milisekund tečka po sériové lince

  while (WiFi.status() != WL_CONNECTED) {

    delay(500);

    Serial.print(".");

  }

  Serial.println("");

  Serial.print("Pripojeno k WiFi siti ");

  Serial.println(nazevWifi);

  Serial.print("IP adresa: ");

  Serial.println(WiFi.localIP());

  mojeDHT.begin();

}

 

void loop() {

  float tep = mojeDHT.readTemperature();

  float vlh = mojeDHT.readHumidity();

 

 

  // vytvoření proměnných pro načtení hodnoty analogového

  // pinu a času od spuštění Arduina

  int cas = millis() / 1000;

  int analog = analogRead(A0);

  // připojení na server Thingspeak pro odeslání dat

  if (client.connect(server, 80)) {

    // vytvoření zprávy, která bude odeslána na Thingspeak

    // každé pole je označeno jako "field" + pořadí pole,

    // je nutné každý údaj převést na String

    String zprava = apiKlic;

    zprava += "&field1=";

    zprava += String(tep);

    zprava += "&field2=";

    zprava += String(vlh);

    zprava += "\r\n\r\n";

    Serial.println(zprava);

    // po vytvoření celé zprávy ji odešleme na server Thingspeak

    // včetně našeho API klíče

    client.print("POST /update HTTP/1.1\n");

    client.print("Host: api.thingspeak.com\n");

    client.print("Connection: close\n");

    client.print("X-THINGSPEAKAPIKEY: " + apiKlic + "\n");

    client.print("Content-Type: application/x-www-form-urlencoded\n");

    client.print("Content-Length: ");

    client.print(zprava.length());

    client.print("\n\n");

    client.print(zprava);

    // vytištění informací po sériové lince o odeslání na Thingspeak

    Serial.print("Cas od spusteni Arduina: ");

    Serial.print(cas);

    Serial.print(" vterin a analogovy pin A0: ");

    Serial.println(analog);

    Serial.println("Udaje odeslany na Thingspeak.");

   

    Serial.print("Teplota :");

    Serial.println(tep);

    Serial.print("Vlhkost :");

    Serial.println(vlh);

  }

  // ukončení spojení se serverem Thingspeak

  client.stop();

  // nyní musíme vyčkat minimálně 15 vteřin do dalšího odeslání dat,

  // 15 vteřin je omezení Thingspeaku, v tomto příkladu je nastaven

  // interval 30 vteřin

  Serial.println("Pauza pred dalsim odeslanim dat.");

  delay(60000);

}