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);
}