Le capteur de particules (Nova PM Sensor SDS011) est capable de mesurer la concentration de particules dans l’air. Dans ce cas, nous mesurons par mètre cube d’air, le nombre de particules de 10 µm et 2,5 µm, qui sont définies à directife de mesure. Le sujet est d’une actualité extrême, le capteur permet à vos propres mesures indépendantes, de connaître la concentration de particules dans votre environnement.
Le problème qui se pose maintenant est que l’on souhaite installer le capteur à un endroit approprié, par exemple sur un lampadaire. Ici, une solution sans fil alimentée par batterie entre en jeu. La carte LongRa peut également fournir la tension nécessaire (5 V) pour le capteur de particules.
Schéma des broches
Ardiono Zero | Capteur | Explication |
---|---|---|
D0 (RX) | 7 (TX) | Données série du capteur à l’Arduino |
D1 (TX) | 6 (RX) | Données série de l’Arduino à le capteur |
GND | 5 (GND) | Masse |
5V0 (5 V) | 3 (5 V) | Alimentation 5 V |
Etant donné que le capteur est équipé d’un ventilateur, ce qui entraîne un courant de démarrage plus élevé, il est recommandé d’utiliser des batteries puissantes ou une source d’alimentation externe pour l’alimentation électrique.
Le logiciel
Nous avons développé notre propre solution d’exemple, qui pilote le capteur et transmet les données de mesure via le protocole RadioShuttle à une deuxième station. Pour cela, l’ID de l’application est 10. Cet ID d’application définit le message à transmettre et le rend accessible au public. Trouvez plus d’informations à ce sujet sur le site de La Stratégie d’Applications.
La mesure a lieu dans l’intervalle défini, par exemple toutes les 30 minutes. Nous appliquons d’abord la tension de service (5 V), lisons les données de mesure pendant 20 secondes afin d’obtenir des valeurs stables et transmettons les données du nœud à une deuxième station. Ensuite, nous débranchons l’alimentation 5 V et mettons la carte en veille, via la fonction deepsleep
, en veille, pour économiser de l’énergie, jusqu’à ce que le cycle complet recommence en 30 minutes avec la prochaine mesure de particules.
Pour la solution sans fil de capteur PM, il est conseillé de lire la documentation de l’exemple de RadioTest afin d’obtenir une compréhension de base et de configurer les ID des nœuds et des stations.
Les données du protocole de PM Sensor (ID de l’application 10)
struct sensor {
uint8_t version;
uint8_t padding;
uint16_t pm25;
uint16_t pm10;
uint16_t id;
} PMAppData;
Les données du protocole sont définies très simplement. Il existe une version de protocole (actuellement 1). De plus, les valeurs mesurées provenant du capteur sont 10 fois plus grandes et doivent être divisées par 10. « id » est le numéro de série du capteur. Une somme de contrôle n’est pas nécessaire car, par LoRa, le protocole RadioShuttle utilisé contient déjà une somme de contrôle CRC 16 bits.
Economie d’énergie en tant que nœud hors ligne (capteur de mesure)
Comme le nœud attend généralement la période de mesure suivante et que nous voulons économiser de l’énergie grâce à l’alimentation par batterie, le nœud est utilisé comme un appareil hors ligne. Cela signifie que, s’il n’y a rien à faire, RadioShuttle éteint le modem sans fil LoRa et passe en mode suspension MCU. Cependant, l’horloge du RTC continue de fonctionner, réveillant le tableau toutes les 5 secondes pendant un moment, pour vérifier s’il y a du travail à faire.
rs->Startup(RadioShuttle::RS_Node_Offline);
L’initialisation du nœud en tant que RadioShuttle::RS_Node_Offline
désactive le modem sans fil, à condition que le moniteur série (USB) ne soit pas actif. En mode sleep, il n’est pas possible de recevoir des données, même en appuyant sur le bouton « A » et en le maintenant enfoncé, vous ne serez reconnu qu’après 5 secondes.
Si une alimentation externe est fournie ou si l’on souhaite surveiller en permanence les protocoles via le moniteur série (USB), le noeud peut être défini comme RadioShuttle::RS_Node_Online
. Cependant, cela consomme plus d’énergie que dans le mode nœud hors ligne.
Consommation électrique approximative :
- Nœuds hors ligne (« deepsleep »): 150 µA
- Nœudes en ligne (« sleep »): 15 mA
- Temps de mesure : 20 secondes (110 mA)
Indicateur d’état LED
Les LED TX et RX clignotent rapidement chaque fois qu’elles envoient ou reçoivent des messages RadioShuttle qui ont été envoyés au « Moniteur série ».
En mode non connecté, la LED 13 est généralement éteinte et ne clignote que pendant les 20 secondes de la période de mesure. En mode nœud en ligne, ou avec « Serial Monitor » USB actif, il s’allume en continu car le protocole USB est actif 100 fois par seconde.
Activer/désactiver 5 V
La solution compatible LongRa Arduino Zero dispose d’un convertisseur de tension intégré qui transforme la tension fournie par 2 piles AA (batteries standard ou rechargeables) en 5 V (max. 150 mA).
boost50 = 1;
Ce convertisseur fournit soit 3,3 V, soit 5 V à partir de la tension de la batterie. Pour l’empêcher de fonctionner en continu, on peut l’allumer et l’éteindre en utilisant respectivement « boost50 = 1 » ou « boost50 = 0 ». Une technologie MOSFET coupe l’alimentation et la mise hors tension, de sorte qu’il n’y a pas de consommation d’énergie lors de la mise hors tension. Vous pouvez également le faire via l’Arduino « digitalOut ». La broche correspondante est définie dans le fichier « xPinMap.h ».
Le récepteur (station)
#define RADIO_SERVER 1
Ceci définit la solution comme une station RadioShuttle (récepteur). La station reçoit les données du capteur et les transmet dans le « Moniteur série » (USB).
ParticalData: PM10: 5.3 (µg/m3) PM2.5: 4.1 (µg/m3) ID: 10229
Les données sont émises d’une manière simple mais peuvent également être utilisées arbitrairement puisque les données complètes du protocole ont été transmises.
Code source de PMSensorRadio
Après l’installation du logiciel RadioShuttle, le code source est entièrement disponible sous les exemples « Arduino-mbed-APIs > PMSensorRadio ».
Exemple d’installation d’un capteur de particules
Plus d’informations
- Vue d’ensemble données aériennes en Alemagne
- Instructions de montage Particulate sensor (en allemand)
- Nova PM Sensor SDS011 (sur banggood.com)