luni, 3 iulie 2017

Programare Sonoff cu ESPeasy pentru lucrul cu Domoticz

Un impediment in calea automatizarilor este partea de hardware, fie nu poate fi realizata din cauza lipsei experientei, fie din cauza lipsei de timp etc. In articolele anterioare am scris despre ESP8266 - un microcontroler ieftin cu WiFi incorporat.

Sunt tot felul de placi cu ESP8266, Wemos, NodeMCU, ESP01..12 etc. Toate permit diverse incercari, insa nu poti face ceva fiabil cu fire de test si breadboard, ar trebui macar pus pe un cablaj de test, o lipitura cu cositor este mult mai fiabila decat un fir infipt intr-un soclu.

Automatizarile au puncte relativ comune, de aceea putem folosi diverse module gata construite care au ESP8266 si un releu, un senzor, un buton etc.

O varianta ieftina vine de la itead.cc : dispozitivele Sonoff. Sunt "cutii" in care gasim o placa electronica cu ESP8266 si cu un releu, un LED, conector pt senzor temperatura si umiditate etc. Pretul este foarte bun, verificati pagina itead.cc.




Ca sa folosesti Sonoff direct, fara modificari, iti faci cont la ei pe site, iti instalezi pe smartphone aplicatia eWeLink, instalezi cutia Sonoff acasa si prin reteaua WiFi vei avea Internet of Things in cateva minute.

Dar nu despre asta doresc sa scriu aici, ci depsre cum folosim aceste dispozitive Sonoff pe propria noastra infrastructura IoT. Am instalat Domoticz pe un Raspberry Pi, am aplicatia Domoticz pe smartphone.




Aplcatii Internet of Things: dorim sa pornim sau sa oprim clima de pe smartphone, dorim sa stingem sau sa aprindem un bec, dorim aceste actiuni sa se petreaca atunci cand avem indeplinite niste conditii etc. Ne lipseste exact partea hardware, dar folosim aceste dispozitive Sonoff. Insa trebuie sa le programam cu ceva ce controlam noi: ESPeasy.

Dam jos ESPtool de la ESPeasy (pe pagina https://www.letscontrolit.com/wiki/index.php/ESPEasy#Loading_firmware gasim "Loading firmware" -> http://www.letscontrolit.com/downloads/ESPEasy_R120.zip).



Deschidem carcasa Sonoff (aici vorbim de cel mai simplu model, cel cu un releu, buton si un LED), lipim un header cu 5 pini.






Programarea o facem fara sa conectam la 220Vac Sonoff, mare atentie!!! Va puteti praji pe voi, calculatorul etc.

Headerul cu 5 pini de la Sonoff are semnalele indicate intr-una din imaginile de mai sus.

Conectam la calculator un convertor USB - serial, cel pt semnale de 3V3 (ESP8266 foloseste logica la 3V3, nu la 5V). Daca e posibil, alimentam 3V3 din cenvertor, daca nu, alimentam 3V3 de la o sursa externa. Daca e alimentat corect, LEDul verde clipeste.

Deci Sonoff este conectat pe serial la calculator si Sonoff este alimentat extern cu 3V3 (3V3 si GND).

Rx de la Sonoff merge la Tx de la convertorul USB - serial, Tx de la Sonoff merge la Rx de la convertor.

Mai trebuie sa punem Sonoff in modul de programat memoria flash, pt asta eu am folosit o penseta ca sa conectez pinul de la dioda cu pinul de la rezistor. (pui virfurile pensetei pe acele 2 puncte si tii acolo, apoi conectezi alimentarea de 3V3 la Sonoff). Poti de asemenea sa lipesti un fir intre cele 2 puncte.





Pe calculator gasesti ce port a fost alocat convertorului USB - serial, apoi deschizi aplicatia ESPtool , cu aceasta aplaicatie vom programa ESPeasy in ESP8266. Aplicatia doreste sa stie portul serial alocat (la mine a fost 10 (de la COM10)), dimensiunea memoriei flash (Sonoff are 1024), versiunea ESPeasy (in cazul meu 120 (de la R120)).












Daca apar erori la programare, e posibil ca Rx si Tx sa fie inversate, dupa legatura corecta, trebuie sa mearga. In timpul programarii, trebuie tinuta penseta pe cele 2 puncte de pe placa. Un modul Sonoff nou cand este alimentat, are LEDul verde clipitor, cand este in modul de programare, acel LED nu mai clipeste!



Programarea dureaza aproximativ un minut, nu uitati sa tineti penseta intre cele 2 puncte! Dupa programare, deconectam cablurile de la Sonoff, apoi bagam placa la loc in carcasa, inchidem carcasa.

Dupa programarea Sonoff cu ESPeasy, legam la cutia Sonoff un cablu izolat cu stecher de priza de 220Vac.
Pe carcasa Sonoff avem marcate faza si nulul, eu am marcat faza si nulul si pe stecher, apoi am verificat in priza care e faza si nulul si am bagat stecherul respectand aceste marcaje.






Am bagat cablul in priza, nu a iesit fum din cutia Sonoff :)




