Bonjour, j’ai développé sous Arduino Mega un programme de surveillance de ruches.
Un ami a commencé à me développer une base de données sur Raspberry pi4 dans laquelle je stocke divers informations : (poids, température intérieure, température extérieure, hygrométrie, luminosité, pluie).
Ceci à l’aide de cette fonction sur Arduino :
queryString = « ?hyg= » + hygX2 + « &tex= » + tX2 + « &tin= »+ tinX2 + « &mas= » + unitsX2 + « &lum= » + lumX2 + « &eau= » + eauX1; // création de la chaine à envoyer au serveur personnel
void envoiserveur(){
if(client.connect(HOST_NAME, HTTP_PORT)) {
// Fait une requête HTTP :
// Envoie une entête HTTP
client.println(HTTP_METHOD + " " + PATH_NAME + queryString + " HTTP/1.1");
client.println("Host: " + String(HOST_NAME));
client.println(F("Connection: close"));
client.println(); // fin de l'entête HTTP
while(client.connected()) { // tant que le client est connecté
if(client.available()) { // si le client est disponible
// lit un byte entrant depuis le serveur et l'imprime sur le moniteur série:
char c = client.read();
comment[comptecomment] = c; // on stocke le message de retour du serveur dans le tableau comment
comptecomment = comptecomment + 1;
} // fin du if client dispo
} // fin du while client connecté
/* Si le serveur est déconnecté, stop le client: */
client.stop(); // arrêt client
}
Ces bases de données (une par ruche) me sont actuellement consultables par PHP admin.
Mon ami n’ayant plus trop de temps (pour cause de naissance d’un deuxième enfant…), il ne m’a pas développé la partie graphique du projet…
Du coup je recherche soit une bonne âme pour m’aider sur ce projet de serveur personnel pour des ruches, soit essayer par moi même mais j’avoue que je ne connais rien sur la programmation web et Raspberry (mes compétences actuelles se limitent à la programmation sur Arduino).
En faisant des recherches sur google et les forums j’ai trouvé un peu de tout et du coup je ne sais pas du tout quel langage et programme prendre : C3, RRDTools, chartjs, python,java,…
Je souhaiterais pouvoir développer une page web sur laquelle on puisse afficher des graphes issues des données stockées dans les bases de données tout en permettant à l’utilisateur de choisir quelles données prendre (par exemple inter comparaison des poids de plusieurs ruches) mais aussi choisir la base de temps: par exemple étudier la variation de poids sur la journée ou la semaine ou le mois ou plus… Bref des courbes paramétrables (je voyais ce paramétrage par menu déroulant)
Voilà donc en quoi consisterait mon projet.
Si quelqu’un à déjà ce genre de choses sous la main, ou voit quel serait le langage et programme le mieux adapté pour cette réalisation je suis preneur de tous infos et aides.
Merci
Pour ce genre de monitoring, tu pourrais utiliser les programmes InfluxDB Telegraf et Graphana:
En gros telegraf collecte les données auprès des ‹ sensors › qu’il stocke dans influxdb (base de données orientée séries temporelles) et que graphana permet de visualiser.
L’intérêt par rapport a une solution développée spécifiquement c’est que mis a part sur les ‹ sensors ›, la mise en place se résume à du paramétrage et quelques notions de langage SQL.
Évidemment c’est quant même une grosse usine à gaz qui demande pas mal de temps pour en comprendre les différents rouages…
Ok merci, je vais regarder cela mais j’avoue que je souhaiterais bien garder mes bases de données sous PHP.admin je commence à bien me débrouiller avec…
Et si mon ami à un jour un peu plus de temps à me consacrer il pourra compléter son travail car il doit aussi me développer des envois de SMS sur des seuils d’alerte (pour par exemple la détection d’essaimage, de vol de ruche, de problème de capteur) actuellement mes Arduino m’envoient des mails sur ce genre de problème.
Merci encore
Bonjour,
Ton projet est très intéressant. Tout comme @bof, j’aurais conseillé influxDB+Grafana, c’est en ce moment ce qui est « à la mode » pour ce type d’utilisation. Pour les développements complémentaires, je recommanderais NodeRED. Et pour la communication MQTT.
Dans ton cas, je ne saurais te conseiller mieux que de tester différents logiciels avec des cas très simples pour trouver celui qui te correspond le mieux. Demande surtout à ton ami son choix, si c’est lui qui reprendra la suite des développements.
Sinon, pour information, comment se fait la communication entre le serveur et les ruches ? Filaire, sans fil, quelles cartes et protocole ?
Bonjour,
merci pour vos conseils. Je vais regarder cela dès que j’aurais un peu de temps.
Pour répondre à tes questions les Arduinos sont équipés de Shield Ethernet (W5100 ou W5500) reliés à un switch Ethernet (Netgear GS 308) lui même relié à un pont Wifi (Comfast) portée 10 km à vue et l’autre extrémité du pont wifi est relié à ma LiveBox.
Du coup j’ai accès à internet pour l’envoi des emails et la mise à jour d’un serveur Américain gratuit (Thingspeak).
Et j’ai aussi (par mon intranet) accès à mon serveur personnel et aux serveurs implantés dans les Arduino (accès et gestion à distance de la carte SD du Shield Ethernet).
Le projet devrait bientôt (version anglaise) être disponible sur GitHub (mis en place par un ami Italien Renzo Mischianti ) c’est lui qui a développé les librairies de gestion des emails sur Arduino).
Voilà j’espère avoir répondu a tes questions.
Si tu en as d’autres pas de soucis fait moi signe.
Et je peux même envoyer une copie du projet si besoin c’est gratuit!
Merci encore
A+