30 decembrie 2022

Incă o bifă in palmaresul personal (2)


                 Locul 1 la Campionatul Național deCreație Tehnică, ediția 2022, Sectiunea C, desfășurat pe 24 Septembrie la Sărata Monteoru, Buzău. 
Am participat cu lucrarea "LogulMeuUUS – jurnal electronic pentru concursurile in unde ultrascurte". Proiectul din descrierea lucrarii a fost inceput in anul 2012 si dupa 10 ani de munca a fost recompensat cu o medalie si diploma. Asa da! Iata ca stradania mea nu a fost de prisos. Continui!

Constantin BADICAN - YO7FWS

---  73's   YO7FWS  ---

02 decembrie 2022

Baliza radio WSPR (2)

Caracteristici

  • Baliza de interior, cea mai simpla versiune. 
  • Nu necesita GPS sau RTC pentru sincronizare, dar are nevoie de o conexiune la internet. 
  • Constructie usoara, cablaj imprimat cu dimensiuni reduse. 
  • Frecventa de emisie: 3568.6 KHz.
  • Putere de iesire: 100 mW. 
  • Alimentare: 9V / 250mA.
  • Este dotata cu rezistenta de sarcina si detector, pentru masurarea si reglarea nivelului puterii. 
  • Etaj final cu tranzistori BS170, dar pot fi inlocuiti cu un IRF510, montat pe partea inferioara a cablajului, in contact cu un radiator.
  • Cu exceptia componentelor active am folosit numai componente recuperate. 
  • Baliza poate emite continuu sau dupa un orar.


Principiul de functionare

Microcontrolerul ESP01 are rolul de a comanda modulul SI5351A. Acesta se conecteaza automat la internet si interogheaza un server NTP. Mesajul receptionat reprezinta timpul UTC la momentul interogarii. Microcontrolerul extrage minutele si secundele pe care le compara cu orarul de emisie. In functie de timp acesta comanda pornirea secventelor de transmitere a semnalului WSPR. Semnalul de radiofrecventa extras la iesirea CLK1 al modulului SI5351A este amplificat cu ajutorul a trei tranzistori BS170 si aplicat antenei, prin intermediul unui filtru trece jos. Am folosit trei tranzistori in paralel pentru ca disiparea termica sa fie redusa pe fiecare tranzistor. Circuitul antenei este prevazut cu o rezistenta de sarcina de 50 ohmi si un detector de radiofrecventa. Acestea sint comutabile prin intermediul strapului S1. Intre punctele M1 si M2 se poate masura, cu ajutorul unui voltmetru, tensiunea virf la virf pe rezistenta de sarcina, respectiv puterea de iesire a balizei. Personal am alimentat montajul cu o tensiune de 9V, cu un consum de cca 250mA, pentru o putere debitata de 100mW.


Punerea in functiune

Se incarca in microcontroler programul Calibrare_WSPR.ino. Acesta va emite o purtatoare continua care va ajuta la reglarea puterii de iesire din etajul final. Pe timpul reglajelor antena trebuie sa fie deconectata. Inainte de alimentare se regleaza cursorul potentiometrului semireglabil la masa, in sens invers acelor de ceasornic, astfel incit tensiunea pe grila tranzistoarelor dupa alimentare va fi 0V. Se monteaza strapul S1 si un voltmetru intre punctele M1 si M2. Montajul se alimenteaza cu tensiune continua  si se verifica existenta tensiunilor de alimentare in punctele U1 6V, U2 3V3 si 0V in U3. Se creste incet tensiunea in punctul U3 prin reglarea potentiometrului semireglabil P1, in sensul acelor de ceasornic, si se urmareste indicatia voltmetrului. Cind tensiunea indicata este 3.2V se opreste reglajul. In acest moment etajul final debiteza 100 mW. Tensiunea aproximativa in punctul de masura U3 este 1.5V, dar poate fi diferita in alte montaje similare. Se deconecteaza alimentarea si voltmetrul. Se programeaza microcontrolerul cu programul ESPWSPR.ino si se conecteaza antena. In acest moment baliza poate fi pusa definitiv in functiune. 