Pe calculator, cautam printre retelele WiFi un SSID "ESP_0", ne conectam la el, parola WiFi este configesp.



Apoi in browser, mergem la 192.168.4.1.



Se deschide o interfata web unde specificam SSIDul si parola retelei noastre WiFi, ca sa permitem Sonoff sa se conecteze la aceasta. Dupa care Sonoff primeste un IP din reteaua noastra, ne conectam la reteaua WiFi de acasa, apoi la noul IP si incepem sa configuram ESPeasy de pe Sonoff.



Pe Sonoff basic, cel mai simplu si cel mai ieftin model, avem urmatoarele GPIOuri la dispozitia noastra, trebuie sa tinem seama cand setam ESPeasy:

GPIO13 - aici este conectat LEDul verde, semnal logic LOW il aprinde

GPIO12 - aici avem legat releul, semnal logic HIGH il anclaseaza

GPIO0 - aici avem legat butonul, cand il apasam, generam un semnal logic LOW

GPIO14 -aici nu avem conectat nimic, gasim acest GPIO liber, pe conectorul header de 5 pini (cel lipit de noi)

 

(Schema cutiei Sonoff simplu: https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf)

Domoticz, ESP8266 si ESPeasy permit sa facem o sumedenie de automatizari prin casa, tine de nevoile si imaginatia fiecaruia. Detalii gasiti pe Internet, nu detaliez aici.

luni, 26 iunie 2017

debug MQTT pe ESP8266, Domoticz si Raspberry Pi

Intr-un articol precedent am prezentat cum se trimit date de la un senzor cu ESP8266 catre serverul Domoticz, prin WiFi. Datele erau trimise prin MQTT, folosind brokerul MQTT mosquitto.

Daca spre exemplu avem o problema pe partea de MQTT si vrem sa o corectam, trebuie sa facem cumva sa vedem mesajele MQTT.

Dupa ce am instalat pe Rasberry Pi brokerul MQTT si clientul MQTT (apt-get install mosquitto mosquitto-clients), putem verifica functionarea brokerului:

-deschidem 2 ferestre PuTTY unde ne conectam la RPi (SSH)
-intr-una rulam  mosquitto_sub ca sa ne abonam la un topic si sa vedem mesajele



-in cea de-a doua rulam mosquitto_pub cu care publicam mesaje pe un anumit topic



Asa ne asiguram ca brokerul MQTT mosquitto functioneaza.

Dacalinia de comanda sperie lumea, un alt program interesant este MQTT.fx, are interfata grafica, este facut in Java si poti vedea ce se petrece pe MQTT. Publici si vezi mesaje, poti seta multi parametri ai conexiunii, te poti abona la multe topicuri etc.

E fain ca poti selecta cum sa vezi continutul mesajelor, spre exemplu JSON:




joi, 22 iunie 2017

ESP8266 MQTT Arduino Domoticz - home automation

Intr-un articol precedent am pus cateva detalii despre automatizarea casei, despre cipul cu WiFi integrat si pret mic ESP8266 (Domoticz, IoT si casa inteligenta).

De cand cipul ESP8266 a fost integrat in Arduino IDE, au aparut o multime de aplicatii, de automatizari, iar viata constructorului amator electronist :) s-a simplificat uimitor. Unii chiar folosesc acest cip ESP8266 fara partea lui de WiFi doar pt ca ofera putere de procesare la un pret mic.

