Interface exploitation

Bonjour a tous et a toute, je créer se sujet car j’ai besoin de vos conseils et de votre aide.
Je suis un pur novice concernant la programmation, mais j’ai de bonne base en électronique.

Je suis éleveur et mon projet consiste à améliorer la collecte de donner de mon élevage.
Certains systèmes semblables a ce que je recherche existe déjà, mais aucun en open source a ma connaissance.
Les données à collecter sont :

  • Date/Heure
  • Température/humidité
  • Précipitation
  • Temps de jour (levé au couché du soleil a un endroit précis)
  • Poids (des bêtes)
  • Mémo
  • Volume (de lait)
  • Surveillance (caméra)
  • Tension de clôture
  • Volume réserve eau
  • Charge batterie
    Cette liste n’est pas exhaustive et je souhaiterais pouvoir ajouter ou retiré divers capteur.
    Pour ce qui est de l’acquisition de ces données, j’ai déjà une bonne idée de comment procéder. (arduino)
    Ce que je ne sais pas faire, c’est l’interface pour relier ces données, je peu actuellement le relevé et le notés dans un tableur,
    Mais cela est fastidieux.
    Comment puis je créer une interface ou application capable de le faire pour moi, qui soit facilement modifiable selon les besoins?
    Merci d’avance pour votre temps et votre aide

Hello,

Le plus simple serait d’avoir plusieurs « passerelle » qui se chargeront de collecter les données puis de centraliser le tout dans une base de données.

Tes différents capteurs seront, je suppose, réparti sur toute ton exploitation, donc il te faudra plusieurs « relais » (a définir ce que on entend par relais).

Une fois cela fait, pour analyser les données tu as pleins de logiciels (Grafana, pourquoi pas home assistant si tu veux pouvoir « agir » avec les données récoletées, etc)

Enfait la vraie « limite » sera celle de ton budget, car cela monte vite suivant le nombre de capteurs, l’étendue du terrain etc

Bonjour, merci pour t’a réponse
Je pense mettre une unité de collecte par « atelier » (fromagerie, magasin, salle de traite, pâture) tout ces atelier sont contenue dans une zone d’un diamètre de 100M environ, je pensait donc utilisé la wifi pour le partage des données, il faudrait que chacun de ces atelier en plus des capteur soit capable d’interagir avec l’interface central .
J’aime beaucoup l’interface de Grafana je vais me renseigné a sont sujet
Je n’est pas de limite de budget (dans la limite du raisonnable) vue que cette investissement sera rentabiliser sur des dizaine d’année, bien sur il faut que cela soit moins onéreux que les solution industriel
encore merci !

Avec plaisir :slight_smile:

Enfait l’interface finale peut être multiple, à partir du moment ou tes données sont dans une base de données, tu peux greffer a peu près ce que tu veux Grafana, Home Assistant ou que sais-je encore (il en existe plein). Il faudrait savoir ce que tu veux faire avec les données. « Juste » avoir des graphiques ou bien les exploiter.

Tu as le courant dans chacun des « ateliers » ?
Juste pour savoir et t’orienter pour les capteurs.

A titre perso j’aime bien les capteurs bluetooth (de type ruuvi.com) mais cela demande un peu plus de configuration au départ (j’ai des capteurs de mouvements/tempréature dans toute ma maison).
Sinon il existe des passerelles IOT déjà toute faite.

Pour ce qui est des donnée, elles seront exploité pour une partie (alerte, fermeture/ouverture de porte), mais pour le reste elles seront utilisé dans un but statistique.

Je n’est pas le courant dans tout les atelier mais la plupart oui (les station météo ne seront pas toute alimenté), mais si cela simplifie les chose j’ai la capacité de tiré des alimentation

je ne pensait pas que la bluetooth avait une grande portée

Je me renseigne sur Prometheus et Grafana, pour essayer de comprendre le fonctionnement, je suis vraiment un noob dans le domaine :wink:
Encore merci pour t’es réponse

Ils faudrait aussi pouvoir créer une application, pour accéder aux données et les entré manuellement.
Il faudrait que l’application soit facilement utilisable par n’importe qui.