Precizari

Montajul a fost realizat pe o bucata de cablaj imprimat simplu placat cu dimensiunile 58 x 54 mm. Torurile folosite la filtrarea semnalului din etajul final sint de origine necunoscuta. Valorile inductantelor L1 si L2 au fost calculate online si realizate prin masuratori. Intreg montajul a fost introdus intr-o carcasa de protectie realizata din plexiglass. Baliza emite continuu semnal WSPR si porneste emisia la fiecare minut par, secunda zero. Setarea mesajului personalizat transmis de baliza WSPR se face cu ajutorul encoderului online de la aceasta adresa: https://swharden.com/blog/2021-03-27-wspr-code-generator/


Constantin BADICAN - YO7FWS

Descarca: ESPWSPR.ino

---  73's   YO7FWS  ---
 


18 aprilie 2022

Arduino RDS PI decoder

Dupa construirea receptorului FM, urmatoarea etapa a fost integrarea unui decodor RDS. In prima faza intentia mea a fost intelegerea principiului de transmitere RDS si decodarea acestuia. Ulterior, dupa ce am citit mai multe documente pe internet, am trecut la experimente. Folosind semnalele de ceas si date, furnizate de un receptor Sony ST-SE370, am incercat si am reusit sa decodez. Am folosit un Arduino Nano, care s-a potrivit perfect nivelelor semnalelor din receptor. Ultima parte a proiectului a reprezentat simplificarea codului sursa, micsorarea timpului de decodare si extragerea doar a datelor care ma interesau, respectiv identificatorul PI.

Transmisiunea RDS se face in paralel cu semnalul audio stereo in cadrul unui semnal multiplex. Transmisia este seriala, cu o viteza de 1187.5 biti / secunda. Datele sint impartite pe grupuri. Acestea la rindul lor sint impartite in blocuri: A, B, C, D. Fiecare bloc are 26 biti, fiecare grup are 26 x 4 = 104 biti. Intr-o secunda sint transmise cca 11 grupuri. Blocul A contine identificatorul PI. El se regaseste in primul bloc din fiecare grup transmis, din 104 in 104 biti. In concluzie, blocul A este transmis de cca 11x / secunda, respectiv odata la 87.5 milisecunde.

Daca blocul A este transmis de cca 11x / secunda, cred ca este deajuns, in cadrul unor reflexii MS, de scurta durata, daca semnalul este destul de puternic, sa pot identifica PI-ul postului transmis. Pentru aceasta imi este necesar o receptie a grupului, respectiv 87.5 milisecunde, pentru a decoda si memora temporar PI-ul postului receptionat. Urmat dupa aceea de inca o receptie a grupului, alte 87.5 milisecunde, pentru a decoda dinou ID-ul si apoi sa il compar cu primul PI temporar. In caz de egalitate, totul este ok, am identificat postul, altfel, reiau procesul de la inceput.

Aceasta ultima afirmatie este pura teorie. Nu am testat-o inca. Teoretic ar putea sa functioneze, practic voi afla in vara aceasta, cu ocazia Perseidelor. In anii precedenti am receptionat des semnale de scurta durata via MS intr-un receptor auto. Anul acesta am posiblitatea sa si testez.

Schema de principiu este simpla. Pini de date si masa au fost conectati direct la microcontroler. Nu a fost necesara nicio interfatare, nivelele semnalelor sint perfect compatibile, 0 - 5V. Pinii D2 si D3 sint folositi ca intrari si sint conectati pull-up intern din setarile software. Rezultatul decodarii se trimite prin intermediul portului serial in USB la calculator si evidentiat intr-un monitor. Alimentarea se face din portul USB al calculatorului.

Software-ul seteaza pinii ca intrari si activeaza o intrerupere interna pe pinul de ceas. Dupa receptionarea a 26 de biti de date se incearca identificarea blocului prin calcularea CRC. Daca CRC nu este bun operatia se repeta. Cind CRC este ok, se identifica blocul. Daca blocul este altul decit A, se calculeaza dupa citi biti urmeaza blocul A si se reia asteptarea blocului A. Cind blocul A este identificat, se decodeaza si memoreaza PI. Se asteapta timp de 104 biti, se receptioneaza urmatorul bloc A, fara sa se mai verifice CRC, se extrage PI si se compara cu primul decodat. Daca este in regula se trimite prin intermediul portului serial catre calculator pentru a fi afisat pe monitor.

Aceasta este pe scurt descrierea algoritmului decodorului meu si intentiile mele pentru a-l folosii. Mai multe detalii dupa experimentele ce urmeaza sa le intreprind.

Sa vina vara, eu sint pregatit!

Constantin Bădican - YO7FWS

Descarca: codul sursa

Pentru realizarea proiectului m-am inspirat din:

---  73's   YO7FWS  ---

15 aprilie 2022

Alertă E Sporadic prin SMS

Salut!
Curind incepe sezonul de propagare E Sporadic in unde ultrascurte. Sinteti pregătiți? 
Iată ce mi-am construit: un sistem de alertare prin SMS in caz de propagare E Sporadic.
Dispozitivul monitorizează anunțurile de pe DXCluster și dacă sint raportate legaturi radio via E Sporadic, mă anunță in cel mai scurt timp, printr-un SMS. Folosesc dispozitivul din anul 2017 și de-a lungul timpului mi-a adus reale satisfacții.

Hardware

Circuitul are in componența sa două module interconectate: un microcontroler ESP8266 și o placă de dezvoltare GSM, respectiv IOT-GA6. Microcontrolerul este componenta principală a dispozitivului. Acesta se conectează prin WiFi la internet și dupa aceea la un server DXCluster. Tot el monitorizeză anunțurile și declansează alertarea. Placa de dezvolare GSM asigură conexiunea telefonică cu un operator și in caz de alertă, transmite SMS. Comunicația intre cele două module se face prin intermediul porturilor seriale din dotare. Acestea sint alimentate cu tensiune prin intermediul a două stabilizatoare de tensiune: 3.3V și 5V. Conectarea la rețeaua WiFi, logarea la serverul DXCluster și conectarea la rețeaua GSM sint semnalizate prin intermediul a două LED-uri.


Intregul  montaj a fost realizat pe o bucată de cablaj imprimat cu dimensiunile 58 x 53 mm. Montajul a fost introdus intr-o carcasă din plexiglass. 


Principiul de funcționare
Pe DXCluster sint anunțate continuu legăturile radio realizate intre corespondenți și suplimentar, pentru informarea comunității, modul de propagare. Dispozitivul monitorizează conținutul acestor anunțuri și cind identifică cuvinte cheie precum: <ES> sau ESporadic, se prealertează sau anunță prin SMS utilizatorul. 

In timpul funcționării, dispozitivul se poate afla intr-una dintre următoarele stări: starea de veghe, starea de prealertare și starea de alertare.

Atunci cind nu este propagare radio dispozitivul se află in stare de veghe. In tot acest timp, monitorizează anunțurile in vederea identificării unuia care implică propagare de tip E Sporadic.

In starea de prealertare se trece intotdeauna numai din starea de veghe. Tranziția are loc doar atunci cind se identifică un anunț care implică propagare de tip E Sporadic. Invers, trecerea din starea de prealertare in starea de veghe, se face atunci cind după anunțul de prealertare, timp de 15 minute, nu mai este identificat un alt anunț asemănător. In acest caz, prealertarea a fost o alarmă falsa, o deschidere de scurtă durată a propagării radio.

Alerta propriu-zisă, starea de alertă, se activează intotdeauna numai din starea de prealertare. Condiția de alertare este dată de apariția după primul anunț de prealertare a unui alt anunț asemănător, intr-o perioadă mai scurtă de 15 minute. In concluzie, intr-un interval mai mic de 15 minute, primul anunț declanșează prealertarea, iar al doilea declanșează alerta SMS, respectiv semnalizează deschiderea propagării radio.

Trecerea din stare de alertă in stare de veghe reprezintă sfirșitul propagării radio. Aceasta se consideră incheiată cind timp de 60 minute de la ultimul anunț, care implică propagare de tip E Sporadic, nu se identifică un alt anunț asemănător.

Cuvintele cheie și duratele de timp folosite au fost astfel alese incit să nu existe alerte SMS false sau rateuri. 

Software
Programul care gestionează dispozitivul a fost scris in limbajul Arduino. Pentru o bună funcționare au fost implementate urmatoarele funcții:
- conectarea la internet prin rețeaua wireless și semnalizarea conectării
- conectarea la un server DXCluster, logarea și semnalizarea logării
- conectarea la rețeaua GSM și semnalizarea conectării
- filtrarea anunțurilor
- identificarea anunțurilor, prealertarea, alertarea și revenirea la starea de veghe
- trimiterea anunțurilor prin SMS
- menținerea activă a conexiunii cu serverul DXCluster
- resetarea dispozitivului in caz de eroare


Alerte false
Dispozitivul nu este perfect. Nu este capabil să identifice anunțurile false. Acesta tratează toate anunțurile identic. Pentru a micșora numărul de alerte false trebuiesc imbunătățiți algoritmii de analiză și filtrare. Din fericire aceste anunțuri false sint tot mai puține in ultima perioadă.

Iată două cazuri care pot genera alerte false:

Are loc o legatură radio intre doi corespondenți și acestia raportează fiecare legatura pe DXCluster. Dacă anunțurile apar consecutiv, intr-o perioadă mai scurtă de 15 minute, dispozitivul le identifică ca două anunțuri: unul de prealertare și celalalt de alertare. In realitate avem o singură legatură radio.
Soluție: verificarea incrucișată a indicativelor din anunțuri și ignorarea ultimului anunț in caz de egalitate.

Un alt caz de alertă falsă este atunci cind se raportează greșit legătura radio. Aceasta se intimplă cind legăturile radio Tropo sint raportate ca legaturi radio E Sporadic. 
Soluție: calcularea distanței intre locatoare și dacă este <700..1000 km, se va ignora ultimul anunț.

Alerta prin SMS se poate adresa unui destinatar sau grup de destinatari. De asemenea, aceasta poate fi inlocuită cu alertă prin email sau un alt tip de alertă. Totul ține de preferințele utilizatorului.

Să inceapă sezonul, eu sint pregatit!
73!

Constantin Bădican - YO7FWS

---  73's   YO7FWS  ---







04 martie 2022

LogulMeuUUS vers. 03.03.2022

Noutati:
- Interfata poate fi comutata in limba romana sau limba engleza. Multumesc pentru sprijin lui Dan, YO9CWY.
- Se poate afisa harta legaturilor radio. Atentie! Necesita conexiune la internet.
- Pentru cei care nu se descurca am introdus menu-ul Ajutor.
- Programul calculeaza media Km/QSO.

Descarca:

Constantin BADICAN - YO7FWS

---  73's   YO7FWS  ---
 

21 februarie 2022

FM DX RDS PI Scanner (1)

Receptiile radio si tv la mare distanta m-au pasionat dintotdeauna. In anii de liceu am observat receptionarea in Banda 1 TV a unor posturi de televiziune din Europa, iar in banda OIRT a unor posturi radio rusesti. Foarte mult timp am studiat acest fenomen, dar prea putin documentat. Anii trecuti am revenit la aceasta veche pasiune, am reluat receptiile si am avut rezultate. Ce m-a impresionat de aceasta data a fost posibilitatea identificarii postului radio care emite cu ajutorul transmisiei RDS in paralel cu semnalul audio. Aceasta facilitate este foarte importanta, nu numai ca auzi un post de radio interesant, dar ai posibilitatea sa stii de unde emite si cum se numeste. Genial!

Primele receptii le-am facut pe un radiocasetofon Sony pe masina. Apoi am trecut la un receptor RTLSDR pe calculator si un tuner stationar Sony ST-SE370. Toate au functionat, dar nu conform asteptarilor mele. Niciunul dintre acestea nu imi furniza in cel mai scurt timp posibil informatiile RDS transmise de postul radio receptionat. Era frustant: se auzea foarte bine, dar nu decoda nimic. Pornind de la aceasta experienta oarecum nereusita, m-am hotarit sa imi construiesc un receptor radio asa cum imi doream eu. Nu am avut de gind sa plec complet de la zero, am cautat sa gasesc module, gata construite, pe care imbinindu-le impreuna, sa-mi asigure rezultatul mult asteptat. Pentru aceasta am studiat module tuner din diverse receptoare radio, combine si casetofoane de masina, modul de comanda al acestora si controlul PLL, precum si principiul de transmitere si decodare RDS. Iarna aceasta am reusit sa-mi construiesc o varianta simplificata a primului receptor.

Tunerul FM si modulul decoder RDS au facut parte dintr-o combina Aiwa_XR-EM30. Pentru comanda si controlul PLL am folosit o placa de dezvoltare Arduino Nano, la care am conectat un afisaj LCD 2 x 16 caractere, un encoder mecanic si o tastatura cu trei push butoane. Receptorul nu este dotat cu amplificator audio, receptia se poate face doar in casti. Datorita dimensiunilor reduse ale componentelor, modulul decoder RDS a fost 'decupat' de pe placa de baza a combinei si adaptat proiectului meu. Iata schema simplificata a receptorului:

Controlul tunerului FM este realizata cu ajutorul unui program incarcat in Arduino Nano. Acesta comanda registrii de uz general GPIO si controleaza PLL dintr-un circuit integrat specializat Sanyo LC72131.  Intervalul de frecventa acoperit este 88 - 108 MHz, cu pas de 100 KHz. Schimbarea frecventei de receptie este ralizata cu un encoder mecanic si afisarea se face pe un ecran LCD. Pentru inceput programul este foarte simplu. Acesta impreuna cu receptorul urmeaza sa fie imbunatatite pe viitor. 

Descarca codul sursa: RXFM_V1.ino

La realizarea proiectului m-am inspirat din:

27 ianuarie 2022

2021 - Recordurile mele in 2m

 Iata ce scriam acum un an pe blog:

Hmm, am receptionat CU3EQ, Insulele Azore, la 4257Km... deci este posibil. Daca receptionez, inseamna ca pot sa si lucrez. Totul depinde de mine: cind si cu ce. Ia sa vedem: pot?

Si dupa un an pot spune: aproape am putut! Nu sint chiar 4257 Km, dar sint aproape!

Vara trecuta am lasat deoparte legaturile radio " la intimplare, tot ce aud si cit mai multe la numar ", in Es Sporadic, si am  inceput sa ma concentrez pe directiile de propagare, dupa indicative si distante  mari, posibile  de lucru. Pe 10 Iunie 2021 in jurul orei 15.10 s-a produs o propagare puternica pe sudul Spaniei, acesta fiind momentul oportun pentru mine. Am oprit emisia si m-am concentrat pe indicative. La scurt timp mi-a aparut pe ecran apelul lui EA8JK, din Insulele Canare, care chema pe directia mea o statie din YU. Nu am mai stat pe ginduri, momentele acestea nu dureaza foarte mult, si l-am chemat. La scurt timp mi-a raspuns si am continuat legatura. Finalul legaturii, salutarile, nu l-am mai prins, propagarea radio a scazut. Dar am avut noroc: corespondentul meu l-a copiat. 

A doua zi, am primit confirmarea prin email: legatura radio perfect valabila. A fost bucurie mare in sufletul meu. Am depasit doua bariere: 3000 si 4000 Km, doar cu o singura legatura, HI! Ce frumoasa este pasiunea noastra!

 La cca doua saptamini am primit si premiul: confirmarea qsl.

Si astfel, am adaugat in palmaresul personal un nou record: EA8JK, Insulele Canare, 4091 Km, confirmat!

Probabil, in scurt timp, chiar de anul acesta, numarul legaturilor radio peste 4000 Km se vor inmultii printre iubitorii legaturilor radio in unde ultrascurte. De vina o sa fie Soarele, dar si modul de lucru FT8. Foarte bine! Toata lumea trebuie sa fie fericita!

Constantin BADICAN - YO7FWS

---  73's   YO7FWS  ---


23 ianuarie 2022

Baliza radio WSPR (1)

 Provocat de un experiment initiat de YO3FFF in banda de 80 m, m-am hotarit sa construiesc si eu o baliza WSPR. Intentia de a construi baliza era veche, asa ca de-a lungul timpului am achizitionat componentele necesare. Fara sa stau prea mult pe ginduri, am schitat o schema bloc cu minimul de componente necesare, am proiectat un cablaj imprimat si am trecut la executarea lui. Montajul a fost destul de simplu, nu a necesitat niciun reglaj. Pentru acesta am folosit o placa de dezvoltare Arduino Nano, un modul GPS Neo-6M si un generator SI5351. O iesire a generatorului am conectat-o la un filtru trece jos, pe care intentionez sa il studiez mai bine, ceva mai tirziu.

La punerea in functiune am avut probleme cu programul. Am ales un program 'de-a gata', luat de pe GitHub, care desi functiona corect, semnalul era nedecodabil. Nu am reusit sa inteleg unde era eroarea, n-am gasit nicio problema in cod. Apoi am testat, fara nicio sincronizare de timp, exemplul dat in libraria EtherKit JTEncode, care a functionat de la prima incercare. Dezamagit de timpul pierdut, m-am hotarit sa rescriu codul plecind de la acest exemplu. Mai intii am eliminat ceea ce era in plus si nu ma ajuta in proiect, apoi am adaugat restul de cod, necesar proiectului. Receptiile le-am facut 'pe masa', cu transceiverul meu si decodarea in laptop. Totul functiona corect. Fara sa montez filtrul de iesire, am conectat antena si am pornit emisia balizei. La scurt timp am fost receptionat de citeva statii din YO3, YO9. Spre seara au inceput sa apara receptiile dinspre SP, OE, DL, PA, OH si cel mai departe EA8. Am ramas impresionat. Cu doar 10mW, intr-o antena dipol, eram receptionat in toata Europa. Minunat!

A doua zi am montat un filtru de iesire si am lasat-o definitiv in emisie, pe antena. Pe fiecare dimineata, la cafea, imi arunc privirea pe harta cu receptia semnalelor mele. Pina azi, recordul de distanta este de cca 4300 Km, receptiont de RX9O, in apropiere de Novosibirsk.

Pe viitor, din motive de tehnice, intentionez sa renunt la modulul GPS si sa folosesc un modul RTC. Din nefericire este foarte greu de gasit un modul precis, experienta mea cu acestea a fost complet neplacuta. Testele continua!

Constantin BADICAN - YO7FWS

---  73's   YO7FWS  ---

25.01.2022
Un nou record de distanta: WZ7I, 7628 Km in apropiere de New York.
Am masurat consumul montajului:
 - 80 mA in repaus
 - 120 mA in emisie

---  73's   YO7FWS  ---

04.03.2022
TimestampCallMHzSNRDriftGridPwrReporterRGridkmazMode
 2022-03-04 04:00  YO7FWS  3.570097  -13  0  KN24dj  0.01  K4WLO  EM65  8761  309  2 
 2022-03-04 04:02  YO7FWS  3.570097  -14  0  KN24dj  0.01  K4WLO  EM65  8761  309  2 
 2022-03-04 04:04  YO7FWS  3.570096  -21  0  KN24dj  0.01  K4WLO  EM65  8761  309  2 
 

---  73's   YO7FWS  ---

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