Table des matières:

«Alors, soyons immédiatement d'accord: vous n'allez pas faire un film pour Hollywood. Même au pays des merveilles, pas plus de cinq pour cent de tous les scénarios sont approuvés, et seulement un pour cent entre ensuite en production ... Donc, au lieu de tout cela, vous allez créer votre propre Hollywood. »
Ed Gaskell "Faire du cinéma numérique ou Hollywood à la maison"
Préface
Quoi, une autre station météo sur l'Arduino?! Oui, encore une chose, et quelque chose me dit, pas la dernière sur Internet des objets.
Tout comme chaque programmeur doit écrire le programme "Hello World!", Chaque arduino doit donc avoir l'expérience de construire une station météo simple ou peu.
Un nombre considérable de projets déjà créés de stations météorologiques sur Internet sont décrits, le lecteur peut choisir n'importe lequel d'entre eux pour la mise en œuvre. Je ne me cacherai pas, j'ai étudié attentivement une douzaine de projets de ce type et un tas de projets connexes. Par conséquent, on ne peut pas dire que j'ai tout créé à partir de zéro, bien sûr, je «me tenais sur les épaules de géants».
Je dois dire tout de suite que mes plans n'incluaient pas l'utilisation de services tiers pour le stockage et l'affichage des données. Je voulais personnellement ressentir et comprendre comment tout cela fonctionne de l'intérieur du début à la fin, de A à Z.
Donc, pour ceux qui veulent riveter rapidement quelque chose à partir de rien, cette série d'articles ne convient probablement pas. Il est plus facile d'acheter un designer prêt à l'emploi avec des instructions de montage. Les professionnels de la microélectronique n'ont rien à faire ici, peut-être hennissant et se souvenant d'eux-mêmes au début du voyage.
Mais pour ceux qui veulent vraiment le comprendre, je pense qu'ils l'aimeront. Peut-être que le matériel est utile comme outil de formation.
L'auteur vous guidera à travers les dédales complexes de la technologie moderne de l'Internet des objets. De plus, les yeux d'un débutant, puisqu'il l'est lui-même.
Ce projet a été mis en œuvre en 2016, mais j'espère qu'il est toujours d'actualité.
Ensemble technologique
Nous apprendrons et travaillerons avec des choses simples et complexes:
- capteurs de température et d'humidité type DHT22, DHT11
- capteur de pression barométrique type BMP180
- Module WiFi ESP8266
- Module radio nRF24 2,4 GHz
- Famille Arduino Pro Mini, Arduino Mega
- batterie solaire et batteries
- Langage de programmation C / C ++
- Langage de programmation PHP
- Système de gestion de base de données MySQL
- Langage de programmation Java et framework Android (création d'une application pour Adnroid pour afficher les données météo sur un smartphone).
Certains des sujets énumérés et les œufs n'en valent pas la peine, et certains peuvent être étudiés pendant des années. Par conséquent, nous n'aborderons des choses complexes que dans la partie directement liée à ce projet, afin que vous compreniez comment tout cela fonctionne.
Mais nous allons commencer dès le début . A savoir, à partir de la description et de la conception du futur appareil "sur papier" , de sorte qu'à la fin chaque brique se trouvait à sa place.
Prototypage
Comme Wikipedia nous le dit correctement, le prototypage est une mise en œuvre rapide et approximative d'un système fonctionnel. Ce qui, oui, ne fonctionnera pas de manière totalement inefficace et avec quelques erreurs, mais cela donnera une idée de savoir si le métier doit être développé selon un design industriel. Le processus de prototype n'a pas besoin d'être long. L'étape de prototypage est suivie d'une analyse du système et de son raffinement.
Mais c'est dans une industrie où les travailleurs sont employés à temps plein.
Quiconque rivalise avec son artisanat de projet animalier pour «Internet des objets» le soir doit être conscient qu'il crée un prototype, un produit semi-fini. Il est très loin du niveau d'un produit industriel normal. Par conséquent, nous ne devons pas confier à nos métiers d'amateur des parcelles de soutien à la vie responsables et espérons qu'elles ne nous laisseront pas tomber.
Un produit industriel est construit sur une base d'élément industriel et passe ensuite par de nombreuses autres étapes, y compris le débogage, les tests et la maintenance, avant de devenir un best-seller.
Ainsi, au lieu de toute cette gravité, nous allons créer notre propre jouet, mais pas un simple. Avec des éléments de créativité technique, les débuts de la programmation et la connaissance (en cours de création) de beaucoup d'autres choses connexes.
Bien sûr, les ingénieurs en électronique auront du mal à l'étape de la programmation, et les programmeurs devront transpirer sur les circuits, mais l'auteur essaiera d'expliquer tout aussi accessible que possible et de décrire clairement pourquoi certaines solutions ont été utilisées.
Prérequis
Cette étape est généralement ignorée. Décider de faire quelque chose comme ça en ce moment, puis on découvre de petits détails qui mettent tout le projet dans une impasse ou même le rendent insupportable. Toute notre liste de souhaits doit être enregistrée, j'utilise un disque Google pour cela, elle est disponible à partir d'un PC et d'un appareil mobile.
Donc, notre station météo devrait:
- mesurer la température et l'humidité à l'extérieur
- mesurer la température et l'humidité dans la maison
- mesurer la pression atmosphérique
- afficher les valeurs indiquées à l'écran
- transférer des données vers un serveur sur Internet, où les données seront stockées dans une base de données et affichées sur une page Web, ou utilisées dans une application mobile.
Les capteurs utilisés sont les plus simples et les moins chers. Par exemple, pour l'avenir, je dirai que le DHT22 mesure la température de façon assez précise, mais avec l'humidité, c'est un peu inexact. Mais, encore une fois, je le répète, cela n'a pas d'importance, car nous avons un prototype, et une propagation de 5% d'humidité n'affectera rien d'important dans nos vies.
L'architecture du système, le matériel et les logiciels devraient offrir une extensibilité supplémentaire du système pour ajouter de nouveaux capteurs et de nouvelles fonctionnalités.
Le fer Sélection des composants
C'est la partie la plus cruciale, et non la soudure ou la programmation du tout. Après avoir déterminé les exigences du système, il est nécessaire de décider à l'aide de quoi exactement elles seront mises en œuvre.
C'est là qu'il y a une nuance. Pour choisir les composants dont vous avez besoin de bien connaître leurs capacités, vous devez connaître la technologie elle-même. Autrement dit, cela nécessite d'être loin d'un ingénieur en électronique et programmeur débutant. Alors, que faut-il maintenant passer quelques années à étudier l'ensemble du spectre des appareils possibles?
Cercle vicieux? Mais des cercles vicieux existent pour les briser.
Il y a une issue. Vous pouvez simplement reprendre et répéter le projet de quelqu'un d'autre. J'ai étudié les projets existants de stations météorologiques et j'espère avoir fait un pas en avant.
Alors. L'architecture de la station météo est basée sur Arduino. Parce que Arduino a un petit seuil d'entrée, et je l'ai déjà traité. Il est plus facile de choisir plus loin.
Il est immédiatement devenu évident que la station météorologique comprendrait un capteur à distance en direct et un module central.
L'unité centrale principale sera située à l'intérieur. Il est important de déterminer cela au stade initial, à partir de là, des caractéristiques importantes telles que le régime de température de fonctionnement et la «danse» du pouvoir.
Le ou les capteurs à distance seront sans "cerveaux", sa tâche est de mesurer périodiquement et de transmettre les données à l'unité centrale. L'unité centrale reçoit les données de tous les capteurs, les affiche à l'écran et les envoie à la base de données sur Internet. Eh bien, c'est déjà beaucoup plus facile là-bas, dès que les données sont dans la base de données, vous pouvez en faire ce que vous voulez, même dessiner des graphiques.
Pour les relations avec le monde extérieur, Internet a été définitivement choisi par le module WiFi ESP8266 avec presque aucune alternative (environ. Peut-être que de telles alternatives sont apparues). Des cartes d'extension Ethernet Arduino sont disponibles, mais je ne voulais pas du tout être connecté au câble.

Une question intéressante était de savoir comment fournir une connexion entre un capteur monté sur fenêtre (ou des capteurs, rappelez-vous l'exigence d'extensibilité du système?) Et le centre. Les balises 433 MHz ne conviennent absolument pas (elles ne conviennent à rien du tout).
Profitez à nouveau de l'ESP8266?
Inconvénients de cette décision:
Le WiFi durable est nécessaire en dehors de la maison
la portée de communication ne sera pas longue
la fiabilité en souffrira, si Internet tombe en panne, nous ne verrons pas nos capteurs à distance
une plus grande consommation d'énergie.
Consommation électrique ESP8266:
lors de la transmission de 120 à 170 mA
lors de la prise de 50 à 56 mA
en sommeil profond 10 μA (μA)
de 5 µA (µA).
En fin de compte, la puce nRF24L01 + avec un émetteur et un récepteur 2,4 GHz dans une bouteille, avec une antenne externe supplémentaire, a été choisie pour connecter des capteurs à distance à l'unité principale, de sorte qu'elle «percerait» certainement les murs.

Consommation électrique nRF24L01 + 2,4 GHz:
- lors de la réception de 11 mA
- lors de la transmission à 2 Mbps - 13 mA
- en mode veille-I - 26 μA (μA)
- état d'arrêt 900 nA (nA).
Quant à l'ESP8266, celle du nRF24L01 + la plage de température de travail est adaptée: de -40 ℃ à + 80 ℃.
Vous pouvez acheter nRF24L01 + pour environ 1 $, ou immédiatement avec une antenne externe pour 3 $. Vous pouvez acheter l'ESP8266-01 pour environ 4 $. Lisez attentivement la description du produit! Sinon, achetez une antenne.
Le cœur du système se profilait. Nous nous tournons vers les capteurs eux-mêmes.
Dans la rue, comme vous le savez, la température peut atteindre des valeurs négatives, donc le capteur DHT11 n'est pas adapté, mais le DHT22 est parfait.

Caractéristiques du DHT22 / AM2302:
- alimentation de 3,3 V à 5 V, 5 V recommandé
- consommation maximale 2,5mA, au moment de la mesure et du transfert de données
- plage de mesure d'humidité 0-100% avec une précision de 2-5%
- plage de mesure de température de -40 à + 125 ° C avec une précision de ± 0,5 ° C
- une demande de mesure ne dépassant pas 0,5 Hz - une fois toutes les 2 secondes.
À l'intérieur de la maison, j'espère qu'il n'y aura pas de températures négatives, vous pouvez donc utiliser le DHT11, d'autant plus que je l'ai déjà eu.
Caractéristiques DHT11:
- alimentation de 3,3 V à 5 V
- consommation maximale 2,5 mA, au moment de la mesure et du transfert de données
- plage de mesure d'humidité 20-80% avec une précision de 5%
- plage de mesure de température de 0 à + 50 ° C avec une précision de ± 2 ° C
- demande de mesure pas plus de 1 Hz - une fois par seconde.
Vous pouvez acheter DHT22 pour environ 3 $. Le DHT11 est moins cher - 1 $, mais il est moins précis.
Revenons maintenant à Arduino. Quelle planche choisir?
J'ai testé des parties individuelles du système sur un Arduino UNO. C'est-à-dire J'ai connecté le module ESP à Uno et l'ai étudié, déconnecté, puis connecté nRF24, etc. Pour la mise en œuvre finale du capteur à l'étranger, il a choisi l'Arduino Pro Mini comme le plus proche d'Uno parmi les miniatures.

En termes de consommation d'énergie, l'Arduino Pro Mini a également l'air bien:
- il n'y a pas de convertisseur USB-TTL, qui en soi "mange" beaucoup,
- La LED est connectée via une résistance de 10k.
Pour des économies d'énergie avancées, il était prévu:
- retirer la LED - l'indicateur d'alimentation sur l'Arduino Pro Mini (je regrette, n'a pas gâché la carte)
- soit utiliser l'assemblage nu sur le microprocesseur Atmel ATmega328 (non utilisé)
- Utilisez la bibliothèque Low Power ou JeeLib .
J'ai choisi Low Power Library dans les bibliothèques, c'est simple et ne contient que ce dont vous avez besoin.
Pour l'unité centrale, comme il était prévu d'y connecter de nombreux périphériques, la carte Arduino Mega a été choisie. De plus, il est entièrement compatible avec UNO et dispose de plus de mémoire. Pour l'avenir, je dirai que ce choix était tout à fait justifié.
Vous pouvez acheter un Arduino Mega pour environ 8 $.
Puissance et consommation d'énergie
Maintenant sur la puissance et la consommation d'énergie.
L'Arduino Pro Mini se présente sous deux formes:
- Alimentation 5V et fréquence 16MHz
- Tension d'alimentation 3,3 V et fréquence 8 MHz.
Étant donné que le module radio nRF24L01 + nécessite 3,3 V pour l'alimentation et que les performances ne sont pas importantes ici, achetez l'Arduino Pro Mini à 8 MHz et 3,3 V.
Dans le même temps, la plage de tension de l'Arduino Pro Mini est:
- 3,35-12 V pour le modèle 3,3 V
- 5-12 V pour 5 V.
J'avais déjà un Arduino Pro Mini sur 5V, c'est pourquoi je l'ai utilisé. Vous pouvez acheter un Arduino Pro Mini pour environ 4 $.
L'unité centrale sera alimentée à partir du réseau 220 V via une petite unité d'alimentation fournissant une sortie 12V, 450mA, 5W. Comme ça pour 5 $. Il y a toujours une sortie séparée à 5V.