Ideea cu automatizarea casei e simpla si te poate scapa de timpul pierdut pt diverse sarcini, timp care se aduna, iar daca aduni 1 minut de 60 de ori, iti iese numai bine o ora, ora pe care o petreci cu cei dragi:
-am un cip care citeste senzori si trimite datele prin reteaua deja existenta (aproape) in fiecare casa - cam fiecare casa are un ruter WiFi, deci o retea WiFi.
-acelasi cip poate primi comenzi prin aceeasi retea WiFi si poate actiona diverse relee, motorase, trimite comenzi prin infrarosu etc. Deci cipul ne spune diverse informatii si / sau asculta si executa comenzi. (sau poate executa local comenzi ifd informatiile pe care le are de la senzori).
 
-informatiile ajung la un sistem care le stocheaza si care poate decide ifd informatiile primite.

De exemplu:
-scade temperatura in casa sub 17 grade C (informatie de la senzori), se decide pornirea caldurii
-creste tempreatura peste 25 de grade C, se decide pornirea aerului conditionat si inchiderea jaluzelelor
-s-a detectat umiditate pe podea in subsol - o potentiala inundatie, se decide oprirea apei reci / calde si oprirea alimentarii cu energie electrica a subsolului   +  trimiterea unui SMS si email cu mesajul ca e o problema
 -contorul de gaz, cel de energie electrica, cel de apa rece sunt inregistrate local si poti analiza consumurile, le poti corela cu inregistrari de temperarura, poti intelege cum consumi si eventual poti lua masuri sa consumi cu cap, nu sa consumi aiurea doar pt ca iti permiti sa platesti sau ca ai de unde consuma - trebuie sa ai un dram de minte in plus de la tehnologie
-poti sa controlezi luminile in casa, sa ai detalii despre starea usilor, a geamurilor etc - un fel de sistem de alarmare
-sistemul de udat gazonul sau gradina pot fi automatizate complex, ifd de ora, temperatura, umiditatea solului etc (sau poti comanda tu de pe smart phone sa il uzi ATUNCI)
etc
etc

Sa vedem cum arata acest sistem:


Cipul (microcontrolerul cu WiFi) ESP8266 citeste datele de la senzori
Trimite datele prin WiFi catre un IP / port din LAN
Datele ajung la routerul WiFi
Routerul le da mai departe catre IP-ul specificat din LAN
Datele ajung la Raspberry Pi (RPi) unde ruleaza oaplicatie / server
RPi trimite datele aplicatiei cu portul specificat la inceput - aplicatia aleasa de mine este Domoticz - sever de home automation

Pentru a trimite date intre dispozitive cu putere de procesare redusa si pentru a nu consuma energie, a fost inventat un stardard - MQTT

Datele de la dispozitive sunt trimise unui broker MQTT intr-un format agreat. Dispozitivul publica (publish) datele pe broker pentru un anumit flux de date (topic). Daca dorim sa citim datele de la brokerul MQTT, trebuie sa ne abonam (subscribe) la broker si la un anumit flux de date (topic)

De exemplu un topic ar fi /sufragerie/temperatura/
Dispozitivul publica datele catre brokerul MQTT: /sufragerie/temperatura/20
Brokerul MQTT preia datele si le pune la dispozitia tuturor celor abonati (subscribed) acestui topic.

Un broker popular de MQTT este mosquitto. Datele de la broker sunt volatile, adica brokerul le publica dar nu le stocheaza, nu le proceseaza.

Daca dorim stocarea acestor date sau prelucrarea lor, trebuie sa folosim o aplicatie care se aboneaza la un topic si datele primite acolo le va stoca undeva, intr-o baza de date de exemplu. Din acest motiv am utilizat un server de automatizari - Domoticz. Domoticz se aboneaza la brokerul MQTT mosquitto si cand primeste date de la ESP8266, le scrie in baza de date. De acolo datele pot fi vizualizate in grafice, pe perioade de timp etc.

Instalare Domoticz pe Raspberry Pi
Instalare broker MQTT mosquitto pe Raspberry Pi

Acum vine partea de programare, sperietoarea tutror :). Din fericire, domeniul de home automation, Arduino si ESP8266 sunt niste chestii foarte populare printre constructorii amatori, asa ca, unii mai priceputi, au pus la punct ceva minunat, anume Easy ESP sau ESP Easy, nu mai stiu exact - vezi Let's Control It - ESP Easy.

E vorba de un soft care programat pe ESP8266 te ajuta sa configurezi ESPul dintr-o interfata grafica, din browserul de Internet, ce poti sa iti doresti mai mult :)

De aceea, pe ESP8266 am programat softul ESPeasy.

ESPeasy se gaseste pe GitHub si se compileaza / programeaza in Arduino IDE, programarea e simpla, urmati pasii de pe Let's Control It.

