Le projet JardinIoT est un jardin autonome. Ce jardin est composé de "buckets" autonomes dans lesquels les plantes sont semées. Un bucket comporte plusieurs sondes mesurant, entre autres, la température et l'humidité. Le bucket, à l'aide du serveur, ajuste l'humidité de la terre, la température et la lumière que reçoit la plante en se basant sur les données reçues par les sondes ainsi que sur différents facteurs, tels l'heure du jour et la date.
Plus de détails sur le projet peuvent être trouvés sur le Wiki.
Le projet a remporté un OCTAS dans la catégorie 'Relève étudiante' lors du Gala des OCTAS en 2018.
- Vérifiez votre version de Python afin que ce soit la version 2.7 (
python --version
) - Installez PlatfromIO à l'aide de
pip
:pip install -U wheel semantic-version platformio
. Il se peut que vous deviez utiliserpip2
si Python 3 est installé sur votre ordi. - Clonez le projet:
git clone https://github.com/ClubCedille/jardiniot.git
- Vous devez installer chaque dépendence (les
lib_deps
qui sont trouvées dansplatformio.ini
) pour que le code puisse compiler:- Allez dans
jardiniot-emb/esp/
et exécutez cette commande:platformio lib install "EspSoftwareSerial" "WiFi" "PubSubClient" "WifiManager" "CmdMessenger"
- Allez dans
jardiniot-emb/arduino/
et exécutez cette commande:platformio lib install "StandardCplusplus" "Timer" "Adafruit Unified Sensor" "DHT sensor library"
- Allez dans
- Pour flasher le Arduino avec le code, allez dans le fichier
arduino
et exécutez la commandeplatformio run --target upload
.- Si jamais le logiciel ne peut pas accéder à
/dev/ttyACM0
, il faut faire:sudo chmod 666 /dev/ttyACM0
.
- Si jamais le logiciel ne peut pas accéder à
- Allez dans le fichier
esp
et faites la même commande pour flasher le ESP8266. Connectez qu'un seul truc à flasher à la fois sur l'ordi. - Pour recevoir des
Serial.print()
du Arduino, vous pouvez le faire avec cette commande:platformio device monitor -p /dev/ttyACM0 -b 9600
Ceci est un guide général et les commandes peuvent changer. Allez lire la doc pour plus de détails.
L'application utilise les ports suivants pour son fonctionnement:
1883
pour MQTT5000
pour l'API du site Web8080
pour le site Web
Le port de l'API est hardcodé dans le frontend et n'est donc pas configurable lors du build.
Prérequis:
- Docker avec Docker Engine > 17.12.0
- Docker Compose > 1.21 (pour supporter "Compose file" version 2.4)
Pour rouler:
# docker-compose up
Le site est accessible au http://localhost:4000/, contrairement au port 8080
mentionné précedemment.
Le site est accessible sur le port 4000
lorsque la commande docker-compose
est utilisée, alors que si l'application est démarrée manuellement le port 8080
sera utilisé.
TODO