Instalare Linux pe priză WiFi ITEAD SONOFF S20

So yeah. Mi-am pus Linux pe priză.


Acum o lună și ceva mi-am cumpărat două prize SONOFF S20 de la ITEAD. Au WiFI și poți prin IoT să controlezi dispozitivele din casă cu ajutorul unei aplicații Android. Dar normal că e mai amuzant să pui Linux pe priză și să faci Telnet pe ea. Eventual SSH dacă găsesc un firmware mai bun.


Ai nevoie de un convertor FTDI, un cablu MiniUSB, cabluri-mamă, patru pini, niște cositor și un pistol de lipit. Convertorul a costat cam $1 și e un FTDI FT232RL USB To TTL de 3,3V. Azi mi-a ajuns prin poștă așa că m-am pus pe lucru.


Priză WiFi SONOFF S20, cabluri-mamă și FTDI FT232RL USB To TTL de 3,3V.


Ai nevoie de patru cabluri de culori diferite. Convertorul are un switch care comutează de la 5V la 3,3V. Lăsați-l pe 3,3 că altfel riscați să vă prăjiți nu doar convertorul dar și priza sau laptopul. Inserați cablul USB în mufa convertorului.


Cablul negru e conectat la ”GND”, cel portocaliu la pin-ul ”5V”, cel galben la ”TXD” iar cel alb la ”RXD”.


Acum desfacem priza. Sub sticker-ul imprimat cu roșu de pe spate e un șurub care trebuie desșurubat. Apoi e chestie de inserat lama unui cuțit prin fantee laterale ale prizei pentru a o face să se desfacă cu grijă. Plăcuța imprimată din interior e și ea prinsă cu două șuruburi care vor trebui desfăcute.


Ce ne interesează sunt aceste patru găuri care corespund fiecare câte unui pin al convertorului.


Acum avem nevoie de pini pe care să-i sudăm pe placa itegrată. Am găsit ceva piese vechi dintr-un laptop antic și am folosit ciocanul de lipit pentru a scoate de pe una din ele un modul cu patru pini.




Am lipit modulul cu cositor pe plăcuță.


Not a great soldering job but it will do.


Rezultatul final arată așa:



Acum conectăm cablurile astfel: GND la GND, VCC la 5V, TXD la RDX și RDX la TXD.



Când băgați prima oară cablul în laptop se va aprinde becul verde:



Ce trebuie acum să faceți este să setați dispozitivul în modul programabil. Apăsați pe butonul din mijlocul plăcii (unul singur există oricum) și ținând apăsat pe el scoateți cablul USB din laptop. Țineți încă apăsat și așteptați 2-3 secunde după care introduceți cablul înapoi; încă două secunde și puteți da drumul. Culoarea becului ar trebui acum să fie albastră.



Dacă dați un lsusb în Terminal ar trebui să fie deja detectat controllerul:


Dați un dmesg | grep tty ca să verificați pe ce port USB e priza (ttyUSB0, ttyUSB1, ttyUSB2 etc). În cazul meu a fost vorba de /dev/ttyUSB0. Apoi deschideți pagina asta, copiați codul scriptului python într-un fișier pe care-l redenumiți în esptool.py și-l faceți executabil cu chmod +x esptool.py. E nevoie să aveți python și pip instalate. Ulterior dați un pip install pyserial pentru că vom avea nevoie de pachet.


Downloadați firmware-ul de aici. Am ales să experimentez întâi cu ESP Easy versiunea 2.0.0 dev 12. Dezarhivați și plasați într-un folder fișierul ESPEasy_v2.0.0-dev12_normal_1024.bin. Puteți ulterior lansa scriptul făcut executabil mai sus cu drepturi de admin:


sudo ./esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash 0x000 ESPEasy_v2.0.0-dev12_normal_1024.bin -fs 8m


E nevoie ca baud-ul să fie neapărat de 115200.



Instalarea durează circa un minut. După ce noul firmware este instalat puteți deconecta și reconecta cablul USB la laptop. Printre rețelele WiFi vă va apare una numită ESP_Easy_0. Conectați-vă la ea cu parola configesp.



Acum deschideți un browser și navigați la 192.168.1.205. Ar trebui să vedeți așa ceva:




Vă conectați din nou la rețeaua voastră WiFi apoi click pe ”Proceed to main config” ca să alegeți routerul vostru WiFi și să introduceți parola de logare în rețea. Firmware-ul are o mulțime de opțiuni pe care le voi discuta mai încolo. Ideea e că puteți schimba IP-ul prizei (eu i l-am setat la 192.168.1.22) sau să-i setați unul dinamic prin DHCP, atribuit de router, să îi schimbați numele, ba chiar să setați un fallback address (un al doilea router sau a doua bandă a routerului) care să fie folosită în caz că prima eșuează. Cum am două benzi – una de 2,4 și una de 5GHz în router, le-am setat pe acestea. Priza are propriul sistem de info, logging, îi puteți seta parolă și comenzi pentru buton. Suportă notificări prin e-mail sau Buzzer, știe Telnet, salvează configurația în format .BIN downloadabil, suportă update de firmware direct din interfața web, poate lucra cu protocolul MQTT pentru a primi comenzi de pornire/oprire. Instalați OpenHAB și apoi un client OpenHAB pentru Ubuntu cu


sudo apt install mosquitto mosquitto-clients


Apoi puteți seta cofigurații de tipul


# mosquitto_sub -h my.mqtt.server -t "#" -v

/sonoff-s20/Relay/State 1

/sonoff-s20/Relay/State 0


cu care să manevrați apoi din linie de comandă priza folosind


# mosquitto_pub -h 192.168.1.22 -t "/sonoff-s20/gpio/12" -m "1"

# mosquitto_pub -h 192.168.1.22 -t "/sonoff-s20/gpio/12" -m "0”


după ce în prealabil ați făcut niște modificări de configurație din interfața web. Am să caut un firmware care să aibă și SSH eventual.


De menționat că odată schimbat frmware-ul, cel vechi – din câte am înțeles – nu mai poate fi pus înapoi.


În interfața web putem schimba IP-ul, numele prizei și-i putem seta o parolă de administrare.




La ”Devices” e nevoie să adăugați următoarele două task-uri:




…în așa fel încât rezultatul final să arate așa:



Apoi din mediul ”Tools” > ”Advanced” bifăm ”Rules”…



…și ne va apare un nou meniu numit ”Rules” în care introducem următoarele linii, bazându-ne pe ce-am creat cu un pas mai sus:


On Button#State=1 do

if [Relay#State]=0

gpio,12,1

else

gpio,12,0

endif

endon


Cam așa:


Opțional puteți seta notificări prin e-mail (nu știu dacă setările mele sunt corecte, nu le-am testat încă), activa Telnet și activarea prin intermediul unor servicii.




E mișto să știi că poți da ping la priză și că are IP static. Poți astfel seta din router un forwarding și să accesezi priza din afară dacă setezi o adresă DDNS. Gen să-ți pornești aerul condiționat dacă e prea cald afară sau să setezi să-ți facă o cafea la o anumită oră.


Priza știe printre altele de NTP, îți afișează uptime-ul, poate stoca fișiere (habar n-am în ce cuantum), salva log-urile pe un server remote și altele. De menționat că la ”Hardware Settings” am făcut următoarele setări:



Mai sunt și alte firmware-uri pe care le puteți pune pe dispozitiv. Atenție doar cum conectați pinii pe placă, că dacă nu faceți legătura corect riscați să ia foc ceva.


 •  0 comments  •  flag
Share on Twitter
Published on October 24, 2017 16:29
No comments have been added yet.