Pentru programarea ESPeasy versiunea R120 sub Arduino 1.8.3, trebuie ca biblioteca de functii "IRremoteESP8266 by Sebastien Warin, Mark Szabo..." sa fie versiunea 1.1.1, ultima versiune da eroare la compilare, probabil ca e ceva trivial de rezolvat, insa nu am avut timp de asa ceva.

Biblioteca de functii "IRremoteESP8266 by Sebastien Warin, Mark Szabo..." 
sa fie versiunea 1.1.1

Setari in Arduino IDE pentru un modul ESP8266 generic 
(verificat pe ESP-07)


Senzorii mei fiind afara si mai ales fara alimentare de la retea, ESPeasy e pe baterii (acumulatori litiu, 18650). Partea buna e ca in ESPeasy e optiune de functionare in mod de deepsleep, ceea ce prelungeste viata unui ESP8266 pe baterii la cateva luni chiar.

De asemenea am modificat acest soft (versiunea R120) pe baza celor gasite online si imi afiseaza starea bateriei (ESPeasy starea bateriei), asa pot sa stiu daca ma lasa bateria / acumulatorul, daca se incarca etc.


Putem lega la ESP8266 un senzor digital de temperatura DS18B20, apoi configuram ESPeasy sa il citeasca si sa trimita datele la Domoticz (prin MQTT) (tutorial Domoticz, ESPeasy si DS18B20)


Daca rulam ESPeasy acasa, in LAN, este ok dpdv al sigurantei, daca vrem acces din afara, din Internet, trebuie sa ne asiguram ca Domoticz este securizat (SSL, TLS) si ca ESP8266 foloseste aceasta autentificare, altfel ne expunem la riscuri.

Daca ai ajuns pina aici, daca ai reusit sa instalezi pe Rasberry Pi si sa programezi ESP8266, atunci deja ai pus temelia pentru un sistem care poate fi complex si util :)

(cele scrise mai sus nu se doresc a fi un tutorial pas cu pas pentru incepatori care aud acum prima data de Arduino, Rasberry Pi si microcontrollere, am incercat doar sa prezint o imagine globala asupra a ceea ce avem la dispozitie acum in 2017. Pentru orice intrebare, stiu pe cineva care a deschis un site unde se pot afla multe raspunsuri - google.com :) )

vineri, 16 iunie 2017

ESP8266 outdoor module solar powered - Domoticz, MQTT

English:
I put together a device for outdoor use: it is based on ESP8266 (in fact ESP-07 module) to send various environmental measurements over WiFi.
This device is powered from a Lithium element recovered from a laptop battery (18650 unprotected element). Also the device has a small solar cell to harvest energy during sun hours and to store it on the 18650 Lithium element to be used over the night.
The device is sending data in JSON format to an MQTT local broker on a Raspberry Pi clone board.
The device can measure the voltage on the battery (voltage divider), can use I2C, OneWire and so on - various sensors.
For the moment I can share some pictures and the code which is sending the ADC value (corresponding to the voltage on the 18650 battery). The PCB was not the greatest PCB done with toner transfer method, but I'll improve.
On the same Raspberry Pi clone, I run Domoticz home automation server to log data in a database. Domoticz, among many other wonderful things, can plot data in a nice looking format. I logged for instance the ADC read values from the moment I put there a fresh charged 18650 battery until the moment the battery was depleted, every 5 minutes I had a value read and sent to MQTT broker, then Domoticz plotted the values.
Arduino code is not my personal creation, I compiled code from a few sources, unfortunately I did not keep the track of these sources.
Below, at the end, you can see the plot of the logged data from the battery voltage (actually the readings from the ADC). It is interesting to see that while charging is complete, the battery management system will disconnect the 18650 battery, ESP8266 will start consumuing the power from the battery, when the voltage < 4.2V, charging will start again, therefore the saw tooth plot.


