Arduino schéma - arduino.sk

Wifi teplomer - NodeMCU v AP móde

Kompletné projekty s návodom a zdrojovým kódom
Príspevky: 35
Registrovaný: Uto 23. Dec 2014 2:15:50

Wifi teplomer - NodeMCU v AP móde

Poslaťod martinius96 » Ned 17. Sep 2017 1:02:11

Wifi teplomer je projekt, kde sa využíva NodeMCU v AP móde, je to vlastne hotspot, ku ktorému sa pripojíte a následne môžete prezerať teploty, alebo veličiny iných čidiel, ktoré k NodeMCU pripojíte. Hodnoty sa prezerajú cez webový prehliadač na stránke, ktorú NodeMCU generuje. Nachádza sa na rovnakej IP/DNS príznaku ako aj brána (NodeMCU). V tomto riešení je demonštrácia dvoch čidiel DS18B20 s využitím OneWire protokolu. Nakoľko ho programujem cez ArduinoIDE a Arduino príkazmi, tak si myslím, že je v poriadku, že som ho vložil na Arduino fórum. Riešenie popisuje iba jednoduchú HTML tabuľku s výpisom dvoch hodnôt. Pozor! V kóde je treba html kód písať do jedného riadka, inak sa neskompiluje! Obrázky sú ilustračné.
Parametre projektu:
    NodeMCU v úlohe prístupového bodu (AP)
    Vlastné SSID a WPA2 PSK šifrovanie
    Vlastná IP (statická)/DNS príznak
    Bezpečná webstránka prístupná z domácej siete
    Vždy pri načítaní stránky aktuálne info (informatívny charakter)
Obrázok
Obrázok
Kód: Vybrať všetko
#include <OneWire.h>                 //KNIZNICA ONEWIRE PRE VYUZITIE ONEWIRE ZBERNICE
#include <DallasTemperature.h>       //KNIZNICA PRE TEPLOTNE CIDLA
#define ONE_WIRE_BUS 2               //DEFINICIA PINU AKO ZBERNICE PRE ONEWIRE ZARIADENIA
OneWire oneWire(ONE_WIRE_BUS);       //ONEWIRE ČÍTAŤ IBA NA PORTE DEFINOVANOM VYSSIE
DallasTemperature sensors(&oneWire);
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <SPI.h>
const char *ssid = "ESPap";
const char *password = "thereisnospoon";

ESP8266WebServer server(80);

/* IP stranky je 192.168.4.1 (predpísané kniznicou)
*/
void handleRoot() {
  sensors.begin();
sensors.requestTemperatures(); 

server.send(200, "text/html", "<!DOCTYPE html><html><body><table><tr><td>Cidlo</td><td>Hodnota</td></tr><tr><td>DS18b20 - dnu</td><td>"+(String)sensors.getTempCByIndex(0)+"</td></tr><tr><td>DS18b20 - von</td><td>"+(String)sensors.getTempCByIndex(1)+"</td></tr></table></body></html>");
}

void setup() {
  delay(1000);
  Serial.begin(115200);
  Serial.println();
  Serial.print("Konfigurujem access point...");
  /* You can remove the password parameter if you want the AP to be open. */
  WiFi.softAP(ssid, password);

  IPAddress myIP = WiFi.softAPIP();
  Serial.print("IP adresa pristupoveho bodu je: ");
  Serial.println(myIP);
  server.on("/", handleRoot);
  server.begin();
  Serial.println("Webserver bezi");
}

void loop() {
  server.handleClient();
}

Dáta sa aktualizujú vždy, keď klient refreshne stránku. To znamená, že má k dispozícii vždy aktuálnu teplotu.
Podporiť ma a nájsť zaujímavé riešenia môžete na: [url]arduino.php5.sk[/url]

Späť na Hotové projekty