Pub

vendredi 15 octobre 2021

Stations de radio DAB reçues à Fareins - mise à jour

Il y a désormais 54 stations que l'on peut recevoir en numérique à Fareins, sur 5 multiplex.
Par rapport à ma liste précédente, il y a deux nouveaux multiplex : towerCast-m1 sur le canal 7A et towerCast-m2 sur le canal 7B. 

Voici ma liste, mise à jour le 14/10/2021 :

Liste des stations DAB reçues à Fareins, Ain, France - édition du 14/10/2021
NomCanalFréq. (MHz)MultiplexRate (kbps)Signal (%)
1Africa Radio5B176,640Lyon-Local88100
2AirZen Radio7A188,928towerCast-m188100
3Antinéa Radio8A195,936Macon-Cluny8850
4BFM BUSINESS7B190,640towerCast-m288100
5BFM RADIO7B190,640towerCast-m288100
6CAPSAO8A195,936Macon-Cluny8850
7CHANTE FRANCE5B176,640Lyon-Local88100
8CHERIE FM7A188,928towerCast-m188100
9CHERIE FM MACON8A195,936Macon-Cluny8850
10CROONER RADIO6A181,936Lyon-Etendu88100
11EUROPE 17B190,640towerCast-m288100
12FG5B176,640Lyon-Local88100
13FIP7B190,640towerCast-m288100
14FRANCE CULTURE7B190,640towerCast-m288100
15FRANCE INFO7B190,640towerCast-m288100
16FRANCE INTER7B190,640towerCast-m288100
17FRANCE MUSIQUE7B190,640towerCast-m288100
18FUN RADIO7A188,928towerCast-m188100
19GENERATIONS6A181,936Lyon-Etendu88100
20J A Z Z RADIO5B176,640Lyon-Local88100
21LA RADIO PLUS8A195,936Macon-Cluny8850
22LATINA6A181,936Lyon-Etendu88100
23M RADIO6A181,936Lyon-Etendu88100
24Melody5B176,640Lyon-Local88100
25MOUV'7B190,640towerCast-m288100
26NOSTALGIE7A188,928towerCast-m188100
27NOSTALGIE MACON8A195,936Macon-Cluny8850
28NOVA6A181,936Lyon-Etendu88100
29NRJ7A188,928towerCast-m188100
30OUI FM6A181,936Lyon-Etendu88100
31Radio ALFA5B176,640Lyon-Local88100
32RADIO CLASSIQUE7A188,928towerCast-m188100
33RADIO ESPACE5B176,640Lyon-Local88100
34Radio ORIENT5B176,640Lyon-Local88100
35RADIO PITCHOUN8A195,936Macon-Cluny8850
36RADIO SCOOP8A195,936Macon-Cluny8850
37RCF Lyon6A181,936Lyon-Etendu88100
38RFI5B176,640Lyon-Local88100
39RFM7B190,640towerCast-m288100
40RIRE ET CHANSONS7A188,928towerCast-m188100
41RMC7B190,640towerCast-m288100
42RTL7A188,928towerCast-m188100
43RTL27A188,928towerCast-m188100
44SKYROCK7A188,928towerCast-m188100
45SKYROCK KLASSIKS7A188,928towerCast-m188100
46SOL FM8A195,936Macon-Cluny8850
47SUD RADIO6A181,936Lyon-Etendu88100
48SWIGG6A181,936Lyon-Etendu88100
49TONIC RADIO6A181,936Lyon-Etendu88100
50TSF JAZZ6A181,936Lyon-Etendu88100
51VIBRATION8A195,936Macon-Cluny8850
52VIRAGE RADIO8A195,936Macon-Cluny8850
53VIRGIN RADIO7B190,640towerCast-m288100
54Vivre FM6A181,936Lyon-Etendu88100


 Remarque : le multiplex Macon-Cluny (canal 8A) n'est pas reçu de façon optimale chez moi : le signal est au mieux à 50% et il fluctue. Parfois, la réception des stations de ce multiplex se coupe.