****************************************
Romana:
Am construit un aparat care poate fi utilizat in mediul natural: foloseste cipul ESP8266 (un modul ESP-07). Acest aparat trimite valorile diversilor parametri de mediu prin WiFi.
Aparatul este alimentat de la un element cu litiu 18650 recuperat dintr-un acumulator de laptop. De asemenea aparatul are un panou solar care incarca acumulatorul cu litiu.
Datele trimise de aparat sunt in format JSON si merg catre un broker local MQTT instalat pe o clona de placa Raspberry Pi.
Aparatul poate masura tensiunea de pe acumulator (cu un divizor rezistiv), poate utiliza senzori diversi (I2C, OneWire etc).
Pentru moment am doar poze cu aparatul si cod care trimite valoarea ADC (corespunzatoare tensiunii de la acumulator). Cablajul imprimat nu este bine realizat, e metoda cu transfer termic, insa invat si o voi imbunatati.
Pe clona Raspberry Pi ruleaza un server de home automation Domoticz care ia datele de la brokerul local MQTT si le afiseaza intr-un grafic (Domoticz poate face mai multe de atat).
Codul  Arduino prezentat mai jos nu este creatia mea, e format din parti de cod gasite pe Internet. Din pacate nu mai sursa tuturor acestor bucati de cod.
Mai jos, la finalul articolului, sunt graficele cu tensiunea pe acumulatorul 18650 (de fapt sunt valorile ADCului). este interesant de observat graficul dinte de fierastrau care reprezinta momentul cand incarcarea este finalizata si controllerul de incarcare permite consumul din acumulator. Cand tensiunea scade sub 4,2V, atunci controllerul incepe din nou incarcarea, se ajunge din nou la >4,2V, se conecteaza acumulatorul samd.


10cm X 10cm 


 
Reset button

Power stage (blue module) + 3V3 LDO (SMT) HT7333.
Partea de alimentare (modulul albastru) + 3V3 LDO (SMT) HT7333

Power controller (battery management system).
Controllerul de alimentare / incarcare 

 
LEDs on the BMS: Charged.
LEDurile pe controllerul de incarcare: Complet incarcat

LEDs on the BMS: Charging
LEDurile pe controllerul de incarcare: In curs de incarcare


***************************************************
#include
#include

const int AnalogIn  = A0;  //ADC pin
const int Enable_Div = 14;  //enable signal for voltage divider

int readingIn = 0;

const char* ssid = "SSID_aici"; //SSIDul de la reteaua unde vrem sa ne conectam
const char* password = "parola_aici"; //parola retelei
const char* mqtt_server = "192.168.IP.SERVER"; //IPul brokerului MQTT

WiFiClient espClient;
PubSubClient client(espClient);


long lastMsg = 0; //pt intervalul de trimitere date
char msgBatt[50]; //pt mesajul MQTT pt valoarea ADC

void setup() {
  Serial.begin(115200);
  setup_wifi();
  client.setServer(mqtt_server, 1883);
  client.setCallback(callback);
  pinMode(Enable_Div, OUTPUT); //pinul de activare al divizorului rezistiv
}

//aici incercam sa ne conectam la WiFi
void setup_wifi() {

  delay(10);
  // We start by connecting to a WiFi network
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}