Et si cela ne suffit pas, cela peut être plus puissant. En d'autres termes, économiser de l'énergie pour l'unité centrale n'a pas beaucoup de sens. Mais pour un capteur sans fil à distance, l'économie d'énergie est la partie la plus importante. Mais je ne voudrais pas non plus perdre la fonctionnalité.
Par conséquent, l'Arduino Pro Mini et le module radio nRF24 seront alimentés par un tas de 4 batteries Ni-Mh.
Et rappelez-vous, la capacité maximale d'une batterie moderne est d' environ 2500-2700mAh, tout ce qui est plus est soit des astuces marketing (Ansmann 2850) ou un canular (UltraFire 3500).
Je n'utilise pas de batteries Li-Ion pour plusieurs raisons:
- très cher
- lorsque la température ambiante descend en dessous de 0 ° C, la puissance de la batterie lithium-ion diminue à 40-50%
- ceux qui sont bon marché sont fabriqués sans protection et ne sont pas sûrs (pendant un court-circuit ou une décharge, ils peuvent exploser et brûler, voir un tas de vidéos sur YouTube)
- vieillir, même s'ils ne sont pas utilisés (bien que cela puisse être dit pour tous les éléments chimiques), après 2 ans, la batterie Li-Ion perd environ 20% de sa capacité.
Pour le prototype, il est tout à fait possible de s'en sortir avec des piles Ni-MH AA ou AAA de haute qualité. De plus, nous n'avons pas besoin de grands courants. Le seul inconvénient des batteries Ni-MH est leur longue charge.
Le schéma général de la station météo
Pour résumer. Voici un aperçu général de la façon dont tout fonctionne.

À suivre.