Table des matières:
- Étape 1: Pièces requises
- Étape 2: Principes schématiques
- Étape 3: Code Arduino
- Étape 4: Test en conditions réelles
Vidéo: Capteur météo compact avec liaison de données GPRS (carte SIM) : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Résumé du projet
Il s'agit d'un capteur météo alimenté par batterie basé sur un capteur de température/pression/humidité BME280 et un MCU ATMega328P. Il fonctionne avec deux piles lithium thionyl AA de 3,6 V. Il a une consommation de sommeil ultra-faible de 6 µA. Il envoie des données toutes les demi-heures via GPRS (à l'aide d'un module GSM SIM800L) à ThingSpeak, contrôlé par une horloge temps réel DS3231. Le service estimé sur un jeu de batterie est > 6 mois.
J'utilise une carte SIM prépayée ASDA, qui offre de très bonnes conditions pour les besoins de ce projet, car elle a un délai d'expiration très long pour le crédit (180 jours) et ne facture que 5p/MB de volume de données.
Motivation: Développement d'un capteur environnemental économique, sans entretien, autonome et alimenté par batterie qui peut être placé dans la nature pour acquérir des données météorologiques ou autres et les transmettre via un réseau GSM/GPRS à un serveur IoT.
Dimensions physiques: 109 x 55 x 39 mm (y compris les brides de boîtier). Poids 133g. Indice IP 54 (estimé).
Coût du matériel: env. 20 £ par unité.
Temps de montage: 2 heures par unité (soudage à la main)
Source d'alimentation: deux piles au lithium thionyl AA, non rechargeables (3,6 V, 2,6 Ah).
Protocole réseau: GSM GPRS (2G)
Utilisations potentielles: Tout emplacement distant avec une couverture de signal GSM. Forêts, phares, bouées, yachts privés, caravanes, campings, refuges de montagne, bâtiments inhabités
Test de fiabilité: une unité a subi des tests à long terme sans surveillance depuis le 30.8.20. À l'exception d'un plantage logiciel, il envoie des données de manière fiable toutes les 30 minutes.
Étape 1: Pièces requises
- PCB sur mesure. Fichiers Gerber zippés ici (instructables.com semble bloquer les téléchargements de fichiers ZIP). J'ai fortement recommandé jlcpcb.com pour la production de PCB. Pour les personnes vivant au Royaume-Uni, je suis heureux de vous envoyer un PCB de rechange pour une contribution minimale aux frais de matériel et d'affranchissement - envoyez-moi un message.
- ATMega328P-AU
- Horloge temps réel DS3231 modifiée (voir paragraphe ci-dessous)
- Carte de dérivation BME280, telle que celle-ci
- Module SIM800L GSM GPRS
- Diverses pièces SMD selon la liste détaillée.
- Hammond 1591, boîtier ABS noir, IP54, à bride, 85 x 56 x 35 mm, de RS Components UK
Modification du DS3231
Le réseau de quadruples résistances entouré en rouge doit être dessoudé. D'autres méthodes plus destructives sont également acceptables, mais évitez le pontage des plaquettes sur la rangée intérieure de 4 plaquettes (vers le côté du MCU). Les 4 autres plots sont connectés de toute façon par des pistes PCB. Cette modification est indispensable afin de permettre à la broche SQW de fonctionner comme une alarme. Sans retirer les résistances, cela ne fonctionnera pas tant que vous ne connecterez pas une alimentation VCC au module, ce qui va à l'encontre de l'objectif d'avoir un RTC à très faible puissance.
Étape 2: Principes schématiques
Les principales priorités pour la conception étaient:
- Fonctionnement sur batterie avec une faible consommation de courant de veille
- Design compact
Source de courant
Deux piles Saft Lithium thionyl AA de 3,6 V. Un MOSFET à canal P pour la protection contre l'inversion de polarité.
Il y a deux régulateurs de tension dans le circuit:
- Un régulateur abaisseur Texas Instruments TPS562208 2 A pour alimenter le SIM800L à environ 4,1 V. Ceci est commutable à partir de l'ATMega et est mis en mode d'arrêt la plupart du temps via la broche Activer 5.
- Un régulateur MCP1700 3.3V pour ATMega et BME280. Il s'agit d'un régulateur à faible chute extrêmement efficace avec un courant de repos d'environ 1 µA seulement. Comme il ne tolère que jusqu'à 6V en entrée, j'ai ajouté deux diodes de redressement (D1, D2) en série pour faire baisser l'alimentation 7,2V à un niveau acceptable autour de 6V. J'ai oublié d'ajouter le condensateur de découplage habituel de 10 µF sur le PCB pour l'alimentation de l'ATMega. Par conséquent, j'ai amélioré le condensateur de sortie habituel sur le MCP1700 de 1 à 10 µF et cela fonctionne bien.
- Surveillance de la tension de la batterie via ADC0 sur l'ATMega (via un diviseur de tension)
Horloge en temps réel
Un DS3231 modifié, qui réveille l'ATMega à des intervalles spécifiés pour démarrer un cycle de mesure et de transmission de données. Le DS3231 lui-même est alimenté par une pile au lithium CR2032.
BME280
J'ai essayé d'utiliser le module Bosch BME280 d'origine seul, qui est presque impossible à souder en raison de sa taille minuscule. Par conséquent, j'utilise le tableau de répartition largement disponible. Comme cela a un régulateur de tension inutile, qui consomme de l'énergie, je l'allume avec un MOSFET à canal N juste avant les mesures.
SIM800L
Ce module est fiable mais semble assez capricieux si l'alimentation n'est pas solide. J'ai trouvé qu'une tension d'alimentation de 4,1 V fonctionne mieux. J'ai fait les traces de PCB pour VCC et GND sur le SIM800L très épais (20 mil).
Commentaires sur le schéma/PCB
- L'étiquette de réseau "1" - répertoriée comme "SINGLEPIN" dans la liste des pièces fait simplement référence à une broche d'en-tête mâle.
- Les deux broches adjacentes à l'interrupteur à glissière doivent être pontées avec un cavalier pour un fonctionnement normal, sinon la ligne VCC est ouverte ici. Ils sont destinés aux mesures de courant si nécessaire.
- Le condensateur de 100 µF (C12) pour le module SIM800L n'est pas nécessaire. Il a été ajouté comme mesure de précaution (désespérée) en cas de problèmes de stabilité attendus
Étapes de montage recommandées
- Assemblez tous les composants d'alimentation dans la partie inférieure gauche du PCB. La broche d'activation (broche 5) du TPS562208 doit être au niveau logique haut pour le test, sinon le module est en mode arrêt et vous aurez une sortie 0V. Pour tirer la broche d'activation vers le haut pour le test, un fil temporaire du plot 9 de l'ATMega (qui sur le PCB est câblé à la broche 5 du régulateur de tension) peut être connecté à un point VCC; le point le plus proche serait à la broche inférieure de R3, qui se trouve sur la ligne VCC.
- Testez la sortie du TPS562208 entre les broches inférieures de C2, C3 ou C4 et GND. Vous devriez avoir environ 4.1V.
- Sortie de test du MCP1700, entre la broche supérieure droite de U6 et GND. Vous devriez avoir 3.3V.
- Soudure ATMega328P; observez le marqueur de la broche 1 dans le coin supérieur gauche. Une certaine pratique requise, mais pas trop difficile.
- Gravez le chargeur de démarrage sur ATMega328 - tutoriels pour cela ailleurs. Vous n'avez pas nécessairement besoin d'utiliser des en-têtes de broche pour vous connecter à MOSI, MISO, SCK et RST. Pendant les quelques secondes qu'il faut pour graver le bootloader, vous pouvez utiliser des fils Dupont et utiliser un peu d'angulation pour obtenir un bon contact.
- Fixez 5 connecteurs femelles pour le DS3231.
- Souder SIM800L via des embases mâles
- Soudure BME280
- Téléchargez le code dans Arduino IDE à l'aide d'un adaptateur USB2TTL (sélectionnez Arduino Uno/Genuino comme cible).
Étape 3: Code Arduino
Voir le code source Arduino en pièce jointe.
Étape 4: Test en conditions réelles
J'ai percé deux petits trous sur le côté droit du boîtier juste en profondeur jusqu'à l'avant. Je les ai recouverts de l'intérieur avec des patchs Goretex pour permettre l'échange d'air mais exclure l'eau. J'ai ajouté une protection supplémentaire contre la pluie avec de petits toits en plastique. J'ai ensuite inséré l'ensemble complet dans le boîtier avec les composants vers l'avant et la batterie vers le couvercle. J'ajoute un peu de graisse de silicone au boîtier pour une protection supplémentaire contre les infiltrations d'eau.
L'unité est actuellement "installée" à côté d'une petite rivière. Voici le flux de données en direct.
Conseillé:
Comment faire un enregistreur de données en temps réel d'humidité et de température avec Arduino UNO et carte SD - Simulation d'enregistreur de données DHT11 dans Proteus : 5 étapes
Comment faire un enregistreur de données en temps réel d'humidité et de température avec Arduino UNO et carte SD | Simulation de l'enregistreur de données DHT11 dans Proteus : Introduction : salut, c'est Liono Maker, voici le lien YouTube. Nous réalisons un projet créatif avec Arduino et travaillons sur des systèmes embarqués. Enregistreur de données : un enregistreur de données (également un enregistreur de données ou un enregistreur de données) est un appareil électronique qui enregistre des données au fil du temps avec
Carte intelligente de l'Idaho avec données LED + art : 8 étapes (avec photos)
Carte intelligente de l'Idaho avec données LED + art : j'ai toujours voulu un moyen d'afficher de manière artistique et dynamique des données géographiques en "peinture" une carte avec de la lumière. Je vis dans l'Idaho et j'adore mon état, alors j'ai pensé que ce serait un bon endroit pour commencer ! En plus d'être une œuvre d'art
Station météo avec enregistrement de données : 7 étapes (avec photos)
Station météo avec enregistrement des données : dans cette instructable, je vais vous montrer comment créer vous-même un système de station météo. Tout ce dont vous avez besoin, ce sont des connaissances de base en électronique, en programmation et un peu de temps. Ce projet est toujours en cours. Ce n'est que la première partie. Les mises à niveau seront
Liaison de données série RF {via USB} : 3 étapes
Liaison de données série RF {via USB} : TECGRAF DOC Comment transmettre des données à l'aide d'un module RF bon marché via USB. Le circuit reçoit de l'énergie du port USB (peut fournir 100mA et avec une certaine programmation, vous pouvez atteindre 500mA) Liste des matériaux : 1 - Une paire de module RF (comme Laipac RLP/TL
Construisez une liaison de données radio de 500 mètres pour moins de 40 $ : 7 étapes
Construisez une liaison de données radio de 500 mètres pour moins de 40 $ : Vous avez un réservoir d'eau que vous souhaitez mesurer, un barrage ou une porte ? Vous voulez détecter une voiture qui descend dans l'allée mais vous ne voulez pas faire passer des fils dans le jardin ? Cette instructable montre comment envoyer des données à 500 mètres avec une fiabilité à 100 % à l'aide du microcontrôleur picaxe