Sinon, la réception des autres multiplex est excellente et stable à 100%.

 J'écoute les radios DAB sur un récepteur Sony XDR-41D sans antenne extérieure, juste avec son antenne télescopique.


*** 73 de Guy F8ABX - 15/10/2021 ***

vendredi 30 juillet 2021

Radio Signal Monitor / RXperiment (7) Epilogue !

 Encore un tout dernier article sur le sujet ! 😀

J'ai arrêté le Radio Signal Monitor, le montage fait avec le circuit TEA5767 car j'ai constaté des défauts rédhibitoires avec ce circuit :
 - trop peu de sensibilité, même avec une antenne télescopique rallongée.
 - une sélectivité trop mauvaise qui amène à recevoir les signaux indésirables de stations sur des fréquences adjacentes.
 - des mesures de niveau de réception finalement incohérentes par rapport aux observations faites en parallèle sur d'autres récepteurs. Ce qui pose question sur les niveaux qui étaient mesurés.

Je conserve donc maintenant en fonction et en ligne uniquement le montage que j'avais nommé « RXperiment2 ». Ce bricolage est composé d'une radio Panasonic RF2400D dont la LED « Tuning » est connectée à une carte microcontrôleur ESP32-D1-R32 par l'intermédiaire d'un optocoupleur fait-maison (pour éviter d'injecter des parasites dans le récepteur radio) plus une adaptation de niveau pour une entrée analogique sur l'ESP32 (je rajouterai un schéma en fin d'article).

Les mesures de réception de RXperiment2 sont en ligne ici :
 https://io.adafruit.com/guyvano/dashboards/rxperiment2 

RXperiment2 n'est pas parfait non plus, mais néanmoins il fait le job avec une meilleure sensibilité et une meilleure sélectivité. J'ai rallongé l'antenne télescopique du récepteur d'une trentaine de centimètres afin d'avoir environ la dimension d'un quart d'onde sur la bande FM.

Les avantages du récepteur Panasonic RF2400D pour ce bricolage :

 - Son prix à moins de 40 Euros.
 - L'accès facile à la LED « Tuning ».
 - Son fonctionnement sur secteur.
 - La réception FM et MW. Sur la gamme de fréquences MW, outre le monitoring de stations en ondes moyennes, le montage peut aussi servir de détecteur d'orage !

Le principal défaut du récepteur :

 - Un affichage analogique de la fréquence, délicat à régler sur une fréquence précise.

Néanmoins, on peut s'aider d'un autre récepteur à affichage numérique pour repérer une station faible sur laquelle se régler et faire l'écoute en parallèle lors de la syntonisation.

Lorsqu'on ne peut se baser sur la réception faible sur la fréquence écoutée, on peut s'aider d'un kit main libre Bluetooth si ce dernier intègre aussi un petit émetteur FM que l'on peut régler la fréquence souhaitée, la syntonisation précise du récepteur sera alors grandement facilitée. J'utilise cette méthode car je possède un kit main libre Plantronics K100 (l'inconvénient du Plantronics K100 : un incrément de fréquence par pas de 200 kHz avec la décimale des MHz toujours impaire).

Autres défauts du montage RXperiment :

- Comme on se base sur l'allumage de la LED 
« Tuning » du récepteur radio, le principe de la mesure du niveau de réception n'est pas la mesure du niveau linéaire et progressif du signal reçu mais une mesure élaborée à partir d'une information binaire : un signal reçu dépasse un certain seuil (ou pas). La mesure qui est publiée sur Internet correspond au pourcentage d'un nombre de fois où la LED Tuning a été trouvée allumée pendant un intervalle de mesures. C'est donc une mesure de durée de réception d'un signal fort. Mais néanmoins, je trouve que ce principe de mesure se prête finalement assez bien au type d'observations envisagées : la détection des réceptions sporadiques.

- Un autre défaut, lié à l'optocoupleur en parallèle sur la LED Tuning du récepteur, il a été fait-maison avec une LED et une photorésistance trouvée dans un starter-kit Arduino. Il y a un petit temps de réaction pour la photorésistance à changer de valeur lorsqu'elle est illuminée. En conséquence, les impulsions brèves de la LED Tuning du récepteur ne sont pas détectées, à moins qu'elles ne se répètent rapidement. Mais ce défaut n'est pas rédhibitoire.


Schéma de l'interface récepteur / microcontrôleur :



(montage initial)



Edit 29/08/2021 : Le remplacement de la résistance de 220 k par 100 k et 47 k en série permet d'avoir un niveau plus proche de zéro lorsque la photorésistance n'est pas illuminée par la LED de l'optocoupleur. Schéma modifié :


(remplacé 220k par 100k + 47k en série)

Edit 03/09/2021 : publication des valeurs brutes de niveaux

Depuis quelques temps, au lieu de pourcentages, je publie les niveaux bruts mesurés aux entrées analogiques des microcontrôleurs, ou plus précisément les valeurs moyennes de 30 mesures effectuées pendant 30 secondes (une mesure de niveau chaque seconde pour chaque récepteur). Ce ne sont donc plus des pourcentages de durée d'allumage des LED "Tuning" mais des moyennes de niveaux des 30 dernières mesures. Cela permet de voir plus finement des variations sur des niveaux plus faibles. Etant donné que les DAC des ESP32 sont sur 12 bits, la valeur des niveaux sur les entrées analogiques vont de 0 à 4095 au maximum. Dans la pratique, la valeur maxi peut être inférieure à 4095 car suivant le modèle de récepteur, le courant maximum fourni à la LED de l'optocoupleur n'est pas toujours suffisant pour illuminer fortement la photodiode. C'est le cas notamment pour le récepteur Panasonic RF2400D, où la valeur maximale du niveau sur l'entrée analogique du microcontrôleur plafonne vers 3200. Mais en fait, ce n'est pas vraiment gênant et c'est bien suffisant pour apprécier un ordre de grandeur, car ce ne sont pas les valeurs absolues qui importent mais plutôt leurs variations.

Voici un exemple de réception avec trois récepteurs différents en utilisant ce principe :



Pour connaître l'état des réceptions en cours :
consultez le document web : 
https://bit.ly/RXperiment


pour des infos complémentaires ou plus récentes
sur le sujet, 
suivez-moi sur Twitter  : @guyvano
(+ hashtag #RXperiment)


**** Cordiales 73 ! Guy - F8ABX - 30/07/2021, 29/08/2021, 03/09/2021 ****

samedi 26 juin 2021

Radio Signal Monitor / RXperiment (6) suite et fin du sujet

 La version mk4 du Radio Signal Monitor FM, soudée sur un shield de prototypage est en service !





La suppression des fils volants et de la breadboard élimine de nombreux parasites générés par le montage lui-même.
Le niveau plancher de réception est revenu à zéro, alors qu'un était presque toujours à un sur le prototype en fils volants. De l'importance, comme toujours, en radio : des liaisons courtes ! Mais bon, pas toujours évident à respecter lorsqu'on réalise un proto.





Le Radio Signal Monitor FM publie ses données à l'URL suivante :

  https://io.adafruit.com/guyvano/dashboards/rsmfm


Ceci clôt la série d'articles sur le Radio Signal Monitor / RXperiment.

A bientôt, et faites de beaux montages !


****  73 de Guy F8ABX - 26/07/2021 ****
Twitter: @guyvano 
https://twitter.com/guyvano


vendredi 25 juin 2021

Radio signal monitor / RXperiment (5)

 Je suis en train de tester la version mk4 de mon Radio Signal Monitor, comme indiqué précédemment, avec le circuit TEA5767. Il fonctionne beaucoup mieux que le VMA444 (Si4703) : meilleure sensibilité en réception, pas d'effet de main, prises d'antenne et d'écouteurs séparés.
J'ai rallongé l'antenne télescopique fournie avec le circuit avec du fil de fer car d'origine, elle ne fait que 24 cm ! La longueur totale de l'antenne est maintenant d'environ 70 cm.
Le TEA5767 n'a pas de décodeur RDS, c'est dommage, mais on a la possibilité d'avoir la force du signal reçu de 0 à 15, et c'est bien l'essentiel compte tenu de la finalité du montage.

Pour voir la force des signaux reçus, c'est ici : https://io.adafruit.com/guyvano/dashboards/rsmfm

A l'heure où j'écris cet article, c'est la fréquence 106,9 MHz qui est monitorée. Il n'y a pas de station locale sur cette fréquence, le but est de détecter des épisodes de propagation exceptionnelle des ondes radio (sporadiques E, propagation troposphérique exceptionnelle). Lors de ces épisodes, des stations lointaines sont captées.

Avec cette version 4, le niveau de réception est mesuré et transmis à la plateforme IOT d'Adafruit toutes les 30 secondes environ.
Si vous avez un compte sur cette plateforme, connectez-vous car le rafraîchissement des données sera alors automatique, sinon la page web du tableau de bord (dashboard) reste statique et il vous faudra la rafraîchir manuellement.

C'est toujours une carte microcontrôleur ESP32-D1-R32 qui assure le traitement et les communications, avec le TEA5767 en I2C, et en Wifi avec la plateforme IOT d'Adafruit en utilisant le protocole MQTT.
Un ordinateur est seulement requis pour le développement et le téléchargement du logiciel dans le microcontrôleur, après ça se débrouille tout seul. 

Si cette version mk4 fonctionne comme prévu, la fonction de baromètre connecté y sera transférée (circuit BMP280 en I2C) et la version mk3 qui tourne actuellement en parallèle pourra alors être arrêtée. La version mk3 mobilise un récepteur
hacké Sony que je souhaiterais démobiliser !


*** 73 de Guy F8ABX - 25/06/2021 ***


dimanche 6 juin 2021

Radio signal monitor / RXperiment (4)

edit 11/06/2021 : le décodage du RDS est actuellement désactivé en attendant la mise en service d'un autre circuit en remplacement de l'actuel, trop peu performant.

 L'affichage du RDS a été rajouté au projet Radio signal monitor / RXperiment.

voir en bas de la page : https://io.adafruit.com/guyvano/dashboards/rxperiment
ou à la page dédiée au log RDS : https://io.adafruit.com/guyvano/dashboards/rds

Une première version tourne actuellement en test avec un circuit Velleman VMA444 (circuit intégré Si4703) mais le résultat est assez décevant car le décodage du RDS n'est vraiment pas performant, même pour les stations locales puissantes. Il y a donc peu de chances que le circuit décode le RDS des stations reçues dans des conditions plus difficiles.

 



Actuellement, le nom de la station est envoyé au site IO Adafruit entre crochets [ ] selon un cycle de 30 secondes environ et la fréquence est rappelée tous les 10 cycles, sans crochet.

Une prochaine version sera réalisée avec un circuit à base de TEA5767, en espérant que le décodage du RDS sera meilleur et plus rapide.

Actuellement, le RSM* est réglé sur 101,3 MHz. C'est une fréquence sur laquelle il n'y a pas de station locale.
Le but est de détecter les phénomènes de propagation troposphérique exceptionnels, d'afficher un graphique des signaux reçus et si possible d'afficher le nom des stations reçues, dans la mesure où leur RDS est décodable.


(*) RSM : abrégé pour Radio Signal Monitor / RXperiment , le nom du projet ESP32 en cours.


.**** 73 de Guy F8ABX - 06/06/2021 ****

jeudi 20 mai 2021

Radio signal monitor / RXperiment - mon nouveau projet ESP32 (3)


 Attention : RXperiment / Radio signal monitor est désormais accessible via la plateforme IOT Adafruit. Les données sont transmises en MQTT à cette plateforme, les données ne sont plus transmises via APRS-IS.

Voici les nouveaux liens :

Le graphique du monitoring en cours : https://io.adafruit.com/guyvano/dashboards/rxperiment
   ( ou https://bit.ly/radiosignalmonitor )


copie d'écran de la page web :





La relève de la pression atmosphérique (QNH) est aussi transmise à la plateforme Adafruit :
https://io.adafruit.com/guyvano/dashboards/qnh
  ( ou https://bit.ly/barofareins )


copie d'écran de la page web :





Ce changement de plateforme a pour objectifs l'amélioration de la fiabilité dans le transfert des données et une meilleure sécurité.



**** 73 de Guy F8ABX - 20/05/2021 ****

lundi 10 mai 2021

Radio signal monitor / RXperiment - mon nouveau projet ESP32 (2)

Le câblage des composants :




Le raccordement à la carte microcontrôleur :




La version actuelle de RXperiment mk3 :

Les composants sont désormais soudés sur un shield de prototypage pour Arduino (compatible avec la carte ESP32-D1-32). Seul l'optocoupleur a été modifié, sa LED jaune a été remplacée par une LED rouge plus lumineuse pour un meilleur éclairement de la photorésistance.








Télémétrie publiée sur https://aprs.fi/telemetry/a/F8ABX-10 
 
  Graphique 1 : QNH (pression atmosphérique ramenée au niveau de la mer).
  Graphique 2 : Temp (température au niveau du montage).
  Graphique 3 : Hsnsr (H sensor : champ magnétique mesuré par la sonde à effet Hall du microcontrôleur).
  Graphique 4 ; Band (bande de fréquence, 0 : OFF, 1 : LF/LW, 2 : MF/MW, 3 : HF/SW, 4 : VHF/FM).
  Graphique 5 : RXprm (qualité de la réception en %)
     C'est le pourcentage du temps d'allumage de la LED "tune" du récepteur Sony, sur un échantillon de 256 mesures pendant 5 minutes.





réception sur 153 kHz pendant 24 heures.
La nuit, la station roumaine Antena Satelor est reçue. 




Etat de la réception en cours sur https://bit.ly/RXperiment
(pour avoir des précisions sur le monitoring en cours : la fréquence précise, la date et l'heure de début)


La pression atmosphérique est aussi publiée sur
 https://www.wunderground.com/dashboard/pws/IFAREI3


Et un grand merci à Peter Buchegger OE5BPA pour son « APRS-IS library for ESP32 » qui permet de publier simplement des données sur APRS-IS !
  info ici :  
https://www.arduino.cc/reference/en/libraries/aprs-is-lib/


*** 73 de Guy F8ABX - 10/05/2021 ***



jeudi 22 avril 2021

Radio signal monitor / RXperiment - mon nouveau projet ESP32 (1)

 Voici ma nouvelle réalisation autour d'un récepteur multi-bandes Sony, avec un circuit ESP32-D1-R32 avec quelques composants additionnels sur une planche à contacts pour prototypage.


Le but est d'évaluer le niveau relatif d'un signal reçu par la radio et de publier les résultats sous forme de données télémétriques avec d'autres informations via le réseau APRS-IS .
On peut voir ces donnés sur : https://aprs.fi/telemetry/a/F8ABX-10 

Il est transmis : la pression atmosphérique (QNH), la température (Temp) et le champ magnétique (Hsnsr) au niveau du circuit, la bande où se trouve la fréquence écoutée (Band) et bien sûr le niveau de réception (RXprm) puisque c'est ce qui m'intéresse au départ, c'est le 5ème et dernier graphique en bas de la page web dont l'URL est donné plus haut.

Le récepteur Sony ICF-SW7600G a subi un petit "hack" consistant à placer deux fils en parallèle sur sa LED rouge "Tune" afin de récupérer une tension directement liée au niveau de réception HF. A la suite de tests, comme une connexion directe sur une entrée analogique du microcontrôleur injectait trop de parasites dans le récepteur, il a fallu ajouter un couplage indirect. Après des essais non concluants par couplage magnétique avec le capteur à effet Hall intégré au microcontrôleur, j'ai finalement choisi un couplage par optocoupleur... Mais n'ayant pas d'optocoupleur, j'en ai fabriqué un, avec les composants que j'avais sous la main : une LED jaune et une photorésistance, le tout bien isolé de la lumière ambiante avec du chatterton.



avec les moyens du bord...



et voilà un optocoupleur !

A noter que la photorésistance n'est pas trop réactive lors de brèves impulsions. Une amélioration sera apportée prochainement.

Néanmoins pour l'instant, le circuit fait le travail demandé !


tests de réception sur la gamme de fréquences MW.


Méthode de mesure du signal :

Le niveau de réception est donné en pourcentage :
Sur une durée de 5 minutes, on effectue 256 mesures. A la fin de la période de collecte des mesures, on calcule le pourcentage que représente les valeurs qui ont dépassé un certain seuil. Ce seuil a été déterminé expérimentalement et correspond environ à la moitié de la tension mesurée lors d'une réception optimale.

Codification des bandes de fréquences (Band) + bits 1234 dans la télémétrie :

Band # 0 = OFF : pas de réception en cours (bits 0000).
Band # 1 = RxLF : réception en cours en LF/LW (bits 1000).
Band # 2 = RxMF : 
réception en cours en MF/MW (bits 0100).
Band # 3 = RxHF : 
réception en cours en HF/SW (bits 0010).
Band # 4 = RxVHF : réception en cours en VHF/FM (bits 0001).

Le circuit et le logiciel étant actuellement en test, je donnerai plus de détails sur cette réalisation dans un prochain article.
En attendant, vous pouvez voir les résultats publiés sur 
https://aprs.fi/telemetry/a/F8ABX-10 

Suivez aussi l'état de la réception en cours sur bit.ly/RXperiment
Vous saurez ainsi précisément sur quelle fréquence est le récepteur et depuis quand.


**** Cordiales 73 ! Guy F8ABX 22-28/04/2021 ****





samedi 27 mars 2021

Baromètre connecté : schéma et code

La toute première version du 22 mars dernier ne gérait pas correctement les problèmes de communication, mais après une modification du code le lendemain, le baromètre fonctionne depuis en permanence et il transmet correctement ses mesures à Weather Underground. La mesure de la pression atmosphérique ramenée au niveau de la mer (QNH) est transmise toutes les 5 minutes au site. En cas de problème de connexion, un nouvel essai est fait 2 minutes plus tard. Au delà de 5 échecs de connexion, le micro contrôleur redémarrera.

Les mesures sont consultables ici https://bit.ly/barogrelonges 

Faites défiler la page car le graphique est situé presque tout en bas. Par défaut, le site affiche en la pression en pouces de mercure mais l'on peut l'avoir en hPa (bouton réglages en haut à droite, puis °C pour avoir la pression en hecto-Pascal...).

Pour publier ses mesures sur Weather Underground, il faut d'abord s'être créé un compte et au moins un "device".
L'identifiant du device et son mot de passe associé sont indispensables pour la publication des mesures.
En ce qui concerne la connexion à Internet, il faudra rentrer le SSID et le mot de passe de votre connexion Wifi dans le programme.
Il faut de même renseigner correctement l'altitude du capteur (en mètres).
Donc en tout, il y a 5 constantes à personnaliser dans le programme.

Depuis le 23 mars 2021, cette version me donne satisfaction.


Le schéma de câblage des composants :





Le code de la v.2.0.0 du 23 mars 2021 :

/* Program name: esp32-baro-wu-2-0-0.ino
   Author: Guy Vanoverbeke @GuyVano
   Program last update (dd/mm/yyyy) : 23/03/2021 - V.2 R.0 C.0
   Arduino IDE V1.8.13
   Board: ESP-WROOM-32
   Function: Publish the barometric pressure from a BME280 sensor on the Weather Underground web site.
   Disclaimer:
   This program (in other words: this code, this software or this application) is a personal creation
   made as part of a hobby and it is given without guarantee of any kind and no support is provided.
   It is free of rights and can be reused freely as you wish.
*/

#include <Wire.h>
#include <WiFi.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
Adafruit_BME280 bme; // I2C
#include <HTTPClient.h>
//
// Wifi SSID and password
//
const char* ssid       = "my Wifi SSID";
const char* password   = "my Wifi password";

//
// Weather Underground device ID and password
//
const char* wudevid    = "my WU device ID";
const char* wudevpw    = "my WU device password";

//
const float myaltitude = 186; // my sensor altitude in meters
//
const boolean autcnx = true; // autorize the connection in http flag
const boolean spr = false;   // true for serial prints or false for no prints
const unsigned long ndly = 300000; // 300000 for 5 minutes. Normal delay between each data upload
const unsigned long edly = 120000; // 120000 for 2 minutes. Retry delay after error
//
float temp = 0;
float hr = 0;
float qfe = 0;
float myqnh = 0;
float myqnhinches = 0;
String wumsg; // http connection url + data to transmit
boolean error = false; // error flag
boolean rderr = false; // sensor read error flag
boolean cnxok = false; // http connection ok flag
int serr = 0; // sensor error counter
int herr = 0; // internet error counter
int hcode = 0; // returned http code
int i = 0; // loop control
String htxt; // returned http text
unsigned snsrsts; // sensor status
//
void setup() {
  //
  pinMode(19, OUTPUT); // red LED for error
  pinMode(23, OUTPUT); // green LED ok
  //
  do {
    digitalWrite(19, LOW);
    digitalWrite(23, HIGH);
    delay(500);
    digitalWrite(19, HIGH);
    digitalWrite(23, LOW);
    delay(500);
    i++;
  } while (i < 6);
  // start the serial connection
  if (spr) {
    Serial.begin(115200);
    // wait for serial monitor to open
    while (! Serial);
  }
  //
  // Connect to WiFi
  //
  if (spr) {
    Serial.println("Connecting to Wifi...");
  }
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    if (spr) {
      Serial.print(">");
    }
  }
  if (spr) {
    Serial.println();
    Serial.println(" Wifi connected.");
    //
    Serial.println();
    Serial.println("BME280 linking...");
  }
  // default settings
  snsrsts = bme.begin(0x76);
  if (!snsrsts) {
    rderr = true;
    error = true;
    if (spr) {
      Serial.println("BME280 sensor not found.");
    }
  }
}
void loop() {
  //
  HTTPClient http;
  rdSensor();
  if (spr) {
    prtValues();
  }
  bldwuMsg();
  if ((!rderr) & (autcnx)) {
    http.begin(wumsg);
    hcode = http.GET();
    htxt = http.getString();
  }
  if (spr) {
    Serial.println();
    Serial.print("Returned code: ");
    Serial.print(hcode);
    Serial.print(" / ");
    Serial.println(htxt);
  }
  if (hcode == 200) {
    // a return code 200 means success
    herr = 0;
    error = false;
    cnxok = true;
  } else {
    herr = herr + 1;
    cnxok = false;
    error = true;
    if (spr) {
      Serial.println();
      Serial.print("HTTP error #");
      Serial.print(herr);
      Serial.println(".");
    }
  }
  //
  //
  //
  if (error) {
    digitalWrite(19, HIGH);
  } else {
    digitalWrite(19, LOW);
  }
  if (cnxok) {
    digitalWrite(23, HIGH);
  } else {
    digitalWrite(23, LOW);
  }
  if (herr > 5) {
    // too much errors, restart the MCU
    ESP.restart();
  }
  //
  //
  //
  if (error) {
    delay((edly - 2000));
  } else {
    delay((ndly - 2000));
  }
  digitalWrite(19, LOW);
  digitalWrite(23, LOW);
  delay(2000);
  hcode = 0;
  htxt = ' ';
}
void prtValues() {
  //
  // Print Temperature, Humidity and barometric pressure
  //
  Serial.print("Temperature = ");
  Serial.print(temp);
  Serial.println(" °C");
  Serial.print("Humidity = ");
  Serial.print(hr);
  Serial.println(" % ");
  Serial.print("Pressure = ");
  Serial.print(myqnh);
  Serial.println(" hPa");
}
void rdSensor() {
  //
  temp = bme.readTemperature();
  hr = bme.readHumidity();
  qfe = bme.readPressure() / 100.0F;
  // myqnh = qfe + (myaltitude * 0.1205F); // previous used formulae
  myqnh = qfe / pow((1 - (myaltitude * (0.0065 / 288.15))), 5.255); // OACI standard atmosphear formulae
  myqnhinches = myqnh * 0.02953F;
  if ((myqnh < 860) | (myqnh > 1090)) {
    //
    // myqnh is out of range, probably error sensor or wiring
    //
    serr = serr + 1;
    rderr = true;
    error = true;
    if (spr) {
      Serial.println();
      Serial.print("Error reading sensor #");
      Serial.print(serr);
      Serial.println(".");
    }
  } else {
    serr = 0;
    rderr = false;
    error = false;
  }
  //
}
void bldwuMsg() {
  //
  // build the internet message for Weather Underground publishing
  //
  wumsg = "https://weatherstation.wunderground.com/weatherstation/updateweatherstation.php?ID=";
  wumsg = wumsg + wudevid + "&PASSWORD=" + wudevpw + "&dateutc=now&baromin=";
  wumsg = wumsg + myqnhinches + "&action=updateraw";
  //
  if (spr) {
    Serial.println();
    Serial.println(wumsg);
  }
}
// End of program 
esp32-baro-wu-2-0-0.ino - Thanks for watching !


Cordiales 73 !


**** Guy F8ABX - 27/03/2021 ***



lundi 22 mars 2021

Baromètre connecté avec ESP32

 Je viens de mettre à niveau mon circuit baromètre avec une nouvelle version 2.0 connectée. Cette fois-ci, je n'utilise plus d'Arduino Uno mais un ESP32 car ce dernier a l'avantage d'intégrer nativement le Wifi.
Le logiciel est pour l'instant une version de développement un peu frustre mais une version un peu plus présentable devrait voir le jour et je la publierai dans un autre article prochainement.


Le circuit :


Les composants sont réduits au minimum vital : la carte micro contrôleur ESP-WROOM-32, le module de mesure BME280 qui communique avec le micro contrôleur en I2C, deux LED et deux résistances de 220 ohms. Et bien sûr la plaque de prototypage, quelques fils de câblage et une alimentation secteur 5V.

Comme le montage est autonome, c'est-à-dire qu'il fonctionne seul sans le recours d'un pc, j'ai donc souhaité avoir un affichage minimal pour m'assurer de son bon fonctionnement :
La LED verte indique que la dernière connexion au serveur Internet de Weather Underground a réussi. La LED rouge indique qu'il y a eu un problème de connexion Internet ou bien un problème de mesure.

Actuellement, le baromètre publie ses mesures de pression atmosphérique (QNH) toutes les 5 minutes sur Weather Underground et l'on peut les voir ici :

 https://www.wunderground.com/dashboard/pws/IFAREI3/ 

ou via le raccourci https://bit.ly/barogrelonges

Par défaut sur Weather Underground, les pressions barométriques sont indiquées en pouces de mercure, mais on peut les avoir en hecto-Pascal en cliquant tout en haut à droite sur l'engrenage puis °C afin de passer en système métrique.

A bientôt !


**** Guy F8ABX - 22, 25/03/2021 ****