Stránka 1 z 1

Wifi teplomer - NodeMCU v AP móde

Napsal: 17 zář 2017, 00:38
od martinius96
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.
Parametre:
  • 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)
  • Grafické vyobrazenie podľa dohody
Obrázek
Obrázek

Kód: Vybrat vše

#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: arduino.php5.sk

Re: Wifi teplomer - NodeMCU v AP móde

Napsal: 24 říj 2017, 18:49
od jankop
Níže uvedené knihovny v programu postrádají smysl, ale jinak program opravdu funguje.
#include <WiFiClient.h>
#include <SPI.h>

Re: Wifi teplomer - NodeMCU v AP móde

Napsal: 02 lis 2017, 10:54
od martinius96
Je to možné :) som rád, že funguje.

Re: Wifi teplomer - NodeMCU v AP móde

Napsal: 14 pro 2017, 12:23
od martinius96
Update: 14.12.2017 prebehla aktualizácia súborov na Githube, doplnené knižnice pre pripojenie periférii.
Github repozitár: https://github.com/martinius96/nodemcu-wifi-teplomer

Re: Wifi teplomer - NodeMCU v AP móde

Napsal: 29 pro 2018, 23:39
od martinius96
Update: 29.12.2018
  • Zmenený dizajn webstránky s responzivitou, pridanie meta tagov pre viewport pre prispôsobenie
  • Doplnenie správnych knižníc pre OneWire a DS18B20 do repozitára
  • Odstránenie prebytočných knižníc v programoch
  • Pridaný príklad pre otvorenú wifi sieť bez hesla
  • Upravený pôvodný sketch s WPA - PSK šifrovaním
  • Doplnené zapojenie k DS18B20 senzorom s non-parasite zapojením
Obrázek