v2.1.0

Bienvenue sur Gonata Solutions

Gonata Solutions est une solution complète de gestion de ferme connectée qui permet aux agriculteurs de monitorer, analyser et optimiser leurs opérations grâce à l'Internet des Objets (IoT) et l'intelligence artificielle.

🎉 Nouvelle version disponible ! La version 2.1.0 apporte de nouvelles fonctionnalités d'analyse prédictive et une interface utilisateur améliorée.

Fonctionnalités principales

📊

Dashboard

Vue d'ensemble temps réel de votre exploitation avec indicateurs clés de performance et alertes prioritaires.

🔧

Gérer Objets

Configuration et gestion de tous vos équipements connectés : capteurs, actuateurs, dispositifs IoT.

📈

Historique

Consultation et analyse des données historiques avec graphiques interactifs et export de rapports.

📅

Planification

Planification des tâches agricoles, calendrier des interventions et gestion des ressources.

📋

Analyse des écarts

Comparaison entre les objectifs planifiés et les résultats réels pour optimiser les performances.

⚙️

Automatisation

Configuration de scénarios automatisés basés sur des conditions et déclencheurs personnalisés.

🌤️

Station Météo

Données météorologiques locales en temps réel et prévisions pour optimiser vos décisions.

Démarrage rapide

Suivez ces étapes simples pour commencer avec Gonata Solutions :

1. Configuration du Dashboard

Personnalisez votre tableau de bord principal pour afficher les informations les plus critiques de votre exploitation.
Le Dashboard centralise tous les indicateurs en temps réel.

2. Ajout et configuration d'objets

Le module Gérer Objets vous permet d’ajouter vos capteurs, actionneurs et autres équipements IoT.
Chaque objet est entièrement configurable et peut être personnalisé selon vos besoins.

Exemple de configuration

Dans cet exemple, nous allons créer :

Méthodes de création d’objets

Il existe deux façons de créer un objet sur la plateforme :

1. Création manuelle

Cliquez sur le bouton Ajouter un objet, puis complétez les champs suivants :

2. Utilisation de modèles prédéfinis

Sélectionnez un modèle déjà configuré et ajustez uniquement les paramètres nécessaires. Par exemple : Température ambiante, Humidité ambiante, et un Actionneur Électrovanne. Les objets apparaîtront ensuite automatiquement sur votre Dashboard.

Création d’une culture

Après avoir configuré vos objets, l’étape suivante consiste à créer une plante depuis le Dashboard en cliquant sur Ajouter une culture. Vous devez renseigner :

Une fois le modèle enregistré, la culture sera affichée sur le Dashboard. En cliquant dessus, vous pourrez visualiser les données en temps réel ainsi que les comparer aux valeurs idéales définies.

Associé un actionneur

Associé un actionneur à une plante pourqu'il s'affiche au niveau de la section des objets d'une plante.

💡 Conseil : Organisez vos objets par zones géographiques ou par type de culture pour faciliter leur gestion.

3. Historique

Les données envoyées par l'ESP32 (capteurs et actionneurs) sont automatiquement enregistrées dans la base de données dès leur réception par la plateforme.
Ce processus d'enregistrement est entièrement automatisé : chaque mesure ou événement transmis par l'ESP32 est stocké sans intervention manuelle, garantissant la traçabilité et l'historique complet des données pour l'analyse et le suivi en temps réel.

4. Configuration de la planification

Planifiez vos tâches agricoles dans le module "Planification" pour optimiser votre organisation et automatiser certaines interventions.

⚠️ Important : Testez vos alertes après configuration pour vous assurer qu'elles fonctionnent correctement.

5. Analyse des Ecarts

Le module d'analyse des écarts vous permet de comparer les performances réelles de votre exploitation avec les objectifs que vous avez définis. En identifiant les écarts, vous pouvez ajuster vos stratégies pour améliorer l'efficacité et la productivité.

6. Automatisation

Le module d'automatisation vous permet de créer des scénarios personnalisés pour automatiser les opérations agricoles. Vous pouvez définir des règles basées sur des conditions spécifiques, telles que les données des capteurs ou les horaires, pour déclencher automatiquement des actions comme l'irrigation, la fertilisation ou l'activation d'équipements.

7. Station méteo

Le module de la station météo locale vous permet de connecter et configurer une station météo pour obtenir des données météorologiques précises et en temps réel. Vous pouvez ainsi surveiller les conditions climatiques locales, telles que la température, l'humidité, la vitesse du vent et les précipitations, afin de prendre des décisions éclairées pour vos opérations agricoles.

Premier Deploiement

Pour connecter un capteur DHT11 (température et humidité) et une électrovanne à l'ESP32, reliez le DHT11 à une broche numérique (par exemple D4) et l'électrovanne à une sortie digitale via un relais (par exemple D5). Configurez l'ESP32 pour lire les valeurs du DHT11 et contrôler l'électrovanne selon vos besoins. Pour envoyer les données à la plateforme Gonata Solutions, utilisez notre API REST : faites une requête HTTP POST depuis l'ESP32 vers l'URL de l'API en transmettant les mesures (température, humidité) et l'état de l'électrovanne au format JSON. Ainsi, chaque mesure sera automatiquement enregistrée et affichée sur le Dashboard.

Code Arduino ESP32 (DHT11 + Electrovanne)

 #include 