//asta proceseaza mesajele MQTT venite pe un topic la care suntem abonati
//in cazul de fata este domoticz/out
void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Mesajul primit de la topicul [");
  Serial.print(topic);
  Serial.print("] ");
  for (int i = 0; i < length; i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();
}

void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Attempt to connect
    if (client.connect("ESP8266Client")) {
      Serial.println("connected");
      // Once connected, publish an announcement...
      client.publish("domoticz/in", "ESP8266 conectat");
      // ... and resubscribe
      client.subscribe("domoticz/out");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}
void loop() {

  if (!client.connected()) {
    reconnect();
  }
  client.loop();

  long now = millis();  
  if (now - lastMsg > 300000) { //daca au trecut 5 minute, publica date noi
    lastMsg = now; 
    digitalWrite(Enable_Div, HIGH);
    delay(2000);
    //citim analog input value     
    Serial.print("ADC value:");
    readingIn = analogRead(AnalogIn);
    Serial.println(readingIn);
    delay(1000);
    digitalWrite(Enable_Div, LOW);
        
    //pregatim mesajul MQTT cu valoarea ADC in format JSON
    snprintf (msgBatt, 75, "{ \"idx\" : 6, \"nvalue\" : 0, \"svalue\" : \"%s\" }", String(readingIn).c_str());
    Serial.println(msgBatt); //sa vedem ce trimite
    client.publish("domoticz/in", msgBatt);
    }
}

*********************************************************

logged data during charging / graficul in timpul incarcarii

battery level is going down / descarcare

battery went so low that the ESP8266 cannot receive enough power
bateria s-a descarcat complet

after battery was discharged, I reconnected the charger, thus the ramp-up shape
dupa descarcare, am conectat incarcatorul, de unde si forma de rampa crescatoare



vineri, 9 iunie 2017

WeMos D1 Mini sub Arduino IDE si Windows 10

Daca doriti sa experimentati cu IoT sau cu un microcontroler cu WiFi integrat, o puteti face simplu cu un modul WeMos D1 Mini. Acest modul are un conector micro USB si mai are pe placa tot ce ii trebuie ca sa functioneze de sine statator. Cei de la WeMos au proiectat acest modul in ideea Arduino, adica se pot suprapune unele peste altele diverse module cu diverse functii (senzori, intrerupatoare, ecran OLED etc) astfel ca nu este necesara prea multa munca de lipire a componentelor electronice (la moculele cumparate de mine, trebuie lipiti conectorii).

Modulul WeMos D1 Mini vine in punga de protectie ESD cu 3 versiuni de conectori

Dimensiuni modul WeMos D1 Mini: 3,5 x 2,5 cm

Aici se vede conectorul micro USB si restul componentelor

Modulul si cele 3 versiuni de conectori

Daca alegem sa suprapunem module peste WeMos D1 Mini, 
atunci trebuie sa lipim conectorii cu pini lungi 

Adaugat 19.06.2017: WeMos are o strategie similara cu Arduino: ei produc hardware, dar in sistemul open hardware, open source. Nu am cercetat atent modulele WeMos cumparate initial, erau mai ieftine. Cele de la WeMos costa putin mai mult, dar arata altfel (componentele sunt montate pe o singura fata a cablajului, nu exista ecran RF peste ESP8266EX, exista conector pentru antena exterioara, foloseste alt cip pentru USB-serial etc).

Stanga: clona de WeMos, dreapta WeMos original. Ambele functioneaza, nu e vorba de asta. 
Daca doresti antena externa, doar originalul are conector de antena (IPX).

Daca se doreste antena, acest rezistor de 0 Ohm trebuie dezlipit, 
rotit 90 de grade la stanga si lipit pe acel pad.
In chenarele galbene: la stanga - ESP8266EX, dreapta sus Silicon Labs SIL2104 
si dreapta jos memoria flash Winbond W25Q128FVSG (128Mb sau 16MB).
Deci modulul WeMos poate fi reprogramat si on the air (OTA)
 

Programele se pot scrie usor in Arduino IDE si se incarca prin USBul mai inainte mentionat.

Sub Windows 10 lucrurile merg extrem de simplu, repede si precis:

-instalare Arduino IDE -> https://www.arduino.cc/en/Main/Software
(sub Windows 10 am ales "Windows app")



-adaugare placa WeMos D1 Mini in Arduino IDE:
*in arduino IDE, mergi la File -> Preferences 
*in campul "Additional boards manager URLs" adauga calea de mai jos apoi click pe OK:
   http://arduino.esp8266.com/stable/package_esp8266com_index.json
*apoi Tools -> Boards -> Board manager, acolo selectam  "esp8266 by ESP8266 Community" si instalam
*apoi Tools -> Boards si acolo selectam din lista "WeMos D1 R2 & mini"



-instalare driver USB serial - pe placa WeMos D1 Mini este un convertor CH340 (USB - serial (TTL)) produs de WCH, Driverele le gasim pe pagina producatorului:

http://www.wch.cn/download/CH341SER_EXE.html

Dupa instalarea si conectarea placii WeMos D1 Mini la calculator, in lista de dispozitive apare si placa, ma rog, convertorul USB serial CH340:


Nu mai ramine de facut decat sa conectam placa WeMos D1 Mini la calculator cu un cablu micro USB (folosit uzual la date / incarcare la telefoanele inteligente) si sa compilam / incarcam un program de test pe placa.

Am ales din File -> Examples -> SD(esp8266) -> CardInfo pentru ca va comunica pe interfata seriala (chiar daca nu am niciun card SD conectat la WEMos D1 Mini).

Compilam, selectam portul corect (Tools -> Port -> COM4 - asta e in cazul nostru), incarcam (upload), apoi selectam din Tools -> Serial Monitor si vedem ce ne spune placa. Placa ne spune ca nu gaseste niciun SD card si ne recomanda ce sa verificam. Ceea ce inseamna ca programul a fost incarcat, ca placa ruleaza corect programul - adica functioneaza corect totul.


Asadar avem tot lantul de programare, trebuie doar sa incepem sa programam. Succes!