« Centrale d'acquisition domotique » : différence entre les versions

De Fab Lab Sud31-Val d'Ariège
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
 
(7 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Exemple de caractéristiques ==
== Exemple de caractéristiques ==


- capteurs à transmission sans fils
* Capteurs à transmission sans fils
- mesure température, humidité, intensité, tension, éclairement, niveau sonore, pluie, vent, pression atmosphérique, etc.
* Mesure température, humidité, intensité, tension, éclairement, niveau sonore, pluie, vent, pression atmosphérique, etc.
- acquisitions à cadence variable ou semi-aléatoire
* Acquisitions à cadence variable ou semi-aléatoire
- possibilité de suivre 32 capteurs au moins
* Possibilité de suivre 32 capteurs au moins
- portée : du fond du jardin à l'autre bout de la maison (≈ 50m)
* Portée : du fond du jardin à l'autre bout de la maison (≈ 50m)
- centrale mémorisant les données jusqu'à ce qu'elles soient récupérées
* Centrale mémorisant les données jusqu'à ce qu'elles soient récupérées
- sortie des données sous format courant
* Sortie des données sous format courant


== Discussions ==
== Discussions ==
Ligne 13 : Ligne 13 :
=== Que veut on faire des mesures d'une telle centrale ? ===
=== Que veut on faire des mesures d'une telle centrale ? ===


- Connaitre sa maison sur le plan thermique et son environnement (vent, soleil, pluie)
* Connaitre sa maison sur le plan thermique et son environnement climatique (vent, soleil, pluie)
- Pouvoir simuler des stratégies de chauffage ou de ventilation
* Pouvoir simuler des stratégies de chauffage ou de ventilation
- Activation une VMC en fonction du taux d'humidité. Détecter un courant d'air (avec un capteur "courant d'air" ;-) )
* Activation une VMC en fonction du taux d'humidité. Détecter un courant d'air (avec un capteur "courant d'air" ;-) ) et arrêter la VMC
et arrêter la VMC


=== Quels canaux pour la transmission des données ? ===
=== Quels canaux pour la transmission des données ? ===
Ligne 59 : Ligne 58 :


=== Base technique pour les modules autonomes ===
=== Base technique pour les modules autonomes ===
Utilisation d'un micro-contrôleur programmable, du type ATtiny85 (8 broches) si l'on a pas besoin de nombreuses E/S, ATtiny84 (14 broches) dans le cas contraire. Différences entre l'ATmega328 d'un Arduino Uno, et l'ATtiny85 : https://goddess-gate.com/projects/fr/arduino/attiny85vsatmega328. Pour l'ATtiny84, ce sont les mêmes caractéristiques mémoire que le 85, avec plus d'E/S
Utilisation d'un micro-contrôleur programmable, du type ATtiny85 (8 broches) si l'on a pas besoin de nombreuses E/S, ATtiny84 (14 broches) dans le cas contraire. Différences entre l'ATmega328 d'un Arduino Uno, et l'ATtiny85 : [https://goddess-gate.com/projects/fr/arduino/attiny85vsatmega328]. Pour l'ATtiny84, ce sont les mêmes caractéristiques mémoire que le 85, avec plus d'E/S


[[Les Capteurs]]
[[Les Capteurs]]
Ligne 66 : Ligne 65 :
Ou : par quoi on commence ?
Ou : par quoi on commence ?


FM : peux apporter un récepteur 433MHz, une sonde de température avec un émetteur intégré 433MHz, des sondes de température KTY81. Il faudrait programmer un arduino pour qu'il décode la sortie d'un module récepteur ou se procurer un émetteur en module. Et un bon ampèremètre ou une résistance de 0.5 Ohm. Le même arduino pourrait mesurer le courant consommé par le module ?
FM : peux apporter un récepteur 433MHz, une sonde de température avec un émetteur intégré 433MHz, des sondes de température KTY81. Il faudrait programmer un arduino pour qu'il décode la sortie d'un module récepteur ou se procurer un émetteur en module. Et un bon ampèremètre ou une résistance de 0.5 Ω. Le même arduino pourrait mesurer le courant consommé par le module ?


AB : Les KTY81 me semblent assez "complexes" à utiliser non (code et branchements pour Arduino) ? Pourquoi ne pas partir sur un TMP36 ou un MCP9701 ? L'Arduino sachant mesurer des tensions analogiques, ça simplifierai le branchement. Sinon, en ce qui concerne la mesure de courant, un Arduino ne sait pas faire. Il existe par contre des modules exprès pour ça, genre http://www.gotronic.fr/art-capteur-de-courant-15-5a-2452-21739.htm
AB : Les KTY81 me semblent assez "complexes" à utiliser non (code et branchements pour Arduino) ? Pourquoi ne pas partir sur un TMP36 ou un MCP9701 ? L'Arduino sachant mesurer des tensions analogiques, ça simplifierai le branchement. Sinon, en ce qui concerne la mesure de courant, un Arduino ne sait pas faire. Il existe par contre des modules exprès pour ça, genre http://www.gotronic.fr/art-capteur-de-courant-15-5a-2452-21739.htm
Ligne 75 : Ligne 74 :