Quelle est la portée du wifi? (avec des obstacles)
J’ai l’impression qu’une bonne balance (surtout pour peser des vaches…) coûte beaucoup plus cher que son electronique et que les arduinis.
Vous avez interet à ne pas avoir top de fils (ça se dechausse, on se prend les pieds dedans). Des arduini type ESP32/ESP8266 (peuvent être programmés depuis un RPi ou un PC) peuvent gérer le wifi, s’il est accessible (sinon, un arduino classique peut gerer des radios plus puissantes, type nrF24L01, ayant une foultitude de tutoriels (hackable magazine en a fait un,
https://pecquery.wixsite.com/arduino-passion/le-transmetteur-radio-nrf24l01 est aussi très clair,
https://www.framboise314.fr/faire-dialoguer-un-raspberry-et-un-arduino-via-nrf24l01/ montre qu’en 2015 les RPi pouvaient aussi les gerer…) Reste le problème du support à long terme (par des amateurs enthousiastes… N’étant pas voyante, je n’en ai pas idée.
Si vos capteurs seront certainement plus chers que la partie informatique, c’est cette partie là qui sera la plus frustrante: la bonne nouvelle est que les bouts de code Arduino sont récupérables (une conversion C++ simplifié vers python) dans une certaine mesure. Donc, si vous avez l’habitude d’Arduino, vous n’aurez pas grand mal à … continuer (et detruire un Arduino me traumatise moins que détruire un RPi, à prix voisins). A noter aussi que les Arduini sont théoriquement plus robustes aux surtensions/court circuits que les RPi… donc plus adaptés à des essais.

A noter que le lever du jour (et sa durée) sont des bouts de code standard dans l’avr-libc (arduino en donne une version simplifiée, sans les calculs astronomiques; la version originelle est telechargeable telle quelle : voir du côté de https://www.nongnu.org/avr-libc/user-manual/group__avr__time.html
, ou sous forme de packet debian IIRC). Ces bouts de code C peuvent être adaptés à un PC -sans doute- ou un RPi -j’en suis sûr- et sont une specificité de la libc d’avr (un 8 bits…) (le developpeur devait gérer des capteurs d’energie solaire, et s’assurer qu’ils ne soient pas fous la nuit…et il a donc mis cette verrue)

hello,

une des solutions pour la collecte des données destinées à être centralisée dans des bases de données sur un serveur c’est le protocole MQTT.
en gros le principe c’est l’envoie par le capteur des données sur un poste qui va mettre à jour les bases de données.

la bonne nouvelle c’est que ce protocole MQTT est utilisable et programmable par l’IDE d’arduino sur des ESP qui peuvent remplacer en partie l’arduino et ont une connectivité wifi. ( il existe plusieurs modeles d’esp ; le but du jeu étant de trouver celui qui correspond au besoin du capteur en terme d’input/output et de mémoire ram)

le programme telegraf va se charger de recupérer les données transmisent par mosquitto et de les stocker dans une base de données.

le stockage des données se fait classiquement dans une base de données ( mariadb (anciennement mysql) ou infludb ( interressant pour les données identifiées par des timestamps ( date et heure )) la visualisation de ces bases peut se faire via chronograph ou graphana.

kapacitor permet de générer des alertes en fonctions des données transmises a infludb avec la possiilité de lancer un script ( donc possibilité d’envoie de mail, de SMS - a condition d’écrire les scripts !)

pour l’extraction des données vers un tableur chronograph permet de faire des requetes sur une base et de sortir un fichier csv intégrable ds excell ou un equivalent opensource (openoffice,etc. )
on peut aussi faire des scripts pour extraire directement un csv depuis mariadb ou infludb.

plutot pour infludb :

. relevé température , humidité ( AAAAMMJJHHMMSS et le lieu - le topic pour telegraf)
. temps de jour ( AAAAMMJJHHMMSS et le lieu )
. tension cloture, charges batteries, volume réserve d’eau ( avec un stockage court et une gestion d’alerte kapacitor)

plutot pour mariadb :

. poids ( AAAAMMJJ et l’identifiant de l’animal )
. volume de lait ( AAAAMMJJ, traite et l’identifiant de l’animal )

un raspberry pi4 sous raspbian dispose des outils nécessaires ( mosquito, graphana, influxdb, mariadb, kapacitor ) et peut centraliser les données et éventuellement transmettre les données reçu à un autre appareil ( réplication, sauvegarde ). Les données sur graphana seront visibles d’un poste ( pc ou phone ) via le réseau local ou via le web si l’on ouvre la box vers l’extérieur ( avec les problèmes de sécurité que ça pose )

sources :
MQTT : https://fr.wikipedia.org/wiki/MQTT
Mosquitto : https://mosquitto.org/
ESP : https://projetsdiy.fr/programmer-esp8266-ide-arduino-librairies-gpio-web-serveur-client/
exemple : https://dzone.com/articles/raspberry-pi-iot-sensors-influxdb-mqtt-and-grafana
exemple https://www.framboise314.fr/utiliser-le-protocole-mqtt-pour-communiquer-des-donnees-entre-2-raspberry-pi/

Bonsoir, pour une wifi 5ghz j’ai pu porter à 100m sans trop de problèmes (pas d’obstacle) et le cas échéant je peux tirer du RJ42 100M/L sans perte.

Pour ce qui est de la balance, il ne s’agit pas de vache, mais de chèvre, il me faut néanmoins 4 balance donc bon ^^

Je ne comprends pas bien la question du support ? Il ne faut pas m’en vouloir, je ne comprends pas grand chose :wink:

Quant à l’habitude de l’arduino, c’est un bien grand mot, j’ai des bases…

Le lever, et Temps de soleil par jour va aller de pair avec sont intensité, sachant que je suis dans un vallon le lever du soleil n’est pas tout a fait le même quand plaine, sont intensité quand a elle varie avec la météo
Merci pour ta réponse

Bonsoir et merci pour ton aide
actuellement je fais des recherche (qui avance bien) sur Prometheus et Grafana le processus me semble similaire bien que aillant des différence, je me trompe ?

Désolé de jargonner:
vous voulez quelque chose qui dure des années, voire des decennies.dans votre premier edité : non second…
post.
Je suis très mal à l’aise, car l’infrastructure nécessaire pour que vous trouviez des pièces détachées, de l’aide (ex. ce forum), que ce soit payant ou pas dans 10 ans… est une question de « support perenne » en jargon (un patois, mélange de high tech et de technocrate sans technicité).

Quant aux capteurs de luminosité: ils peuvent être parasités par des lumières, voire en panne (sur 10 ans, ça peut arriver). Une façon simple et efficace de les filtrer et de detecter des pannes consiste à les dévalider -et à le signaler- s’ils sont éclairés la nuit ou tout noirs la journée (au début, ça a l’air idiot, on a le super capteur de la morkitue, pas cher avec un tuto…: dans x années, avec des capteurs exposés plus ou moins à l’humidité, les gens qui oublient comment ça a été conçu, les tutos qui ont été fermés ou pas mis à jour, c’est bien pratique de pouvoir detecter des pannes : au moins, on ne se fie pas à des données trivialement fausses).

Quant à vos connaissances en arduino: plutôt les approfondir que vous disperser (sinon, le temps passé à acquerir des bases sera perdu).

Oui bien sûr, la question se pose, j’aime a croire que si je peu le faire maintenant, j’aurai autant voir moins de difficulté a le faire dans le futur, sachant que je l’imagine en permanente évolution, il y aura un renouvellement constant des composants et une redondance.

Pour ce qui est des connaissances, je les espère suffisamment croissantes pour évoluer avec le système, pour l’heure je n’y connais pas grand chose, mais demain un peu plus ^^

À l’heure actuelle il serait possible de faire un système de ce genre uniquement en hardware, ce qui ne serait pas pratique du tout ^^ et c’était déjà faisable il y a 40 ans mais beaucoup plus complexe a réaliser j’aime à croire qu’il en sera de même dans le future

Je ne croit pas au temps perdu, ça reste pour moi un plaisir plus qu’une nécessité
Je suis menuisier/charpentier maintenant éleveur, je ne fait pas de toit tout les jours mais mes connaissance ne sont pas perdu ^^ (je sait bien que la technologie avance plus vite que le bois)

je ne connais pas Prometheus mais effectivement c’est dans le même principe; faire la liaison entre des clients et un serveur.

Un point que tu devras vérifier c’est si sur les clients ( par exemple des esp en C++ ou en micropython ) tu peux installer les « exporteurs » nécessaire au transfert de données vers Prometheus.

De même comme apparemment Prométheus semble ne disposer que de sa propre base de données de quelle capacité ont dispose ? comment on exporte vers l’extérieur ? ( excell, autre base de données, archivage )

pour finir il me semble que Prometheus est plus orienté monitoring qu’une solution autour d’une base de données alimenté par telegraf via MQTT plus ouverte … mais de Prometheus je ne connais que ce que j’ai lu sur wiki (https://fr.wikipedia.org/wiki/Prometheus_(logiciel))

Bonjour, apparemment oui il y a une librairie c++ : https://prometheus.io/docs/instrumenting/clientlibs/

Pour se qui est de la base de donner Prometheus peut stocker sur un cour laps de temps (3mois apparemment) mais il y a un addon pour le stockage de longue durée : https://www.youtube.com/watch?v=wcTr8Hm7SCQ&ab_channel=xavki

De se que j’ai compris Prometheus fonctionne en Pull mais l’on peut mettre des Push gateway
Je me suis orienté vers Prometheus car il est réputé comme étant facile d’utilisation et J’ai trouvé 10H de vidéo sur Prometheus et Grafana, mais je ne sait pas réellement si c’est le plus adapté a mon projet, si vous me conseiller autre chose alors je passerai

Merci encore pour votre temps

A ce stade et avant de choisir une solution pour l’ensemble de tes besoins, la démarche « classique » c’est de mettre en place un beta test.

En clair installer un système minimum ( un relevé de température/humidité par exemple ) et ainsi mettre en lumière ses avantages et inconvénients; parallèlement se faire une doc pour les installations suivantes plus complexes…

Un autre « truc » utilisé dans une démarche d’informatisation c’est de commencer par faire la liste des sorties attendues.

Par exemple pour avoir l’évolution du poids d’une chèvre sur n mois de quelle données j’ai besoin…
( nom, prénom,:wink: date de naissance, date de la pesée, poids …) et on arrive à comment je les obtiens
et comment je les stocke, comment je les visualise.

Le but étant d’obtenir une liste des données et des traitements (programmes ) nécessaires qu’on peut représenter sous forme d’organigramme,

Ce type de démarche etant censée permettre de choisir le(s) bon(s) outil(s) :roll_eyes:

Bonsoir, c’est ce que je suis en train de faire, je tiens à préciser que je suis totalement novice dans le domaine.

Je pensais faire une mise à jour sur l’avancement du projet demain.

Je suis en train de choisir les composant pour faire une « maquette » du système, je ne pouvais pas commencer avant, car je n’avais absolument aucune information dans le domaine, que se soient les termes utilisés (indispensable pour faire des recherches), ni la façon de procéder, d’où la création de se poste.

Ma « maquette » sera composée d’une station météo, d’une balance, d’un débitmètre et d’une caméra qui seront implémentés 1 par 1…
-la station météo, car c’est très documenté donc « simple ».
-la balance qui sont des données évolutive tout comme la météo, mais ponctuelle (journalier).
-le débitmètre qui sera ponctuelle tout comme la pesé, un bouton servira à déclencher la prise de données
-la caméra pour la gestion d’un flux vidéo.
Les données récoltées devront me permettre de faire fonctionner:
-une lumière, assez simple d’après ce que j’en aie vu
-un moteur
-et m’envoyer des alarmes

Pour cela je pense faire un serveur local web (wordpress) qui me servira pour la lecture de données et l’envoi de commande
La collecte serait effectuée en hardware sur un RPi ou autre, envoyée sur un serveur (PC) puis envoyée les ordres sur un autre RPi, le tout en wifi.
Je suis en train de regarder pour (peu être) créer une appli android afin de monitorer depuis un téléphone plus facilement qu’une page web
D’après mes recherches si j’arrive à faire fonctionner ces systèmes, les autres capteurs ne devrait pas être un souci.
Pour l’heure je recherche donc des RPi ou alternative, les soft pour faire tournée le bouzin et la façon d’interagir avec les données .