DomotiqueProjetOliv

De Wiki LOGre
Révision de 29 février 2016 à 01:04 par Oliv' (discuter | contributions) (Serveur)

(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)
Aller à : navigation, rechercher


But du projet

  • Surveiller la consommation électrique. Il faut que je retrouve une étude où le fait de surveiller sa conso la ferait baisser de 5 à 15%.
  • Faciliter la vie de tous les jours:
    • Entendre la sonnette partout, ce qui n'est pas le cas actuellement
    • Eteindre toutes les lampes d'appoint d'une pièce d'un coup
    • Faire démarrer le lave vaisselle et le lave linge tous seuls en heures creuses
    • Piloter plus finement le poêle à granules
    • Etc, plein de scénarios à découvrir :)
  • Mieux comprendre le comportement thermique de la maison en fonction de la météo
  • Le fun, et apprendre plein de choses au passage !

Capteurs

PCB

Pour le moment je me suis fait une carte à base d'ATmega328. ça ressemble à un Arduino mini avec des empreintes qui me conviennent.

Les sources sont

Cahier des charges

  • Puisse fonctionner sur 2 piles AA
  • Puisse fonctionner sur Li-ion/Li-po (donc régulateur 3.3V)
  • Finalement, pas de régulateur "Boost/step-up". Si j'ai besoin de 3.3V se sera avec des batterie lithium ou 3xAA
  • Empreintes pour mettre facilement des composants SPI, I2C et une avec les alim+pin à relier à une entrée numérique ou analogique
  • Compact (5x5cm max pour rentrer sur une commande de PCB asiatique)
  • Intégrer un module RF
  • Lecture du niveau de batterie si le régulateur est utilisé
  • Ports FDTI et ISP
  • Sortir le maximum d'I/O sur des connecteurs pour pouvoir mettre une carte à trous dessous

Choix du micro contrôleur Je suis parti sur un ATmega328 pour profiter de toutes les librairies développées; mais un Cortex-M0/1 m'aurait bien plu, notamment pour leurs conso en veille et leurs prix attractifs.

RF

J'ai choisi de partir sur des RFM69hw de chez HoreRF

  • Puces connues et utilisées, bon retour des utilisateurs
  • Tarif abordable, en vente chez plusieurs distributeurs
  • Bonne portée
  • Codage AES

Les puces LoRa de Semtech me tentaient aussi mais coût 3 fois supérieur. En revanche faible consommation et très bonne portée

Batterie

Solutions à essayer

  • Piles (2xAA)
    • ça fonctionne comme attendu
    • Tension trop basse pour le DHT22
  • Piles (3xAA)
    • Tension trop haute pour le RF69. Quitte à mettre un régulateur autant utiliser du lithium pour être rechargeable
  • Batterie Li-ion
    • Essai avec régulateur concluant, reste mesurer la consommation du module pour en déduire une autonomie
    • Plein de batteries de PC récupérées (à la Xavier), du coup je pense partir à dessus
  • Solaire + nimh
    • A essayer pour l'extérieur, le nimh supportant mieux la chaleur que le li-ion

Types de capteurs

Température/humidité

  • J'ai des DS18B20, des DHT2X, MCP9803... a essayer
  • Je pense m'orienter vers des DHT22 qui, selon la datasheet, ont une précision de +/-0.5°C. A vérifier


  • DHT22
    • Essais d'alimentation via une patte du µC pour économiser de l'énergie -> Fonctionne
      • Une alimentation de 8 secondes avant mesure ne laisse pas le temps au capteur d'avoir une mesure fiable. (décalage de 3% d'humidité)
      • Temps optimum à déterminer
      • Usure prématurée/décalibration possible avec cette méthode ?
      • Si la consommation de 50 µA en veille annoncée est tenue, le capteur mettra 13,8 ans a utiliser 500 mA, soit 36 mA/an.
      • => Utilisation de cette méthode réellement nécessaire ? Consos réelles à mesurer, en tenant compte de la pull-up entre VCC et DATA

Humidité du sol

J'ai acheté un capteur résistif "apacher" sur le net, après analyse: (Ajouter photo)

  • La sonde n'est que deux bouts de cuivre sur un même PCB
  • La sortie "analogique" est juste un pont diviseur de tension avec une résistance 10k
  • La sortie "numérique" est un comparateur ajustable avec le potentiomètre

Donc si on veut connecter le capteur à une entrée analogique, deux vis plus une résistance doivent faire l'affaire.... a essayer :)
Sinon le capteur est à calibrer selon sa terre (et son taux de sel) mais j'ai trouvé que en dessous de 200 le sol est suffisamment humide, et au dessus de 200 sur 255 il faut arroser.
Par contre j'ai un doute sur la durée de vie de la bête à cause de la corrosion de la sonde, un capteur capacitif devrait être plus durable mais si il est moins facile à mettre en oeuvre. Peut-être faire un sonde avec des vis en inox ?
Dans les améliorations possibles:

  • Utiliser la sortie du comparateur couplée à une électrovanne sous une bouteille d'eau : arrosage automatique
  • Utilisation autonome en câblant une led en sortie du comparateur
  • Relier ça à la pompe du puits : arrosage automatique

Boite aux lettres

Parce que c'est inutile, il fallait le faire. Simple relais reed+aimant posé sur le volet de la porte, pas cher et sans surprise :)

Autres

Rien de décidé pour le reste

Actionneurs

Pas trop envie de jouer directement avec le 230V pour le moment. A une époque j'avais hacké la télécommande de prises radiocommandées (433 MHz) avant de me rendre compte que leur protocole est connu. Surement repartir là dessus

Passerelle

Communication entre les cartes et un serveur (PC ou Raspberry ou...) Rien de gravé dans le marbre, mais surement une carte en récepteur+rPi

Arduino+Shield ethernet

Utilisé pour les tests, ça fonctionne. Si le serveur est local il n'y a que peu d'intérêt si tous les capteurs sont à portée de la base via la liaison RF, sinon peut servir de passerelle.

Module carte en récepteur

Pour le moment j'ai mis une carte en récepteur qui envoie les infos vers un rPi, via liaison série.

RFM69 branché directement sur le rPi

Une piste à explorer est d'utiliser cette librairie, ou d'en coder une autre.

Serveur

Rien de figé, je fais mes tests avec un serveur VPS en ligne et un rPi.

Les sources sont ici

Logiciels

Collection des données

Node-Red collecte les données avec un peu de traitement :
  • Validation
  • Limitation du nombre de messages en cas défaut
  • Détection lorsque le capteur n'envoi plus de messages
  • Alertes batterie faible
  • Envoi d'alertes sur ioPush en cas de soucis
  • Envoi des données sur InfluxDB

Voilà, juste des bouts d'essais mis bout à bout, mais en essayant j'en verrai le bout !

IHM

Pas encore trouvé, pour le moment j'utilise Grafana

ioPush

Twitter ne me convenait pas, du coup j'ai développé ioPush.net histoire d'avoir un log, mais aussi pouvoir envoyer des notifications push sur le téléphone via une appli maison.
En bonus on peut aussi envoyer des emails pour enregistrer une info/l'envoyer en push :)

Analyse des données

Là, y'a tout à faire !!