Yep. Dans ce cas voir si on ne peux pas grouper d'autres achats, histoire de limiter les frais de port.
Yep. Dans ce cas voir si on ne peux pas grouper d'autres achats, histoire de limiter les frais de port.



== Travaux techniques ==

=== Première séance : communication entre deux cartes Arduino à l'aide de modules nRF24L01+ ===

Cette séance a servi à valider le fonctionnement technique des modules nRF24L01+ entre deux cartes Arduino.

Le choix de la bibliothèque de code s'est porté sur [https://github.com/TMRh20/RF24/ RF24] : compatibilité (entres autres) Arduino et Raspberry Pi, documentation complète [http://tmrh20.github.io/RF24/], exemples nombreux. Une fois passé l'agacement d'un branchement rendu peu aisé de par le choix du connecteur mâle utilisé (non compatible breadboard), nous avons pu effectuer quelques tests

==== Préambule ====
La carte propose 4 puissances radio :
* MIN : -18dBm
*LOW : -12dBm
*HIGH : -6dBm
*MAX : 0dBm

==== Tests électriques ====
Quel que soit la puissance radio choisie, ou le mode émission / réception, la consommation mesurée au multimètre est d'environ 15,6 mA. Nous soupçonnons un lissage de la consommation due à l'imprécision du multimètre. D'autres tests sont à prévoir afin de vérifier qu'il n'y a pas de pics de consommation lors des émissions.

==== Tests de portées ====
Plusieurs tests ont été effectués (avec l'exemple Arduino « GettingStarted »). La portée max est considérée comme atteinte lorsqu'ils y a plus d'échecs d'émission que de réussites.

*Premier test : puissance radio à LOW, un module dans le local (à un étage, entouré de murs métalliques) avec la seule fenêtre ouverte. Le deuxième module était en extérieur, au rez-de-chaussée. La portée max atteinte est d'environ 25 mètres.
*Deuxième test : puissance radio à LOW, les modules en vue directe. La portée max atteinte est d'environ 90 mètres.
*Troisième test : puissance radio à MIN, les modules en vue directe. La portée max atteinte est d'environ 65 mètres.

Il n'y a pas eu de tests en puissance radio HIGH et MAX, nous n'avions pas assez de recul en vue directe.

==== Conclusion de la séance ====

Ces modules ont l'air d'être partis pour être ceux qui seront utilisés pour le projet : bonne portée, consommation minimaliste, et facilité d'utilisation. Il faudra par la suite voir si ces points se confirment lors de l'utilisation d'un Raspberry Pi.

Dernière version du 21 décembre 2015 à 15:45

Exemple de caractéristiques

  • Capteurs à transmission sans fils
  • Mesure température, humidité, intensité, tension, éclairement, niveau sonore, pluie, vent, pression atmosphérique, etc.
  • Acquisitions à cadence variable ou semi-aléatoire
  • Possibilité de suivre 32 capteurs au moins
  • Portée : du fond du jardin à l'autre bout de la maison (≈ 50m)
  • Centrale mémorisant les données jusqu'à ce qu'elles soient récupérées
  • Sortie des données sous format courant

Discussions

Que veut on faire des mesures d'une telle centrale ?

  • Connaitre sa maison sur le plan thermique et son environnement climatique (vent, soleil, pluie)
  • Pouvoir simuler des stratégies de chauffage ou de ventilation
  • Activation une VMC en fonction du taux d'humidité. Détecter un courant d'air (avec un capteur "courant d'air" ;-) ) et arrêter la VMC

Quels canaux pour la transmission des données ?

L'article de Wikipedia résume bien la situation :

Bande des 433 MHz : pas cher mais encombré (télécommandes portail, stations météo, etc).

Bande des 868 MHz : des modules existent chez Conrad, mais beaucoup plus cher que le 433MHz (30€ contre 12€)

Bande radio des 2,4 GHz : module radio de type « nrf24l0 ». Pour la portée, voir si certains acceptent une antenne sur connecteur µF.

- Chez Conrad : Carte MikroElektronika MIKROE-1305 : 16€, basée sur un nRF24L01P. Dans la notice on voit les broches Tx/Rx 3.3V, pas d'info de consommation.

- [1] : C'est du SPI, pas de l'UART, donc 4 broches. Pour faire travailler le µC en 3.3V, il n'y a pas de problème.

- [2] pour l'utiliser avec de l'Arduino et ATtinyXX. Par contre, ça a l'air de bouffer 5 broches, donc exclu les ATtiny85

- [3] : Process of getting attiny85 to work with nRF24L01 on RF24 libraries.

Et en pas cher :

- [4] : 2,95 €, Portée: jusqu'à 250 mètres en terrain dégagé

