Fórum | MyPower.CZ | Obnovitelné zdroje energie - energetická soběstačnost | Právě je sob črc 21, 2018 11:00 am


WeMos D1 WIFI WebServer

Automatizace, řízení, měření, logování a programování s využitím platformy Arduino.

WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » ned črc 08, 2018 11:54 am

Zaujímavá vecička ten WeMos. Dá sa to napr. využiť na WiFi meranie teploty pomocou
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();
}

Přílohy
WeMos_D1_Temp_Gauge.jpg
WeMos_D1.jpg
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1514
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: WeMos D1 WIFI WebServer

Příspěvekod kodl69 » ned črc 08, 2018 1:03 pm

jo, je to esp8266 na desce imitující arduino.
tady mám třeba "bazéntermostat" což je použitelný i pro fototermiku:
bazentermostat.png
bazentermostat.png (7.08 KiB) Zobrazeno 470 krát

bazetermsch.png

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 3000Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2465
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 169

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » úte črc 10, 2018 4:35 pm

Už sa mi to rozbehlo. Len ma zaujíma ako pripevniť Dallas DS1820 na panely
a ako ju presne nakalibrovať.
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1514
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: WeMos D1 WIFI WebServer

Příspěvekod youda » úte črc 10, 2018 4:40 pm

rottenkiwi píše:Už sa mi to rozbehlo. Len ma zaujíma ako pripevniť Dallas DS1820 na panely
a ako ju presne nakalibrovať.


Co třeba přilepit to tavným lepidlem?
Měl jsem 3xDS1820 k jednomu arduinu současně a rozcházely se mi jen +- 1°C
Uživatelský avatar
youda
 
Příspěvky: 323
Registrován: úte dub 26, 2016 11:12 pm
Reputation: 34

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » úte črc 10, 2018 6:48 pm

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 ?
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1514
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: WeMos D1 WIFI WebServer

Příspěvekod youda » úte črc 10, 2018 8:17 pm

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.
Uživatelský avatar
youda
 
Příspěvky: 323
Registrován: úte dub 26, 2016 11:12 pm
Reputation: 34

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » úte črc 10, 2018 9:19 pm

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.
Přílohy
gauge_1_2_II.jpg
gauge_1_2_I.jpg
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1514
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: WeMos D1 WIFI WebServer

Příspěvekod kodl69 » stř črc 11, 2018 12:05 am

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.
ostrov 3000Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2465
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 169

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » stř črc 11, 2018 7:37 am

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.
Přílohy
gauge_temp.jpg
gauge_1_2_parabola.jpg
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1514
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: WeMos D1 WIFI WebServer

Příspěvekod kodl69 » stř črc 11, 2018 8:45 am

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 3000Wp neustále ve stádiu zrodu: 6x noark CHSM6610P250, 6x250Wp z I4wifi, 4x auria 120Wp, midnite classic 150 lite+whizbang jr., 16S a různě P cca 300Ah Winston, Powerjack 8kW (reálně 6kW po úpravě). 48V DC rozvody a spotřebiče.
kodl69
 
Příspěvky: 2465
Registrován: sob črc 19, 2014 7:56 pm
Reputation: 169

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » stř črc 11, 2018 9:07 am

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
      }


Vyčítavam to týmto kódom. Pripojené je to cez 3 droty, ale dva sú na Arduine napojené na GND
a dátový je na pin a z pinu pull-up 4k7 na 5 V, lebo na 3.3 V to nešlo vobec.
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1514
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: WeMos D1 WIFI WebServer

Příspěvekod youda » stř črc 11, 2018 9:18 am

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 :)

DS1820 bus.jpg
Uživatelský avatar
youda
 
Příspěvky: 323
Registrován: úte dub 26, 2016 11:12 pm
Reputation: 34

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » stř črc 11, 2018 9:39 am

To isté zapojenie, ten istý program, a jeden senzor ukazuje OK a druhý nie. :)
Keď teplota panelov=senzoru presiahne 44 *C, prestane ukazovať OK a vypisuje 127.7.
Přílohy
gauge_temp_127.jpg
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1514
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: WeMos D1 WIFI WebServer

Příspěvekod youda » stř črc 11, 2018 10:02 am

Rottenkiwi,
No jak se to při vyšší teplotě chová v 3-drátovém zapojení?
Uživatelský avatar
youda
 
Příspěvky: 323
Registrován: úte dub 26, 2016 11:12 pm
Reputation: 34

Re: WeMos D1 WIFI WebServer

Příspěvekod rottenkiwi » stř črc 11, 2018 10:10 am

Už som na to prišiel :) Buď ja alebo mačky prehrýzli jeden drot :)
Idem ho vymeniť a dúfam, že už to pojde OK :)
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. ???
Přílohy
gauge_all_OK.png
BTC: 1LWBcqUCX4UiTgzxTmsfyL83KG8DQiq2gd LTC: LX4UmmYHzT293zcJJ4BjTcPTRSHoLWLDn7
Vodík LiFePO charge BMS SEI formation Float IBM Quantum NREL eff. 787 Dreamliner Issue Rado Danilák Online-monitoring
Uživatelský avatar
rottenkiwi
 
Příspěvky: 1514
Registrován: pát úno 13, 2015 2:24 pm
Bydliště: SO, SK
Reputation: 59

Re: WeMos D1 WIFI WebServer

Příspěvekod petrzobran » stř črc 11, 2018 4:41 pm

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.
Uživatelský avatar
petrzobran
 
Příspěvky: 117
Registrován: sob pro 07, 2013 5:41 pm
Bydliště: 8 KM východně od Brna
Reputation: 4


Zpět na Arduino

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

cron
Reputation System ©'