pomocí tohoto kódu mi funguje spínání dle nastavené teploty, ale chtěl bych abych mohl tuto teplotu měnit pomocí wifi (serveru na arduinu).
Mám to zapojené na NODEMCU
Rozchozeni jednoduchych stranek na NODEMCU by asi neměl být problém, ale vubec nechápu jak udělat aby se zadaná hodnota ze stránek (spodní teplota kdy se má sepnout rele a vrchni teploty kdy se ma rele vypnout) pouzila v programu. A jak to potom bude při výpadku elektriky. Aby tyto hodnoty zůstaly zapsané. A samozřejmě když bych je chtěl změnit, abych se připojil na www NODEMCU a mohl je změnit
Potřeboval bych aby se relé seplo například u -2 a bylo seplé do +2 a pak zase vyplo
PS1: tak jsem kod upravil, aby se pripojil na wifi a pouzival meze na spinani rele, ale ted to dostat na web toho nodemcu
Kód: Vybrat vše
// připojení knihoven
#include "DHT.h"
#include <ESP8266WiFi.h>
#include <SPI.h>
// nastavení čísla pinu s připojeným DHT senzorem
#define pinDHT D1
#define typDHT22 DHT22 // DHT 22
// inicializace DHT senzoru s nastaveným pinem a typem senzoru
DHT mojeDHT(pinDHT, typDHT22);
// Nazev Wi-Fi site, do ktere se mam pripojit
const char* ssid = "yyyyy";
// Heslo Wi-Fi site, do ktere se mam pripojit
const char* password = "ccccccccccc";
WiFiClient client;
WiFiServer server = WiFiServer(80); //port
int teplota_spodek = 25;
int teplota_vrsek = 26;
void setup() {
// komunikace přes sériovou linku rychlostí 9600 baud
Serial.begin(9600);
pinMode(D2, OUTPUT); //rele
// zapnutí komunikace s teploměrem DHT
mojeDHT.begin();
// 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!");
// Napis IP adresu, kterou mikropocitac dostal
Serial.print("Pouzij k pripojeni tuto adresu: ");
Serial.print("http://");
Serial.println(WiFi.localIP());
server.begin(); //spuštění serveru
}
void loop() {
// pomocí funkcí readTemperature a readHumidity načteme
// do proměnných tep a vlh informace o teplotě a vlhkosti,
// čtení trvá cca 250 ms
float tep = mojeDHT.readTemperature();
float vlh = mojeDHT.readHumidity();
// kontrola, jestli jsou načtené hodnoty čísla pomocí funkce isnan
if (isnan(tep) || isnan(vlh)) {
// při chybném čtení vypiš hlášku
Serial.println("Chyba při čtení z DHT senzoru!");
} else {
// pokud jsou hodnoty v pořádku,
// vypiš je po sériové lince
Serial.print("Teplota: ");
Serial.print(tep);
Serial.print(" stupnu Celsia, ");
Serial.print("vlhkost: ");
Serial.print(vlh);
Serial.println(" %");
if (tep<teplota_spodek)digitalWrite(D2,LOW);
if (tep>teplota_vrsek)digitalWrite(D2,HIGH);
}
// pauza pro přehlednější výpis
delay(2000);
}