21 ianuarie 2022

My VHF Monitor

Articolul original a fost publicat pe siteul Radioamator.ro. Se pare ca titlul articolului si anumite denumiri formulate de mine in acesta, nu puteau fi folosite datorita drepturilor de autor. Pentru a nu intra in polemica, am hotarit retragerea articolului, corectarea acestuia si publicarea in continuare aici pe blogul meu. Articolul prezinta o solutie tehnica simpla care poate fi o sursa de inspiratie pentru alti constructori, programatori sau radioamatori.

Iubesc ESP8266. Este mic, inteligent si ieftin. Stie Wi-Fi, stie sa se conecteze la internet, sa fie server, client, etc. O bijuterie! Cu putina pricepere si multa imaginatie, poti da viata celor mai nastrusnice idei. Iata una pe care avut-o de curand: afisarea in timp real a legaturilor radio in benzile de radioamator.

Hardware

Un modul ESP01S este conectat la alimentare prin intermediul unui stabilizator de tensiune care furnizeaza 3.3V. Doua leduri, conectate la pinii ESP01S, indica starea conexiunii la reteaua Wi-Fi si un server DxCluster. Acestea pot fi comandate de oricare dintre perechile de pini, Rx - Tx sau GPIO0 - GPIO2, prin montarea unor strapuri. Eu am ales pinii: GPIO0 si GPIO2.  

Intreg montajul este realizat pe o bucata de cablaj imprimat, simplu placat, cu dimensiunile: 40 x 30 mm. Pentru micsorarea dimensiunilor cablajului, conectorul alimentarii este montat sub modulul ESP01S.

Montajul este plasat intr-o carcasa din plexiglass de 4 mm, cu ajutorul unor distantieri din PVC. Carcasa este prevazuta cu gauri de fixare pe un panou sau perete.


Software

Partea de software este ceva mai complexa. A fost o provocare chiar si pentru mine. Cuprinde cunostinte de programare pentru microcontrolere, mai precis Arduino, a paginilor WEB, respectiv HTML, CSS, JavaScript si nu in ultimul rand, Leaflet. Acesta din urma a fost necesar pentru afisarea hartii.

Functionarea pe etape a programului din microcontroler este urmatoarea:
1. Restart.
2. Conectarea la reteaua Wi-Fi si semnalizarea conectarii prin aprinderea LED1.
3. Crearea unui server WEB pentru tratarea clientilor.
4. Crearea unui client TCP necesar receptionarii spoturilor de la un DxCluster.
3. Conectarea clientului la un DxCluster din internet.
4. Logarea la DxCluster si transmiterea comenzilor de filtrare a spoturilor. Reusita conectarii si logarii este semnalizata de LED2.
5. Receptionarea spoturilor, parsarea, extragerea indicativelor si locatoarelor din spoturile formatate.
6. Pregatirea datelor pentru a fi transmise unui eventual client conectat la serverul WEB.
7. Tratarea clientilor conectati la serverul nostru prin transmiterea unei pagini WEB.
8. Transmiterea unui refresh catre serverul DxCluster, necesar pentru prevenirea deconectarii. In acelasi timp sunt sterse toate datele care nu mai sunt de actualitate.


In caz de eroare, prevenirea blocarii microcontrolerului se face printr-un reset software. Astfel, acesta va functiona continuu, timp indelungat, fara a fi necesara interventia proprietarului.

Resetarea microcontrolerului se face pentru unul din urmatoarele motive:

1. nu se poate conecta la reteaua wireless.
2. conectarea la DxCluster a esuat.
3. logarea la DxCluster a esuat.
4. daca timp de 15 minute nu receptioneaza date de la serverul DxCluster, inclusiv raspuns la refresh.
5. daca este deconectat de la serverul DxCluster.
In acesta versiune a programului, toate datele stocate inaintea resetarii, se vor pierde. Pe viitor, am in vedere pastrarea acestora si dupa restart.



Pe harta legaturile radio efectuate sint afisate cu ajutorul unor markeri dispusi peste locatorul corespondentilor, uniti prin linii geodezice. Extragerea indicativelor si a locatoarelor se face numai din spoturile corect formatate. Un spot formatat contine la comentariu un camp de forma:

LOC1<MOD>LOC2

unde:
LOC1 - locatorul corespondentului 1
MOD - tipul de propagare anuntat
LOC2 - locatorul corespondentului 2

Pagina WEB transmisa clientului este relativ simpla. Afisarea hartii in interiorul acesteia se face cu ajutorul unui iFrame. Folosirea iFrame-ului in pagina WEB, permite utilizatorului editarea cu usurinta a acesteia, intr-un mod cat mai atragator, fara sa fie afectat de catre acesta. Reactualizarea hartii se face automat printr-un refresh odata la 30 secunde. Datele afisate pe harta se reimprospateaza in timp real, pe masura ce sunt receptionate de la serverul DxCluster. Durata afisarii acestora este de cca 60 minute, dar poate fi modificata. Dupa expirarea timpului de afisare, acestea sunt sterse.

Pentru a raspunde cit mai rapid cererilor clientilor, pagina WEB a fost impartita in trei blocuri. Primul bloc si ultimul, care nu se modifica niciodata pe intreaga perioada de functionare, se incarca in memorie imediat dupa restart. Al doilea bloc se reactualizeaza automat la receptionarea unui spot formatat. Deasemenea toate datele, care nu mai sunt de actualitate, sint sterse imediat dupa transmiterea unui refresh catre serverul DxCluster. Astfel, in orice moment, la cererea unui client, pagina WEB este disponibila in cel mai scurt timp posibil pentru a putea fi transmisa.



Continutul paginii a fost creat cu editorul NotePad++. Conversia acesteia pentru a fi incarcata in program a fost realizata cu programul utilitar TextConv.
Pe viitor am in vedere imbunatatirea functionarii serverului, intoducerea de facilitati noi si posibiltatea  mentenantei de la distanta.
Serverul meu poate fi accesat la adresa: http://yo7fws.go.ro. Acesta functioneaza continuu de peste sase luni, fara interventii din partea mea.
Pornind de la acest proiect am mai creat inca un server, “Aproape de ES”, acum offline, care imi afiseaza in timp real evolutia propagarii Es Sporadic pentru frecvente apropiate benzii 144 MHz. Alte proiecte posibile ar putea fi afisare pe harta a evolutiei unui balon, emitator APRS, WSPR, etc. O pagina de internet prin care se extrag legaturile radio dintr-un fisier EDI si afisarea acestora pe harta. Totul tine doar de imaginatie.

Descarca: codul sursa

Pentru realizarea proiectului m-am inspirat din:

Constantin BADICAN - YO7FWS
---  73's   YO7FWS  ---


Niciun comentariu:

Trimiteți un comentariu