- [5] : 6,90 € (il y a les consommations avec celui-ci), Portée: 1000 mètres en terrain dégagé

Des fournisseurs : [6], [7],

La bande Bluetooth (2.4GHz aussi) : pas assez de portée, sans compter que nous serons limité par le nombre de modules (7 esclaves maximum par maitre). Pour info, un article que Arnaud avais pondu pour le blog de sa boîte.

Quelles sources d'énergies pour les capteurs (et la centrale) ?

Pour la centrale, si on part sur une base RaspberryPi ou équivalent, alimentation secteur (chargeur micro-USB), avec éventuellement une batterie USB intercalaire pour palier les coupures de courant.

Pour les modules autonomes, plusieurs possibilités :

- Gros condensateur, mais la capacité ne risque pas d'être suffisante pour assurer l'alimentation du module dans la durée (nuit principalement)

- Batteries NiMH à faible autodécharge (penser Sanyo Eneloop)

Dans les deux cas, un capteur solaire peut assurer la charge des batteries / condensateur

Base technique pour les modules autonomes

Utilisation d'un micro-contrôleur programmable, du type ATtiny85 (8 broches) si l'on a pas besoin de nombreuses E/S, ATtiny84 (14 broches) dans le cas contraire. Différences entre l'ATmega328 d'un Arduino Uno, et l'ATtiny85 : [8]. Pour l'ATtiny84, ce sont les mêmes caractéristiques mémoire que le 85, avec plus d'E/S

Les Capteurs

Plan de travail

Ou : par quoi on commence ?

FM : peux apporter un récepteur 433MHz, une sonde de température avec un émetteur intégré 433MHz, des sondes de température KTY81. Il faudrait programmer un arduino pour qu'il décode la sortie d'un module récepteur ou se procurer un émetteur en module. Et un bon ampèremètre ou une résistance de 0.5 Ω. Le même arduino pourrait mesurer le courant consommé par le module ?

AB : Les KTY81 me semblent assez "complexes" à utiliser non (code et branchements pour Arduino) ? Pourquoi ne pas partir sur un TMP36 ou un MCP9701 ? L'Arduino sachant mesurer des tensions analogiques, ça simplifierai le branchement. Sinon, en ce qui concerne la mesure de courant, un Arduino ne sait pas faire. Il existe par contre des modules exprès pour ça, genre http://www.gotronic.fr/art-capteur-de-courant-15-5a-2452-21739.htm

FM : le plus souvent on mesure le courant par la tension développé aux bornes d'une résistance en série avec le système.

Gotronic accepte Paypal, on pourrait prendre 2 ou 4 modules à 3€ ; l'arduino peut causer SPI.

Yep. Dans ce cas voir si on ne peux pas grouper d'autres achats, histoire de limiter les frais de port.


Travaux techniques

Première séance : communication entre deux cartes Arduino à l'aide de modules nRF24L01+

Cette séance a servi à valider le fonctionnement technique des modules nRF24L01+ entre deux cartes Arduino.

Le choix de la bibliothèque de code s'est porté sur RF24 : compatibilité (entres autres) Arduino et Raspberry Pi, documentation complète [9], exemples nombreux. Une fois passé l'agacement d'un branchement rendu peu aisé de par le choix du connecteur mâle utilisé (non compatible breadboard), nous avons pu effectuer quelques tests

Préambule

La carte propose 4 puissances radio :

  • MIN : -18dBm
  • LOW : -12dBm
  • HIGH : -6dBm
  • MAX : 0dBm

Tests électriques

Quel que soit la puissance radio choisie, ou le mode émission / réception, la consommation mesurée au multimètre est d'environ 15,6 mA. Nous soupçonnons un lissage de la consommation due à l'imprécision du multimètre. D'autres tests sont à prévoir afin de vérifier qu'il n'y a pas de pics de consommation lors des émissions.

Tests de portées

Plusieurs tests ont été effectués (avec l'exemple Arduino « GettingStarted »). La portée max est considérée comme atteinte lorsqu'ils y a plus d'échecs d'émission que de réussites.

  • Premier test : puissance radio à LOW, un module dans le local (à un étage, entouré de murs métalliques) avec la seule fenêtre ouverte. Le deuxième module était en extérieur, au rez-de-chaussée. La portée max atteinte est d'environ 25 mètres.
  • Deuxième test : puissance radio à LOW, les modules en vue directe. La portée max atteinte est d'environ 90 mètres.
  • Troisième test : puissance radio à MIN, les modules en vue directe. La portée max atteinte est d'environ 65 mètres.

Il n'y a pas eu de tests en puissance radio HIGH et MAX, nous n'avions pas assez de recul en vue directe.

Conclusion de la séance

Ces modules ont l'air d'être partis pour être ceux qui seront utilisés pour le projet : bonne portée, consommation minimaliste, et facilité d'utilisation. Il faudra par la suite voir si ces points se confirment lors de l'utilisation d'un Raspberry Pi.