WeMos D1 WIFI WebServer
Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
WeMos D1 WIFI WebServer
Zaujímavá vecička ten WeMos. Dá sa to napr. využiť na WiFi meranie teploty pomocou
Dallas senzoru.
Dallas senzoru.
Kód: Vybrat vše
#include <OneWire.h>
#include <DallasTemperature.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
const char* ssid = "guest";
const char* password = "0000";
OneWire oneWire(D8);
DallasTemperature sensor(&oneWire);
String myHTML = "";
ESP8266WebServer server(80);
const int led = BUILTIN_LED;
float teplota;
void handleNotFound(){
digitalWrite(led, 1);
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET)?"GET":"POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i=0; i<server.args(); i++){
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
digitalWrite(led, 0);
}
void generateHTML(){
myHTML="";
myHTML+="<html>";
myHTML += " <head> ";
myHTML += "<script type=\"text/javascript\" src=\"https://www.gstatic.com/charts/loader.js\"></script>";
myHTML += " <script type=\"text/javascript\">";
myHTML += " google.charts.load('current', {'packages':['gauge']});";
myHTML += " google.charts.setOnLoadCallback(drawChart);";
myHTML += " function drawChart() {";
myHTML += "";
myHTML += " var data = google.visualization.arrayToDataTable([";
myHTML += " ['Label', 'Value'],";
myHTML += " ['Teplota', @id_1@]";
myHTML += " ";
myHTML += " ]);";
myHTML += "";
myHTML += " var options = {";
myHTML += " width: 120, height: 120,";
myHTML += " redFrom: 90, redTo: 100,";
myHTML += " yellowFrom:75, yellowTo: 90,";
myHTML += " minorTicks: 5";
myHTML += " };";
myHTML += "";
myHTML += " var chart = new google.visualization.Gauge(document.getElementById('chart_div'));";
myHTML += "";
myHTML += " chart.draw(data, options); ";
myHTML += " ";
myHTML += " }";
myHTML += " </script>";
myHTML += " </head>";
myHTML += " <body>";
myHTML += " <div id=\"chart_div\" style=\"width: 120px; height: 120px;\"></div>";
myHTML += " </body>";
myHTML += "</html>";
int sensor_value = analogRead(0);
sensor.requestTemperatures();
myHTML.replace("@id_1@", String(sensor.getTempCByIndex(0),1));
}
void handleRoot() {
digitalWrite(led, 1);
Serial.println();
String message = "";
message += server.args();
message += "\n";
for (uint8_t i=0; i<server.args(); i++){
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
Serial.println(message);
if (server.args()==0)
{
generateHTML();
server.send(200, "text/html", myHTML);
}
else
{}
digitalWrite(led, 0);
}
void setup(void){
sensor.begin();
pinMode(led, OUTPUT);
digitalWrite(led, 0);
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
server.on("/", handleRoot);
server.on("/inline", [](){server.send(200, "text/plain", "this works as well");});
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
}
void loop(void){
server.handleClient();
}
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 7403
- Registrován: sob črc 19, 2014 8:56 pm
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: WeMos D1 WIFI WebServer
jo, je to esp8266 na desce imitující arduino.
tady mám třeba "bazéntermostat" což je použitelný i pro fototermiku: a rozhraní vypadá nějak takhle,
http://www.internetove-sluzby.cz/bazen/?w=0 - to jsou samozřejmě "fake data" , ty okýnka mění barvu podle teploty, a po kliknutá na střed vrtule, co signalizuje funkci čerpadla, je možný nastavit dobu běhu čerpadla. jako bonus mám i odesílání dat na thingspeak, inspirace zde:
http://www.xpablo.cz/?p=941#comment-2413
ten wificonfig je "k nezaplacení" - po nějaké upravě v domácí síti není potřeba nic přeprogramovávat, nastaví se to přes web rozhraní.
tady mám třeba "bazéntermostat" což je použitelný i pro fototermiku: a rozhraní vypadá nějak takhle,
http://www.internetove-sluzby.cz/bazen/?w=0 - to jsou samozřejmě "fake data" , ty okýnka mění barvu podle teploty, a po kliknutá na střed vrtule, co signalizuje funkci čerpadla, je možný nastavit dobu běhu čerpadla. jako bonus mám i odesílání dat na thingspeak, inspirace zde:
http://www.xpablo.cz/?p=941#comment-2413
ten wificonfig je "k nezaplacení" - po nějaké upravě v domácí síti není potřeba nic přeprogramovávat, nastaví se to přes web rozhraní.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Už sa mi to rozbehlo. Len ma zaujíma ako pripevniť Dallas DS1820 na panely
a ako ju presne nakalibrovať.
a ako ju presne nakalibrovať.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 3074
- Registrován: stř dub 27, 2016 12:12 am
Re: WeMos D1 WIFI WebServer
Co třeba přilepit to tavným lepidlem?rottenkiwi píše:Už sa mi to rozbehlo. Len ma zaujíma ako pripevniť Dallas DS1820 na panely
a ako ju presne nakalibrovať.
Měl jsem 3xDS1820 k jednomu arduinu současně a rozcházely se mi jen +- 1°C
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Od 20 do 44 *C mi to ukazuje OK,
ale ak je teplota nad 44 *C, tak mi to vypíše 127.7 .
Tak kde je chyba ?
ale ak je teplota nad 44 *C, tak mi to vypíše 127.7 .
Tak kde je chyba ?
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 3074
- Registrován: stř dub 27, 2016 12:12 am
Re: WeMos D1 WIFI WebServer
A není možný, že došlo jen k pomíchání datových typů?
127.7 vypadá jako by se špatně přenášela hodnota mezi signed a unsigned.
127.7 vypadá jako by se špatně přenášela hodnota mezi signed a unsigned.
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Problém bol odpor, mal som tam 5k a má byť 4k7. Teraz to už merá OK.
Idem skúsiť kalibráciu podľa tohto:
https://thecavepearlproject.org/2015/03 ... libration/
Zatiaľ to funguje ako vonkajší WiFi teplomer napájaný z DIY banku z vyradených 18650.
Zajtra to skúsim dať na panely, nejakou teplovodivou pastou a integrovať to do mojho online monit.
Idem skúsiť kalibráciu podľa tohto:
https://thecavepearlproject.org/2015/03 ... libration/
Zatiaľ to funguje ako vonkajší WiFi teplomer napájaný z DIY banku z vyradených 18650.
Zajtra to skúsim dať na panely, nejakou teplovodivou pastou a integrovať to do mojho online monit.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 7403
- Registrován: sob črc 19, 2014 8:56 pm
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: WeMos D1 WIFI WebServer
S DS18B20 jsem něco užil, co vím jistě, tak hodnota odporu nehraje moc velkou roli. -85°C a 127 jsou ve farnheitech v hex nějaký chybový stavy, jeden tuším přerušení napájení během konverze a druhej si hned nevzpomenu, ale řeší to kde kdo: https://forum.arduino.cc/index.php?topic=271388.0
Určitě vím, že na 3.3V funguje spolehlivě třídrát zapojení a odpor jsem dával 3k3 v některejch kusech snad i 2k7.
Jedna z chyb vzniktne tím, že se zadá požadavek na teplotu a nepočká se těch 0.6s , než je hodnota připravená k načtení, čas se mění podle tozlišení měření.
Chyba 85°C je tuším při dvoudrát zapojení, když nejsou spojený piny GND a VCC - podle datasheetu první naměřená hodnota po resetu napájení.
Kdysi jsem to lamersky řešil tak, že když přijde jedna z těchhle hodnot, tak to ignoruju a změřím znovu, a furt dokola, dokud se neprobudí k životu.
Jinak DS18B20 se nekalibruje, pokud se nastaví nejvyšší rozlišení, a čidla jsou zaručeně na stejné teplotě (třeba v promíchávané sklenici s vodou) tak rozdíl mezi čidly 0.1°C je fakt hodně. A absolutní přesnost se snadno porovná třeba proti teploměru na člověka, kterej by měl chodit +- 0.2°C, jinak je k ničemu.
Určitě vím, že na 3.3V funguje spolehlivě třídrát zapojení a odpor jsem dával 3k3 v některejch kusech snad i 2k7.
Jedna z chyb vzniktne tím, že se zadá požadavek na teplotu a nepočká se těch 0.6s , než je hodnota připravená k načtení, čas se mění podle tozlišení měření.
Chyba 85°C je tuším při dvoudrát zapojení, když nejsou spojený piny GND a VCC - podle datasheetu první naměřená hodnota po resetu napájení.
Kdysi jsem to lamersky řešil tak, že když přijde jedna z těchhle hodnot, tak to ignoruju a změřím znovu, a furt dokola, dokud se neprobudí k životu.
Jinak DS18B20 se nekalibruje, pokud se nastaví nejvyšší rozlišení, a čidla jsou zaručeně na stejné teplotě (třeba v promíchávané sklenici s vodou) tak rozdíl mezi čidly 0.1°C je fakt hodně. A absolutní přesnost se snadno porovná třeba proti teploměru na člověka, kterej by měl chodit +- 0.2°C, jinak je k ničemu.
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Keď tam nie je 4k7, tak to dojde k 44 *C a potom koniec merania, už len ukazuje 127.7,
ak je teplota vyššia ako 44 *C.
Teraz so správnym odporom som to otestoval od +2 do +50 a vždy načítalo teplotu OK.
Používam podľa datasheetu 130 a 800 ms.
Ja to skor plánujem na ten BMS, už mi došli ATtiny85, čakám na optočleny
a referencie, lebo referencia u nás v obchode stojí 2.5 € a dallas som kupoval za 4.9 €.
Lenže vobec to nechytalo signál, hoci to je 5 m od routera, tak som tam dal parabolu
a už je to OK. Panely majú cca. 40 *C, uvidíme kde sa to dostane na poludnie.
ak je teplota vyššia ako 44 *C.
Teraz so správnym odporom som to otestoval od +2 do +50 a vždy načítalo teplotu OK.
Používam podľa datasheetu 130 a 800 ms.
Ja to skor plánujem na ten BMS, už mi došli ATtiny85, čakám na optočleny
a referencie, lebo referencia u nás v obchode stojí 2.5 € a dallas som kupoval za 4.9 €.
Lenže vobec to nechytalo signál, hoci to je 5 m od routera, tak som tam dal parabolu
a už je to OK. Panely majú cca. 40 *C, uvidíme kde sa to dostane na poludnie.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 7403
- Registrován: sob črc 19, 2014 8:56 pm
- Lokalita: severně od Brna
- Systémové napětí: 48V
- Výkon panelů [Wp]: 8kWp
- Kapacita baterie [kWh]: 12kWh
- Chci prodávat energii: NE
- Chci/Mám dotaci: NE
Re: WeMos D1 WIFI WebServer
kolik bitů máš nastavený rozlišení? Na tohle stačí to nejnižší, pak i ta konverze proběhne rychlej. Zapojení dvoudrát nebo třídrát?
ostrov skoro 8kWp neustále ve stádiu zrodu: smartshunt(ex WBJR), MPPT150/45, MPPT 250/100(ex midnitesolar 150 clasic lite), 16S a různě P cca 340Ah Winston, MP II 5000,( ex Powerjack 8kW, ex samodomo cca 4kW). 48V DC rozvody a spotřebiče.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Kód: Vybrat vše
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}
a dátový je na pin a z pinu pull-up 4k7 na 5 V, lebo na 3.3 V to nešlo vobec.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 3074
- Registrován: stř dub 27, 2016 12:12 am
Re: WeMos D1 WIFI WebServer
Těch +5V potvrzuji. Taky jsem zkoušel DS1820 napájet přes 3.3V a nešlo mi to.
Zapojení mi vždycky chodilo 3 drát, dokonce přesně jak je tady na obrázku: jeden společný pull-up odpor 4k7 a k tomu 3 senzory. Tohle má Dallas krásně vymyšlené, že každý ten senzor má svou vlastní hex adresu a může se jich tak paralelně zapojit celá kopa, aniž by člověk plýtval piny![Smile :)](./images/smilies/icon_e_smile.gif)
Zapojení mi vždycky chodilo 3 drát, dokonce přesně jak je tady na obrázku: jeden společný pull-up odpor 4k7 a k tomu 3 senzory. Tohle má Dallas krásně vymyšlené, že každý ten senzor má svou vlastní hex adresu a může se jich tak paralelně zapojit celá kopa, aniž by člověk plýtval piny
![Smile :)](./images/smilies/icon_e_smile.gif)
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
To isté zapojenie, ten istý program, a jeden senzor ukazuje OK a druhý nie. ![Smile :)](./images/smilies/icon_e_smile.gif)
Keď teplota panelov=senzoru presiahne 44 *C, prestane ukazovať OK a vypisuje 127.7.
![Smile :)](./images/smilies/icon_e_smile.gif)
Keď teplota panelov=senzoru presiahne 44 *C, prestane ukazovať OK a vypisuje 127.7.
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 3074
- Registrován: stř dub 27, 2016 12:12 am
Re: WeMos D1 WIFI WebServer
Rottenkiwi,
No jak se to při vyšší teplotě chová v 3-drátovém zapojení?
No jak se to při vyšší teplotě chová v 3-drátovém zapojení?
Youdova ostrovní laboratoř 20kWp: https://youda.mypower.cz
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Už som na to prišiel
Buď ja alebo mačky prehrýzli jeden drot ![Smile :)](./images/smilies/icon_e_smile.gif)
Idem ho vymeniť a dúfam, že už to pojde OK![Smile :)](./images/smilies/icon_e_smile.gif)
Tak už je to ako mám byť. Teším sa, že už vidím aj teplotu dvoch panelov z 12
a mohol by som zaˇčať robiť ich chladenie.
Lenže stále nemožem rozchodiť nahrávanie programu do Wemosu cez WiFI. ???
![Smile :)](./images/smilies/icon_e_smile.gif)
![Smile :)](./images/smilies/icon_e_smile.gif)
Idem ho vymeniť a dúfam, že už to pojde OK
![Smile :)](./images/smilies/icon_e_smile.gif)
Tak už je to ako mám byť. Teším sa, že už vidím aj teplotu dvoch panelov z 12
a mohol by som zaˇčať robiť ich chladenie.
Lenže stále nemožem rozchodiť nahrávanie programu do Wemosu cez WiFI. ???
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 145
- Registrován: sob pro 07, 2013 5:41 pm
- Bydliště: 8 KM východně od Brna
Re: WeMos D1 WIFI WebServer
Nic si z toho nedělej, ja mam 2x WeMos a ani na jednommi nahravani přes WiFi nejde.
Ale dřív mě to šlo, asi před rokem, dělal řízení a sledování rekuperace, párkrát jsem to po WiFi nahrál.
Ale dřív mě to šlo, asi před rokem, dělal řízení a sledování rekuperace, párkrát jsem to po WiFi nahrál.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Doteraz som mal |Wemos napájaný z powerbanku. Ale moj powerbank sa nabíja
2 dni, tak som to vyriešil DC-DC step-down meničom 35 na 5 V.
Ako sa to bude správať v zime ? Zrazí to napatie panelov ráno o pár V ?
2 dni, tak som to vyriešil DC-DC step-down meničom 35 na 5 V.
Ako sa to bude správať v zime ? Zrazí to napatie panelov ráno o pár V ?
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Kód: Vybrat vše
kiwi@kiwi-P55A-UD5:~$ dmesg | grep usb
[ 0.129399] usbcore: registered new interface driver usbfs
[ 0.129399] usbcore: registered new interface driver hub
[ 0.129399] usbcore: registered new device driver usb
[ 0.920226] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.920227] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.920229] usb usb1: Product: EHCI Host Controller
[ 0.920230] usb usb1: Manufacturer: Linux 4.15.0-32-generic ehci_hcd
[ 0.920231] usb usb1: SerialNumber: 0000:00:1a.0
[ 0.940250] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.940254] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.940257] usb usb2: Product: EHCI Host Controller
[ 0.940259] usb usb2: Manufacturer: Linux 4.15.0-32-generic ehci_hcd
[ 0.940262] usb usb2: SerialNumber: 0000:00:1d.0
[ 0.941094] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[ 0.941095] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.941096] usb usb3: Product: xHCI Host Controller
[ 0.941097] usb usb3: Manufacturer: Linux 4.15.0-32-generic xhci-hcd
[ 0.941098] usb usb3: SerialNumber: 0000:05:00.0
[ 0.944209] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[ 0.944220] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003
[ 0.944222] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 0.944223] usb usb4: Product: xHCI Host Controller
[ 0.944224] usb usb4: Manufacturer: Linux 4.15.0-32-generic xhci-hcd
[ 0.944224] usb usb4: SerialNumber: 0000:05:00.0
[ 1.260015] usb 1-1: new high-speed USB device number 2 using ehci-pci
[ 1.280190] usb 2-1: new high-speed USB device number 2 using ehci-pci
[ 1.416453] usb 1-1: New USB device found, idVendor=8087, idProduct=0020
[ 1.416455] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1.448787] usb 2-1: New USB device found, idVendor=8087, idProduct=0020
[ 1.448789] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1.708045] usb 1-1.4: new low-speed USB device number 3 using ehci-pci
[ 1.736075] usb 2-1.1: new low-speed USB device number 3 using ehci-pci
[ 1.824580] usb 1-1.4: New USB device found, idVendor=258a, idProduct=0001
[ 1.824581] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.824582] usb 1-1.4: Product: USB KEYBOARD
[ 1.824583] usb 1-1.4: Manufacturer: SINO WEALTH
[ 1.839491] usbcore: registered new interface driver usbhid
[ 1.839492] usbhid: USB HID core driver
[ 1.840865] input: SINO WEALTH USB KEYBOARD as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:258A:0001.0001/input/input3
[ 1.853554] usb 2-1.1: New USB device found, idVendor=1a81, idProduct=1705
[ 1.853556] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 1.853557] usb 2-1.1: Product: Wireless Mouse
[ 1.853558] usb 2-1.1: Manufacturer: KYE
[ 1.862112] input: KYE Wireless Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:1A81:1705.0003/input/input4
[ 1.900135] hid-generic 0003:258A:0001.0001: input,hidraw0: USB HID v1.10 Keyboard [SINO WEALTH USB KEYBOARD] on usb-0000:00:1a.0-1.4/input0
[ 1.900273] input: SINO WEALTH USB KEYBOARD as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.4/1-1.4:1.1/0003:258A:0001.0002/input/input5
[ 1.960304] hid-generic 0003:1A81:1705.0003: input,hiddev0,hidraw1: USB HID v1.11 Mouse [KYE Wireless Mouse] on usb-0000:00:1d.0-1.1/input0
[ 2.020159] hid-generic 0003:258A:0001.0002: input,hiddev1,hidraw2: USB HID v1.10 Device [SINO WEALTH USB KEYBOARD] on usb-0000:00:1a.0-1.4/input1
[ 4.610355] audit: type=1400 audit(1534616802.839:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/sbin/ippusbxd" pid=788 comm="apparmor_parser"
kiwi@kiwi-P55A-UD5:~$ lsusb
Bus 002 Device 003: ID 1a81:1705 Holtek Semiconductor, Inc.
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 258a:0001
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
kiwi@kiwi-P55A-UD5:~$ lsusb
Bus 002 Device 004: ID 258a:0001
Bus 002 Device 003: ID 1a81:1705 Holtek Semiconductor, Inc.
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
kiwi@kiwi-P55A-UD5:~$ dmesg | grep ttyS
[ 0.897092] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
kiwi@kiwi-P55A-UD5:~$ dmesg | grep ttyS0
[ 0.897092] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
kiwi@kiwi-P55A-UD5:~$ dmesg | grep ttyS1
kiwi@kiwi-P55A-UD5:~$ dmesg | grep ttyS2
kiwi@kiwi-P55A-UD5:~$ dmesg | grep ttyS3
kiwi@kiwi-P55A-UD5:~$ dmesg | grep ttyS
dostať program do Wemos-u D1. Stále tá istá chyba. espcomm_open failed
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Tak včera mi to nešlo kvoli káblu. Tu je vyčítanie z dvoch ds18b20 a zobrazenie cez Wemos D1,
ale určite to pojde na hocijakom ESP8266. Keďže je to cez AJAX, tak možete si tam nastaviť
obnovu napr. 500 alebo 2000 ms, resp. poslať aj iné dáta okrem teploty.
ale určite to pojde na hocijakom ESP8266. Keďže je to cez AJAX, tak možete si tam nastaviť
obnovu napr. 500 alebo 2000 ms, resp. poslať aj iné dáta okrem teploty.
Kód: Vybrat vše
#include <OneWire.h>
#include <ESP8266WiFi.h>
//#include <DallasTemperature.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
const char* ssid = "guest";
const char* password = "00000000";
OneWire ds (D8);
OneWire ds_2 (D6);
//DallasTemperature sensor(&oneWire);
String myHTML = "";
String XML;
ESP8266WebServer server(80);
const int led = BUILTIN_LED;
float teplota;
void handleNotFound(){
digitalWrite(led, 1);
String message = "File Not Found\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET)?"GET":"POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i=0; i<server.args(); i++){
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
digitalWrite(led, 0);
}
float Get_temp_0 ()
{
float celsius = 25.2;
return celsius;
}
float Get_temp_1 ()
{
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius;
if ( !ds.search(addr)) {
Serial.println("No more addresses.");
Serial.println();
ds.reset_search();
delay(130);
return -33.3;
}
Serial.print("ROM =");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -33.2;
}
Serial.println();
// the first ROM byte indicates which chip
switch (addr[0]) {
case 0x10:
Serial.println(" Chip = DS18S20"); // or old DS1820
type_s = 1;
break;
case 0x28:
Serial.println(" Chip = DS18B20");
type_s = 0;
break;
case 0x22:
Serial.println(" Chip = DS1822");
type_s = 0;
break;
default:
Serial.println("Device is not a DS18x20 family device.");
return -33.1;
};
ds.reset();
ds.select(addr);
ds.write(0x44, 1); // start conversion, with parasite power on at the end
// wait to see if a reply is available
delay(790);
// maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
Serial.print(" Data = ");
Serial.print(present, HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print(OneWire::crc8(data, 8), HEX);
Serial.println();
// Convert the data to actual temperature
// because the result is a 16 bit signed integer, it should
// be stored to an "int16_t" type, which is always 16 bits
// even when compiled on a 32 bit processor.
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)(raw / 16.0);
/*
Serial.print(" Temperature = ");
Serial.print(celsius);
Serial.print(" Celsius, ");
Serial.print(fahrenheit);
Serial.println(" Fahrenheit");
*/
return celsius;
}
float Get_temp_2 ()
{
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius;
if ( !ds_2.search(addr)) {
Serial.println("No more addresses.");
Serial.println();
ds_2.reset_search();
delay(130);
return -33.3;
}
Serial.print("ROM =");
for( i = 0; i < 8; i++) {
Serial.write(' ');
Serial.print(addr[i], HEX);
}
if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println("CRC is not valid!");
return -33.2;
}
Serial.println();
// the first ROM byte indicates which chip
switch (addr[0]) {
case 0x10:
Serial.println(" Chip = DS18S20"); // or old DS1820
type_s = 1;
break;
case 0x28:
Serial.println(" Chip = DS18B20");
type_s = 0;
break;
case 0x22:
Serial.println(" Chip = DS1822");
type_s = 0;
break;
default:
Serial.println("Device is not a DS18x20 family device.");
return -33.1;
};
ds_2.reset();
ds_2.select(addr);
ds_2.write(0x44, 1); // start conversion, with parasite power on at the end
// wait to see if a reply is available
delay(760);
// maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds_2.reset();
ds_2.select(addr);
ds_2.write(0xBE); // Read Scratchpad
Serial.print(" Data = ");
Serial.print(present, HEX);
Serial.print(" ");
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds_2.read();
Serial.print(data[i], HEX);
Serial.print(" ");
}
Serial.print(" CRC=");
Serial.print(OneWire::crc8(data, 8), HEX);
Serial.println();
// Convert the data to actual temperature
// because the result is a 16 bit signed integer, it should
// be stored to an "int16_t" type, which is always 16 bits
// even when compiled on a 32 bit processor.
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// "count remain" gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 - data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let's zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)(raw / 16.0);
/*
Serial.print(" Temperature = ");
Serial.print(celsius);
Serial.print(" Celsius, ");
Serial.print(fahrenheit);
Serial.println(" Fahrenheit");
*/
return celsius;
}
void generateHTML(){
myHTML="<!DOCTYPE HTML>\n";
myHTML +="<html>\n";
myHTML += " <head>\n";
myHTML += "<script type=\"text/javascript\" src=\"https://www.gstatic.com/charts/loader.js\"></script>\n";
myHTML += " <script type=\"text/javascript\">\n";
myHTML += " var IP = \"192.168.1.12\";\n";
myHTML += " var temp_1 = 10;\n";
myHTML += " var temp_2 = 20;\n";
myHTML += " google.charts.load('current', {'packages':['gauge']});\n";
myHTML += " google.charts.setOnLoadCallback(drawChart_1);\n";
myHTML += " function drawChart_1() {\n";
myHTML += " nocache = \"&nocache=\" + Math.random() * 1000000;\n";
myHTML += " var data1 = google.visualization.arrayToDataTable([\n";
myHTML += " ['Label', 'Value'],\n";
myHTML += " ['Teplota', temp_1]\n";
myHTML += " ]);\n";
myHTML += " var options1 = {\n";
myHTML += " width: 400, height: 400,\n";
myHTML += " blueFrom: 30, blueTo: 40,\n";
myHTML += " redFrom: 90, redTo: 100,\n";
myHTML += " yellowFrom:70, yellowTo: 90,\n";
myHTML += " greenFrom: 40, greenTo: 50,\n";
myHTML += " minorTicks: 5\n";
myHTML += " };\n";
myHTML += " var chart = new google.visualization.Gauge(document.getElementById('chart_div_1'));\n";
myHTML += " chart.draw ( data1, options1 );\n";
myHTML += " setInterval ( function () {\n";
myHTML += " Act_1 ();\n";
myHTML += " data1.setValue ( 0, 1, temp_1 );\n";
myHTML += " chart.draw ( data1, options1 );\n";
myHTML += " } ,2000 );\n";
myHTML += " }\n";
myHTML += " google.charts.setOnLoadCallback(drawChart_2);\n";
myHTML += " function drawChart_2() {\n";
myHTML += " nocache = \"&nocache=\" + Math.random() * 1000000;\n";
myHTML += " var data2 = google.visualization.arrayToDataTable([\n";
myHTML += " ['Label', 'Value'],\n";
myHTML += " ['Teplota', temp_2]\n";
myHTML += " \n";
myHTML += " ]);\n";
myHTML += " var options2 = {\n";
myHTML += " width: 400, height: 400,\n";
myHTML += " greenFrom: 20, greenTo: 25,\n";
myHTML += " redFrom: 90, redTo: 100,\n";
myHTML += " yellowFrom:75, yellowTo: 90,\n";
myHTML += " minorTicks: 5\n";
myHTML += " };\n";
myHTML += " var chart = new google.visualization.Gauge(document.getElementById('chart_div_2'));\n";
myHTML += " chart.draw ( data2, options2 );\n";
myHTML += " setInterval ( function () {\n";
myHTML += " Act_2 ();\n";
myHTML += " data2.setValue ( 0, 1, temp_2 );\n";
myHTML += " chart.draw ( data2, options2 );\n";
myHTML += " } ,2000 );\n";
myHTML += " }\n";
myHTML += " function Act_1() {\n";
myHTML += " var xmlhttp = new XMLHttpRequest();\n";
myHTML += " xmlhttp.onreadystatechange = function() {\n";
myHTML += " if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {\n";
myHTML += " temp_1 = xmlhttp.responseXML.getElementsByTagName('response')[0].childNodes[0].nodeValue;\n";
myHTML += " }\n";
myHTML += " }\n";
myHTML += " xmlhttp.open(\"GET\", \"/act1\", true);\n";
myHTML += " xmlhttp.send(null);\n";
myHTML += " }\n";
myHTML += " function Act_2() {\n";
myHTML += " var xmlhttp = new XMLHttpRequest();\n";
myHTML += " xmlhttp.onreadystatechange = function() {\n";
myHTML += " if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {\n";
myHTML += " temp_2 = xmlhttp.responseXML.getElementsByTagName('response')[0].childNodes[0].nodeValue;\n";
myHTML += " }\n";
myHTML += " }\n";
myHTML += " xmlhttp.open(\"GET\", \"/act2\", true);\n";
myHTML += " xmlhttp.send(null);\n";
myHTML += " }\n";
myHTML += " </script>\n";
myHTML += " </head>\n";
myHTML += " <body onload=\"drawChart_1()\">\n";
myHTML += " <div id=\"chart_div_1\" style=\"width: 400px; height: 400px;\"></div>\n";
myHTML += " <div id=\"chart_div_2\" style=\"width: 400px; height: 400px;\"></div>\n";
myHTML += " </body>\n";
myHTML += "</html>\n";
//myHTML += " document.getElementById('chart_div_2').innerHTML=xmlhttp.responseXML.getElementsByTagName('response')[0].childNodes[0].nodeValue;\n";
//myHTML += " document.getElementById('chart_div_1').innerHTML=xmlhttp.responseXML.getElementsByTagName('response')[0].childNodes[0].nodeValue;\n"
}
void buildXML_1(){
XML="<?xml version=\"1.0\"?>\n";
XML+="<response>";
XML+= String(Get_temp_1 (),1);
XML+="</response>\n";
}
void buildXML_2(){
XML="<?xml version=\"1.0\"?>\n";
XML+="<response>";
XML+= String(Get_temp_2 (),1);
XML+="</response>\n";
}
void handleAct1 (){
buildXML_1();
server.send(200,"text/xml",XML);
//server.send(200, "text/plain", String(Get_temp_1 (),1) );
//DBG_OUTPUT_PORT.print(message);
}
void handleAct2 (){
buildXML_2();
server.send(200,"text/xml",XML);
//server.send(200, "text/plain", String(Get_temp_2 (),1) );
//DBG_OUTPUT_PORT.print(message);
}
void handleRoot() {
//sensor.requestTemperatures();
server.send(200, "text/plain", String(Get_temp_1 (),1) );
}
void handleWebsite(){
generateHTML();
server.send(200,"text/html",myHTML);
}
/*
void handleRoot() {
sensor.requestTemperatures();
server.send(200, "text/plain", String(sensor.getTempCByIndex(0), 1));
}
void handleRoot() {
digitalWrite(led, 1);
Serial.println();
String message = "";
message += server.args();
message += "\n";
for (uint8_t i=0; i<server.args(); i++){
message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
}
Serial.println(message);
if (server.args()==0)
{
generateHTML();
server.send(200, "text/html", myHTML);
}
else
{}
digitalWrite(led, 0);
}
*/
void setup(void){
//sensor.begin();
pinMode(led, OUTPUT);
digitalWrite(led, 0);
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("");
// Wait for connection
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
server.on("/", handleWebsite);
server.on("/act1", handleAct1);
server.on("/act2", handleAct2);
//server.on("/edit", HTTP_PUT, handleCreate);
// server.on("/inline", [](){server.send(200, "text/plain", "this works as well");});
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
}
void loop(void){
server.handleClient();
}
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Příspěvky: 5451
- Registrován: pát úno 13, 2015 2:24 pm
- Lokalita: SO, SK
- Bydliště: SO, SK
Re: WeMos D1 WIFI WebServer
Doplnil som do Wemos-u meranie napatia bateriek 18650, aby som ich vedel dobiť.
Lenže potreboval by som ešte merať napatie panelov, ale to má len jeden A0 pin.
Ako to multiplexovať ?
Lenže potreboval by som ešte merať napatie panelov, ale to má len jeden A0 pin.
Ako to multiplexovať ?
DC-AC inverter REC Lion DC-AC ESP32 DIY inv. 15 GB za sekundu DIY MPPT Holder
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
Zjedz vsetko, co si kupil, v obchode a netreba ti tasku, auto ci chladnicku.
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 3 Odpovědi
- 533 Zobrazení
-
Poslední příspěvek od Solarnoob
-
- 1 Odpovědi
- 701 Zobrazení
-
Poslední příspěvek od antoni_sk
-
- 3 Odpovědi
- 1129 Zobrazení
-
Poslední příspěvek od zovo
-
- 2 Odpovědi
- 747 Zobrazení
-
Poslední příspěvek od skopec
-
-
Vyčítanie dát z regulátora Epsolar cez wifi eBox-WIFI-01
od antoni_sk » » v Automatizace, měření, statistiky
Vyčítanie dát z regulátora Epsolar cez wifi eBox-WIFI-01
- 157 Odpovědi
- 20620 Zobrazení
-
Poslední příspěvek od Forrest
-