#include 
#include 
#include 

// Configuration WiFi
const char* WIFI_SSID = "TECNO SPARK 10C";
const char* WIFI_PASSWORD = "Ide@9728";

// URL de l'API
const char* SERVER_URL = "https://gonata.org/backend/api.php";

// Token utilisateur
const char* TOKEN = "d3c6fdf594c58c06b1af2fc8ffdf0559e8c4f4e04131216cf84e9be663341437";

// Capteur DHT11
#define DHTPIN 22
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

// Relais de la pompe
#define PUMP_PIN 14

// Intervalle entre envois (5 sec)
const unsigned long INTERVAL = 5000;
unsigned long previousMillis = 0;

void setup() {
  Serial.begin(115200);
  
  dht.begin();
  pinMode(PUMP_PIN, OUTPUT);
  digitalWrite(PUMP_PIN, LOW); // Pompe désactivée par défaut

  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connexion au WiFi");
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print(".");
  }
  Serial.println("\nWiFi connecté !");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    unsigned long currentMillis = millis();
    if (currentMillis - previousMillis >= INTERVAL) {
      previousMillis = currentMillis;

      // Lecture DHT11
      float temperature = dht.readTemperature();
      float humidity = dht.readHumidity();

      if (!isnan(temperature) && !isnan(humidity)) {
        //  Envoi température (type = sol)
        sendSensorData(46, String(temperature), "Température", "°C", "active", "sol");

        //  Envoi humidité (type = sol)
        sendSensorData(49, String(humidity), "Humidité", "%", "active", "sol");
      } else {
        Serial.println("Erreur de lecture du DHT11");
      }

      // Récupération de l'état de la pompe
      String pumpState = getPumpState();
      if (pumpState != "") {
        if (pumpState.equalsIgnoreCase("on")) {
          digitalWrite(PUMP_PIN, HIGH);
          Serial.println("Pompe activée");
        } else if (pumpState.equalsIgnoreCase("off")) {
          digitalWrite(PUMP_PIN, LOW);
          Serial.println("Pompe désactivée");
        } else {
          Serial.print("État inconnu pour la pompe : ");
          Serial.println(pumpState);
        }

        // 🔹 Historiser l'état de la pompe (type = actionneur)
        sendSensorData(128, pumpState, "Pompe", "", "active", "actionneur");

      } else {
        Serial.println("Erreur de récupération de l'état de la pompe");
      }
    }
  } else {
    Serial.println("WiFi déconnecté !");
  }
}

// Envoi des données sol/actionneur avec "type"
void sendSensorData(int sensorID, String valeur, String libelle, String symbole, String status, String type) {
  HTTPClient http;
  http.begin(SERVER_URL);
  http.addHeader("Content-Type", "application/x-www-form-urlencoded");

  String postData = "token=" + String(TOKEN) +
                    "&id=" + String(sensorID) +
                    "&valeur=" + valeur +
                    "&libelle=" + libelle +
                    "&symbole=" + symbole +
                    "&status=" + status +
                    "&type=" + type;   //  Ajout du champ obligatoire

  Serial.println("Envoi : " + postData);
  
  int httpResponseCode = http.POST(postData);
  if (httpResponseCode > 0) {
    Serial.print("Réponse capteur ");
    Serial.print(sensorID);
    Serial.print(" : ");
    Serial.println(httpResponseCode);
    Serial.println("Réponse : " + http.getString());
  } else {
    Serial.print("Erreur HTTP capteur ");
    Serial.print(sensorID);
    Serial.print(" : ");
    Serial.println(httpResponseCode);
  }

  http.end();
}

// Récupération de l'état de la pompe
String getPumpState() {
  String pumpValue = "";
  HTTPClient http;
  String url = String(SERVER_URL) + "?token=" + String(TOKEN) + "&id=128"; //id de l'actionneur

  http.begin(url);
  int httpResponseCode = http.GET();

  if (httpResponseCode == 200) {
    String response = http.getString();
    Serial.println("Réponse GET pompe : " + response);

    DynamicJsonDocument doc(512);
    DeserializationError error = deserializeJson(doc, response);
    if (!error) {
      pumpValue = doc["valeur"].as();
    } else {
      Serial.println("Erreur de parsing JSON pompe");
    }
  } else {
    Serial.print("Erreur HTTP GET pompe : ");
    Serial.println(httpResponseCode);
  }

  http.end();
  return pumpValue;
}

                            

Après avoir configuré vos objets et planifié vos tâches, vous êtes prêt à déployer Gonata Solutions sur le terrain. Assurez-vous que tous vos capteurs et actionneurs sont correctement installés et connectés à la plateforme.

Surveillez les données en temps réel via le Dashboard et ajustez vos configurations si nécessaire. N'oubliez pas de consulter régulièrement l'historique et d'analyser les écarts pour optimiser vos opérations.

Support et ressources

Notre équipe de support est là pour vous accompagner dans l'utilisation de Gonata Solutions. N'hésitez pas à consulter nos ressources ou à nous contacter.

📖

Guides utilisateur

Manuels détaillés pour chaque module : Dashboard, Objets, Historique, Planification, et plus.

🎓

Tutoriels vidéo

Formations interactives pour maîtriser l'analyse des écarts et l'automatisation avancée.

💬

Support technique

Assistance pour la configuration des objets IoT et le paramétrage de la station météo.