Monitorer nos locaux avec de l'IoT, du PHP et InfluxDB

Monitorer nos locaux avec de l'IoT, du PHP et InfluxDB

Lors d’un hackday interne à JoliCode, nous avons mis en place un système de monitoring pour connaître en temps réel l’état de nos locaux.

Quelqu’un a-t-il oublié d’éteindre les lumières ? Les portes sont-elles toutes fermées correctement ?

Nous verrons notamment les capteurs que nous avons mis en place, comment nous collectons les données et comment nous les mettons en forme sur un dashboard maison.

E0b6ce7a87afc0a0f999bb37f405e0ae?s=128

Loïck Piera

June 27, 2019
Tweet

Transcript

  1. Monitorer les locaux de JoliCode #IoT #PHP #InfluxDB Loïck Piera

    - Juin 2019 - Pas Sage En Seine
  2. Loïck Piera Développeur web pyrech pyrech 2

  3. Pourquoi ? Le dernier qui part a-t-il oublié de fermer

    une porte ou d'éteindre les lumières ? 3
  4. Pourquoi ? Le dernier qui part a-t-il oublié de fermer

    une porte ou d'éteindre les lumières ? Journée de Solidarité à JoliCode => JoliDay (hackday interne) 4
  5. Le projet en 2018 (à la base) 3 personnes, 1

    journée 3 portes et 2 plateaux de lumière Une liste de courses achetées à l'avance 5
  6. L'objectif initial 6 Capteurs Particle Photon Cloud Particle Notre serveur

    InfluxDB Slack /lights /doors Application PHP / Symfony
  7. Le hardware

  8. Les portes 3 contacts de porte magnétique (type alarme) <

    10 € pièce 8
  9. Schéma électronique 9 * Une résistance de pull-down est incluse

    dans le Particle
  10. 10

  11. Les lumières 2 photorésistances + résistances < 3 € pièce

    11
  12. Schéma électronique 12

  13. 13

  14. Le microcontrôleur Particle Photon Arduino-like avec - wifi intégré -

    API Rest automatique - IDE dans le cloud Environ 20€ 14
  15. Le microcontrôleur - ~15 entrées/sorties (dont 5 analogiques) - compatible

    avec les libs Arduino 15
  16. On plug tout ça...

  17. 50 m de câbles à passer dans le faux plafond

    17
  18. L'importance des étiquettes 18

  19. On plug tout ça - Boîtier de dérivation - Câbles

    de raccordement - Étiquettes 19
  20. Le code du Particle

  21. Les pins à utiliser 21

  22. Les pins à utiliser 22

  23. Lecture des capteurs 23

  24. Envoi du payload 24

  25. Le cloud Particle.io

  26. Événements 26

  27. 27 Intégration Particle - Webhook personnalisable - Historique et logs

  28. Notre serveur

  29. Docker en prod Parce que pourquoi pas. 29

  30. Docker en prod - 1 jour, il faut aller vite

    - docker-starter (pipenv + Fabric + Docker + Alpine) - ansible-starter pour provisionner / déployer - Même stack en dev / prod 30
  31. Collecte des données - Symfony 4 - Contrôleur qui reçoit

    le webhook de Particle 31
  32. La base de données InfluxDB "InfluxDB is an open-source time

    series database" - Wikipedia 32
  33. La base de données - Haute performance - Langage de

    requête similaire au SQL - Client PHP officiel 33
  34. Insertion des données 34

  35. 35 Configuration client PHP

  36. Grafana "The leading open source software for time series analytics"

    - Grafana.com Installé dans la stack Docker 36
  37. 37

  38. 38

  39. Utilisation depuis Slack

  40. Interaction depuis Slack Slash command qui POST vers le serveur

    et affiche la réponse renvoyée 40
  41. Traitement de la Slash command 41

  42. Récupération des stats 42

  43. Résultat final

  44. 44

  45. Et après ?

  46. Autant faire un dashboard, non ? 46 Serveur web +

    BDD + Symfony
  47. 47

  48. 48 Surveiller le frigo - quand on se motive un

    soir - Alerter quand le frigo ou le congel reste ouvert - Capteurs de porte, Particle Photon, buzzer : on a déjà tout ! - Statistiques sur les ouvertures ?
  49. 49

  50. 50 Monitorer les plantes - JoliDay 2019 - Nouveau microcontrôleur

    : ESP32 - Arduino-like, wifi intégré, pas de cloud mais moins cher : ~3€ - Température, humidité de l'air, lumière, humidité de la terre
  51. 51

  52. 52

  53. Le futur Monitorer plein d'autres choses* ? (café, niveau sonore,

    température) *Le but n'est évidemment pas de tracker les gens #liberté #RGPD #toussa 53
  54. Fun fact Non, la lumière côté "Grande salle" n'est pas

    éteinte depuis si longtemps, c'est juste la dalle qui ne fonctionne plus… 54
  55. Merci pour votre attention. Des questions ? 55 pyrech pyrech