Mircea Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 Un "mini-webserver cu ESP" ar fi bun ca subiect pentru un topic de genul tutorial ESP. Multumesc in avans pentru orice detaliu. @informer Link spre comentariu
Liviu M Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 Pana apuca Informer sa faca tutorialul, poti incepe sa citesti documentatia de la https://github.com/esp8266/Arduino Instalezi IDE-ul Arduino, adaugi suportul pentru ESP8266 si te joci cu exemplele corespunzatoare. Link spre comentariu
gsabac Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 (editat) Acum 5 ore, Thunderer a spus: Un "mini-webserver cu ESP" ar fi bun ca subiect pentru un topic de genul tutorial ESP. Multumesc in avans pentru orice detaliu. @informer Buna idee! Ca să aplici se poate alege o cale bătuta, care este cea mai scurtă, sau să pui mâna pe carte (net). Deşi în general se poate, aşa cum am învăţat acum 2 ani să programez jocuri în Java, de data asta amân posibilele aplicaţii WiFi pentru mai târziu, poate sunt alţi useri interesaţi şi vă mulţumesc pentru ofertă. Mi-a plăcut mult cum aţi schiţat conexiunea. Conexiuni USB dintre PIC-PC îmi este cunoscută şi o schemă bloc generala este in poză. Eu am optat pentru PIC, cod C sau Basic, schema, program pe PC in C# sa Basic si in cazul sursei cu PIC codul este extrem de simplu, mai ales ca se poate personaliza cu PID-VID. // RUTINA USB-HID bidirectionala USB_Polling_Proc(); kk = HID_Read(); if(kk != 0){ Vtmp= (unsigned int)readbuff[3]; tensiune= Vtmp*256 + readbuff[4]; LongToStr(tensiune,txt); RA1_bit=0; RA2_bit=1; //selecteaza afisorul 1 VOLTI lcd_Out(2,1,Ltrim(txt)); //txt este directionat spre LCD1 sau LCD2 Atmp= (unsigned int)readbuff[5]; curent= Atmp*256 + readbuff[6]; curent=(curent*100)/25; LongToStr(curent,txt); RA1_bit=1; RA2_bit=0; //selecteaza afisorul 2 AMPERI lcd_Out(2,1,Ltrim(txt)); //txt este directionat spre LCD1 sau LCD2 } for(jnt=0;jnt<64;jnt++){ // initializaare buferi USB writebuff[jnt]=0; // readbuff[jnt]=0; } //for(jnt=0;jnt<64;jnt=jnt+2){ //step 2 pentru LSB si MSB sau chiar HSB // writebuff[jnt]=0; //tensiune/256; //kk=0x00FF & tensiune; // writebuff[jnt+1]=0; //kk; //} writebuff[0]= 71; //Goo writebuff[1]= 111; //caracter "o" writebuff[2]= 111; // //******************************************* writebuff[3]= tensiune/256; //TENSIUNEA LIMITA kk=0x00FF & tensiune; writebuff[4]= kk; //********************************************** writebuff[5]= curent/256; //CURENTUL LIMITA kk=0x00FF & curent; writebuff[6]= kk; //************************************************** writebuff[7]= V3; //TENSIUNEA in SARCINA are 3x8 bytes writebuff[8]= V2; writebuff[9]= V1; //**************************************************** writebuff[10]= A3; //CURENTUL in SARCINA are 3x8 bytes writebuff[11]= A2; writebuff[12]= A1; kk=HID_Write(&writebuff[0],64); if (kk > 0)comenzi=1; // s-a stabilit conexiunea USB si se pot deschide celelalte rutine. Acesta este tot codul pentru PIC, receptioneaza, seteaza si transmite tensiuni si curenti. La PC sunt coduri mai complicate ce includ folosirea functiilor dintr-un dll specializat si rutinele grafice cu afisarea datelor dar sunt accesibile. In prezent ansamblul functioneaza dar finisez comenzile si aspectul grafic si daca este cineva interesat de aceasta faza voi pune pe site codurile si programul de setup pentru PC numit PicPowerSource.exe, impreuna cu programul aferent, in total vreo 5Mb. Orice comentarii, sugestii si observatii sunt binevenite. Spor! @gsabac Editat Decembrie 2, 2019 de gsabac Link spre comentariu
informer Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 Acum 6 ore, Thunderer a spus: Un "mini-webserver cu ESP" ar fi bun ca subiect pentru un topic de genul tutorial ESP. Multumesc in avans pentru orice detaliu. Nu ma prea pricep io la tutoriale, nu-s un bun profesor, am si lipsit la toate orele de pedagogie ca erau facultative si nu le gaseam interesante... Mi-e mult mai usor ca in masura cunostintelor sa raspund la intrebari punctuale. Ca idee, un server web simplu pe ESP este un server mono-conexiune care primeste request-uri HTTP de tip GET (adica ii scrii adresa in orice browser) si functie de ce URL + eventuali parametri exista in request, apeleaza direct o anumita functie. Exemplele de care spune colegul @Liviu M sunt relevante si treaba merge cam asa: considerand adresa serverului ca fiind A.B.C.D daca aceasta adresa este apelata din browser (http://A.B.C.D) se executa o functie corespunzatoare adresei root. Mai precis, codul care in "main" asteapta request-uri face un "goto" la functia "root()" iar dupa ce face ce i-ai scris acolo, se intoarce in main. Daca de ex. se apeleaza o cale putin diferita, de ex. http://A.B.C.D/fct1 atunci nu se mai executa functia "root()" ci o alta functie asociata cu noul URL(.../fct1), functie care poate face cu totu` altceva... s.a.m.d. Se pot scrie oricate functii fiercare apelabila cu un URL diferit. In interiorul oricarei functii ai acces la parametrii din GET trimisi ca pereche nume / valoare de ex: http://A.B.C.D/fct2?para1=33¶2=66&.... Ar fi bine de folosit utilitarul "WiFiManager" pt. a putea seta dinamic (NU rescriind codul!) parametri SSID si Password daca se schimba WLAN-u`. Pagina "servita" la inceput poate fi statica in exemple simple dar se poate construi o functie "updatePage" care s-o "refresuiasca" de cate ori e necesar a.i. sa reflecte schimbarile parametrilor device-ului. Si nah, multe altele dar e prea mult de scris... daca cineva e interesat poate sa intrebe. Daca un moderator doreste sa faca un topic separat cu asta, io n-am nimic impotriva. Link spre comentariu
Liviu M Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 Acum 3 ore, informer a spus: Daca un moderator doreste sa faca un topic separat cu asta, io n-am nimic impotriva. S-ar putea sa nici nu fie nevoie de topic nou, ceva-ceva tentative au existat deja. Slabute, e drept Link spre comentariu
mars01 Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 Destul de aiurea : https://www.infoq.com/news/2019/12/esp32-fatal-fury/ Link spre comentariu
vijelie02 Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 Nu stiu sigur 100%, dar pentru a hackui un ESP e nevoie de access fizic la el. Desigur in conexiune wifi parola sa fie strong si eventual in spatele unui NAT/Firewall. Link spre comentariu
informer Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 (editat) Depinde ce construiesti si ce anume inseamna hack-uit in acest context... de ex. la serverul HTTP descris anterior, ORICUM nu exista nici o protectie in interiorul retelei locale, nici macar o autentificare cu user/pass. Odata un atacator intrat in LAN-ul cu pricina nu-l impiedica nimeni sa trimita request-uri HTTP la ce device conectat doreste. Nu-i ca si cand conexiunea cu ele ar fi securizata/criptata or smth. Da` nah, daca n-ai o protectie suficienta catre internet, asta e, o sa-ti aprinda altcineva becu` in camera... . Io am un nginx la care ma conectez din exterior cu https si de la el am redirectari in LAN... pana acu` ce-am oprit o ramas oprit. Sigur ca cei care folosesc device-ul in locuri mai sensibile e bine sa fie informati... numa` sa nu vina ESP-u` gata compromis de la chinezi, cum ne avertizeaza dl. Trump, ca atunci ii mai greu... . Editat Decembrie 2, 2019 de informer Link spre comentariu
rlodina Postat Decembrie 2, 2019 Partajează Postat Decembrie 2, 2019 (editat) Acum 19 ore, Thunderer a spus: Un "mini-webserver cu ESP" De departe ... cel mai bine structurat proiect (întâlnit de mine pt. ESP8266 and ESP32) este acesta: https://github.com/rjwats/esp8266-react Sunt 2 proiecte în acestă soluție:. A. Backend -> c++ firmware :: vezi directorul src si config (si implementare comun in lib/framework) B. Frontend ->(interfata) :: vezi interface ( foloseste react - o bilioteca javascript relativ mică dar extrem de flexibilă) Practic la prima accesare se încarcă tot codul de la B (în browserul client - telefon, tabletă, TV etc) după care comunicarea cu A se face prin apeluri simple JSON (ex: /set/output/5V sau /set/limit/current/0.3A) practic un mic API in firmware (pe care evident poți să-l apelezi direct - ex: să-l integrezi în node-red) Dacă nu ai un motiv întemeiat să folosești MCU pe 8 biti la ~3 USD (pe eBay) ESP8266 e imbatabil pt. mici automatizări unde ai wifi + o priză (ex: un termostat). @gsabac Conexiuni USB dintre PIC-PC îmi este cunoscută şi o schemă bloc generala este in poză. Nu mai merită construite aplicații clasice PC - în 99% din cazuri faci o treabă mult mai bună cu aplicațiile care rulează în browser (rulează pe orice device , UI-ul (partea de interfata: butoane, liste, etc) este mai simplu de facut si mai flexibilă). Editat Decembrie 2, 2019 de rlodina un pic mai condensat sa nu poluam topicul curent - scuze: @gsabac 2 Link spre comentariu
gsabac Postat Decembrie 17, 2019 Partajează Postat Decembrie 17, 2019 Proiectul merge mai departe si asa arata ultima versiune a sursei virtuale pe PC. Printre performante vreau precizia de tensiune de +/-1mV si de curent +/-1mA valori foarte dificil de obtinut datorita diferentei mari dintre valorile maxime si minime. Deocamdata folosesc ADC de 22 biti si DAC de 16 biti, conexiunea bilaterala functioneaza bine, iar comenzile se pot da atit de pe sursa cat si de pe PC. @gsabac 3 Link spre comentariu
gsabac Postat Decembrie 27, 2019 Partajează Postat Decembrie 27, 2019 Din aproape in aproape am sincronizat sursa cu modelul USB de pe PC. Click pentru marire. In poza se vade precizia mai buna decat mi-am propus, insa mai trebuie testata la multe perechi tensiune-curent si in final voi reduce numarul de zecimala la trei. Teste interesante vor fi la viteza de protectie sau la trecere intre sursa de tensiune si cea de curent si modul de lucru cu sarcina dinamica. @gsabac 1 Link spre comentariu
sesebe Postat Decembrie 27, 2019 Partajează Postat Decembrie 27, 2019 (editat) Nu te supăra ca spun dar ceea ce arăți tu este rezoluția nu precizia. Pt măsurat / vizualizat precizia trebuie sa masori tensiunea (curentul) de ieșire cu un alt multimetru de minim 4-5 ori mai precis (preferabil minim 10 ori mai precis). Diferența între valoarea afișată / setata pe sursa și cea măsurată cu multimetrul reprezinta precizia. Plus, ca să ai o precizie de 100nanovolti trebuie ca zgomotul de la iesire sa fie de citeva ori mai mic, ceea ce nu-i chiar simplu nici măcar de măsurat ca să nu mai zic de obținut. Pe urma la ce-ți folosește o precizie de 1milivolt (sa zicem) cind cu ai sau nu folosești load sensing? Editat Decembrie 27, 2019 de sesebe Link spre comentariu
Liviu M Postat Decembrie 27, 2019 Partajează Postat Decembrie 27, 2019 Eu as inlocui termenul amperage cu current. Parca suna mai bine. Link spre comentariu
gsabac Postat Decembrie 31, 2019 Partajează Postat Decembrie 31, 2019 Un exemplu de cum se creeaza o sursa digitala cu afisaj Nextion touch TFT este prezentat in videoclipuri. Partea a doua. Se pare ca este extrem de simplu, cu observatia ca un click alaturi, seteaza valori pe care nu le doresti. @gsabac 1 Link spre comentariu
gsabac Postat Ianuarie 3, 2020 Partajează Postat Ianuarie 3, 2020 (editat) Asa arata o sursa comandata digital realizata de un amator acum 2 ani, asa ca pentru clatirea mintii. Afisoare Nextion, comenzi "touch screen", 0-40V, 0-4A, cu modul PWM comandat de uC. Are un mod special de programare pentru marimea step-ului, prin selectarea ordinelor zecimale si reglaj fin cu encoder digital. Autorul nu vrea sa prezinte cum a realizat-o, dar a postat un video de prezentare si reclama. Merita felicitari pentru munca de programare si realizare, din stabilitatea cifrelor se vede ca nu are brum pe iesire (poate cu sarcina mica) si in total cred ca ar costa cam 500-800 lei. Asa ceva sunt pe cale sa proiectez si eu, poate imi iese, deoarece sunt ceva necunoscute cu conexiunea afisor-arduino si arduino-stabilizator(fara PWM). @gsabac Editat Ianuarie 3, 2020 de gsabac Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum