J’ai continué mes travaux autour de ma mini-station météo avec serveur web. J’ai atteint les objectifs de fonctionnalités que je m’étais fixés, même s’il me reste à enrichir de quelques indicateurs les statistiques. Ensuite il me faudra repasser toutes les … Lire la suite
Archives pour la catégorie arduino
Mini station météo web [MAJ]
Pas mal de boulot ces derniers jours mais cet après-midi j’ai eu le temps de bricoler un peu. J’ai reçu un module Ethernet que je me suis empressé de connecter à un Arduino pour bricoler un petit serveur web embarqué. … Lire la suite
WSPR autonome
Le petit montage WSPR que j’avais commencé à fabriquer fonctionne ! 🙂 Rien de bien sorcier: un oscillateur quartz pour lequel on fait varier légèrement fréquence en jouant sur la capacité d’une diode, un étage de sortie et un microcontrôleur qui pilote le timing des différents symboles encodés.
En fait, les gens qui utilisent des kits QRSS pourraient facilement modifier le leur pour en faire un émetteur WSPR autonome, car les segments WSPR et QRSS sont très proches sur la bande des 30m.
Pour mon montage, j’ai utilisé un contrôleur Ardiuno, et c’est aussi ma première utilisation de cette plate-forme. En une phrase : c’est simple, bien pensé, et ultra-fastoche à programmer 🙂
Bref, pour les bricoleurs ou les curieux, voici le code :
/* WSPR Controler * VA2GKA, from scratch, Go :) * Tone separation: 1.4648 Hz (total = 5.8592 Hz) * Number of symbols: 162 * Keying rate: 12000/8192 = 1,46484375 baud * Duration of transmission: 162 x 8192/12000 = 110,592s * Wait time: 9,408 (9408000us) * Symbole duration: 0,68266667s (682667us) */ int wsprPinA = 13 ; int wsprPinB = 12 ; int wsprReset = 11 ; int counter = 0; char symbol; /* Sequence pour VA2LTF... */ char sequence[] = { 3,3,0,2,2,0,0,0,3,0,2,2,1,1,3,2,2,2,1,0,2,1,0,3,3,1, 3,0,2,0,2,2,0,0,1,0,0,1,2,3,2,0,2,2,0,2,3,0,3,3,0,2, 3,3,0,1,2,0,2,3,1,2,3,2,2,0,2,1,1,2,3,2,1,2,3,2,3,0, 0,3,2,0,1,2,3,3,2,2,0,1,3,0,3,2,1,0,0,0,1,0,2,2,0,0, 3,2,2,1,0,2,1,3,3,2,1,1,2,2,1,1,2,3,0,2,2,1,1,3,2,2, 0,2,0,1,2,3,0,0,3,1,0,2,0,0,0,2,2,1,3,0,3,2,1,1,0,0, 2,3,1,0,0,2}; void setup() { pinMode(wsprPinA, OUTPUT); pinMode(wsprPinB, OUTPUT); pinMode(wsprReset, INPUT); //attachInterrupt(0, intReset, RISING); } void loop() { counter = 0; for (;counter> 1) ); symbol = sequence[counter]; digitalWrite( wsprPinB, (symbol >> 1) ); symbol = sequence[counter]; digitalWrite( wsprPinA, (symbol & 1) ); delay(682.667); } //digitalWrite( wsprPinA, LOW ); //digitalWrite( wsprPinB, LOW ); delay(9408); } void intReset() { counter = 0; }
Et voici un petit aperçu d’une émission avec l’émetteur :
Deux émissions WSPR de 2 minutes visibles (waterfall horizontal)
A noter que j’ai résolu mes petits problèmes de stabilité. Je pourrais encore améliorer un peu l’oscillateur avec un contrôle de température au niveau de quartz.