Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Construire une station météo alimentée par batterie avec MKR FOX 1200

Composants et fournitures

Construire une station météo alimentée par batterie avec MKR FOX 1200
Arduino MKR Fox 1200
× 1
Construire une station météo alimentée par batterie avec MKR FOX 1200
SparkFun Atmospheric Sensor Breakout - BME280
× 1
TSL2561 capteur de luminosité numérique
× 1
HTU21D
× 1

Applications et services en ligne

Construire une station météo alimentée par batterie avec MKR FOX 1200
Arduino Web Editor
Construire une station météo alimentée par batterie avec MKR FOX 1200
API ThingSpeak
Construire une station météo alimentée par batterie avec MKR FOX 1200
Sigfox

À propos de ce projet

Note : Ce tutoriel pourrait être obsolète, veuillez consulter cette page pour une version plus récente.

Ce projet montre comment transformer un MKR FOX 1200 et plusieurs capteurs I2C en une station météo simple, alimentée par batterie.

Nous utiliserons :

Configuration matérielle

Les connexions sont simples : tous les capteurs utilisent l'interface I2C à 3,3 V. Ils nécessitent quatre fils depuis le MKR FOX 1200 : GND, 3,3 V, SDA sur la broche 11 et SCL sur la broche 12. Les trois capteurs partagent le même bus I2C car chacun possède une adresse unique ; les bibliothèques gèrent la discrimination.

L'ensemble peut être alimenté par deux piles AA ou AAA alcalines en série (3 V) connectées au bornier à vis de la carte.

Messages Sigfox

Le réseau Sigfox limite à 140 messages par jour. Nous optimisons les relevés et envoyons les données en format binaire compact.

Le compactage est crucial car la taille maximale d'un message est de 12 octets. Un float occupe 4 octets ; nous devons donc représenter nos mesures dans un format plus petit.

Le format float est très large (jusqu'à 3,4×10³⁸) ; nous n'avons pas besoin de toute cette plage. On définit des limites sûres selon le lieu de déploiement et on restaure les valeurs réelles côté serveur.

Configuration des services cloud

Nous utilisons deux services cloud :

Enregistrez votre carte sur le backend Sigfox avec le PAC et l'ID fournis par l'exemple FirstConfiguration (peut être ignoré si déjà fait).

Les deux doivent être configurés pour communiquer et interpréter les données correctement. Créez deux canaux sur ThingSpeak. Le premier canal reçoit les données brutes (readChannelID), le second les données re-échelonnées (writeChannelID).

Construire une station météo alimentée par batterie avec MKR FOX 1200

Téléversez le sketch via l'Arduino Create Editor. Le sketch par défaut permet de tester toute l'infrastructure avant le déploiement.

Définissez :

oneshot = false

lorsque la configuration backend est correcte. Le sketch attend le port série ; n'ouvrez pas encore le moniteur série. Configurez plutôt un callback sur le backend Sigfox :

  1. Cliquez sur DEVICE TYPE → LIST → clic droit sur votre carte → Edit.
  2. Cliquez sur CALLBACKS dans le menu gauche.
  3. Cliquez sur New (en haut à droite).
  4. Sélectionnez Custom callback.
Construire une station météo alimentée par batterie avec MKR FOX 1200
Construire une station météo alimentée par batterie avec MKR FOX 1200

Configurez le callback comme suit :

Comme Custom Payload, définissez :

status::uint:8 temp1::int:16:little-endian temp2::int:16:little-endian press::uint:16:little-endian hum::uint:16:little-endian light::uint:16:little-endian lastMsg::uint:8

Cette structure correspond à celle compactée dans le sketch. Chaque champ est associé à une variable pour être référencé dans le callback HTTP.

Comme URL Pattern, définissez :

https://api.thingspeak.com/update?api_key=XXXXXXXXXXXX&field1={customData#temp1}&field2={customData#press}&field3={customData#temp2}&field4={customData#hum}&field5={customData#light}&field6={customData#status}&field7={customData#lastMsg}

Remplacez api_key par la Write API Key du Channel1 fournie par ThingSpeak.

Construire une station météo alimentée par batterie avec MKR FOX 1200
Construire une station météo alimentée par batterie avec MKR FOX 1200

Enregistrez et fermez. Ouvrez maintenant le port série pour observer le premier message envoyé.

Du brut aux graphiques

La configuration achemine les données vers ThingSpeak, mais elles sont encore brutes. Utilisons l'outil d'analyse ThingSpeak pour les reconvertir :

% TODO - Remplacez [] par l'ID du canal de lecture : readChannelID = []; % TODO - Entrez la Read API Key entre les '' : readAPIKey = 'T6UK7XO6A4H2AGT7'; % TODO - Remplacez [] par l'ID du canal d'écriture : writeChannelID = []; % TODO - Entrez la Write API Key entre les '' : writeAPIKey = 'XU4TGY261P6B5USN'; %% Lecture des données %% data = thingSpeakRead(readChannelID, 'ReadKey', readAPIKey,'OutputFormat','table'); analyzedData = data; %% Analyse des données %% INT16_t_MAX = 32767; UINT16_t_MAX = 65536; analyzedData.('Temperature1') = data.('Temperature1') / INT16_t_MAX * 120 ; analyzedData.('Temperature2') = data.('Temperature2') / INT16_t_MAX * 120 ; analyzedData.('Pressure') = data.('Pressure') / UINT16_t_MAX * 200000 ; analyzedData.('Light') = data.('Light') / UINT16_t_MAX * 100000 ; analyzedData.('Humidity') = data.('Humidity') / UINT16_t_MAX * 110 ; %% Écriture des données %% thingSpeakWrite(writeChannelID, analyzedData, 'WriteKey', writeAPIKey); %% Planification de l'action : React → toutes les 10 minutes

Remplacez les IDs de canal par les vôtres pour convertir les données brutes en valeurs réelles. N'oubliez pas de planifier l'exécution de l'analyse toutes les 10 minutes via React, sinon elle ne s'exécutera jamais !

Construire une station météo alimentée par batterie avec MKR FOX 1200
Construire une station météo alimentée par batterie avec MKR FOX 1200
Construire une station météo alimentée par batterie avec MKR FOX 1200

Vous obtenez enfin de superbes graphiques :

Construire une station météo alimentée par batterie avec MKR FOX 1200
Construire une station météo alimentée par batterie avec MKR FOX 1200

Code

WeatherMonitor

Le code complet est disponible dans l'éditeur Arduino Create. Il inclut la lecture des capteurs, le compactage des données, l'envoi via Sigfox et la mise en veille basse consommation.

Processus de fabrication

  1. Construire une station météo Raspberry Pi qui envoie les données météo quotidiennes par email
  2. Moniteur météo – Station météo DIY Raspberry Pi avec upload Dropbox
  3. Créer un système Ambilight spectaculaire pour moniteur avec Arduino
  4. Capteur CO2 K30 : Surveillance en temps réel de la qualité de l'air intérieur
  5. Moniteur de Fréquence Cardiaque IoT en Temps Réel avec Arduino et MAX30100
  6. Station Météo Compacte : Arduino Nano & ESP8266 avec Capteur BMP280 et Affichage OLED/Nokia LCD
  7. Construisez un Stadiomètre Numérique : Suivez la Croissance avec Arduino et Capteur Laser
  8. Intégrer un capteur d'empreintes capacitif DFRobot (ID809) avec Arduino ou ESP8266
  9. Tour de Capteurs avec Arduino Cloud : Température, Mouvement et Gaz