BaliseEau
2 élèves du CFPT électronique: Lucien (2ème année) et Jonathan (3ème année).
Chaque mercredi et vendredi matins de 10 à 13h à partir du 30/03/2022 jusqu'à ?? Juin 2022.
Définition de besoin[modifier | modifier le wikicode]
Priorités:
- Station simple, autonome, étanche et simple à mettre à l'eau
- Sondes portatives, autoproduites, facile à mettre en place.
- Température indispensable
- Conductivité et oxygène les fondamentaux.
- Turbidité et pH bons indicateurs à intégrer.
- Ensuite nitrates, nitrites, phosphates, ammonium.
Planning:[modifier | modifier le wikicode]
Le planning était initialement prévu pour 5 mois, il faut donc revoir les objectifs afin de fixer des priorités.
- Définition du cahier des charges avec maison de l'eau et maison de la rivière
- Brainstorming / création / lancement projet
- Documentation wiki
- Mise en place du github / utilisateurs / issues / affectation / commit / merge branch
- Microcontroleurs: Adalogger Feather M0
- Capteur température (calibration / réception donnée / enregistrement)
- Capteur turbidité ...
- Capteur pH ...
- Capteur TDS (Total Dissolved Solid proportionnel à la conductivité)
- Enregistrement des données sur microSD
- Module RTC
- Consommation électrique et dimensionnement batterie
- LoraWan pour récupération des données / réseau Lora SIG ou autres
- PCB sur mesure
- Boitier (dimension / fixation intérieur / extérieur / presse-étoupes)
- BOM (Bill Of Materials)
- Documentation
- Kit pour les écoles
Semaine 1:[modifier | modifier le wikicode]
30 mars[modifier | modifier le wikicode]
- Présentations
- Présentation du Lab
- Présentation de OSHub et du projet
- Visite de la Fabrique
- Réponse au questionnaire / évaluation OSH
1er Avril[modifier | modifier le wikicode]
- Définition du cahier des charges avec maison de l'eau et maison de la rivière
- Brainstorming / création / lancement projet
- Découvrir les composants: A quoi ça sert
- Définir les étapes du projet
- Visite de la Ressourcerie
- Explications "Comment souder ?" / distribution fiche ?
Semaine 2: 6 et 8 avril[modifier | modifier le wikicode]
6 Avril[modifier | modifier le wikicode]
- Réflexion sur les besoins et la conception du projet (étude de la possibilité d'une alimentation avec une micro-turbine)
- Rédaction des questions à poser à Damien de la Maison de la rivière
- Documentation: Wiki (création de comptes, pages personnelles: Lucien et Jonathan)
- Installation et prise en main de l'IDE arduino.
- Premier programme: Blink (détails des instructions et modification du programme)
8 Avril[modifier | modifier le wikicode]
- Programmation Arduino: reprise du code de Blink pour l'adapter avec de vrais LEDs (vert, jaune, rouge), exercice du feu rouge.
- découverte do-doc et création du projet OShub22
- Documentation do-doc / wiki: Photos (ou vidéo), copie du code
Semaine 3: 27 et 29 avril[modifier | modifier le wikicode]
27 anniversaire Jonathan (faire un gâteau): reprise de Blink pour éclairé les bougies du gâteau d'anniversaire
Capteur température (bibliothèque arduino / réception donnée / calibration / affichage des valeurs / enregistrement)
https://www.velleman.eu/support/downloads/?code=VMA324
Mode d'emploi (en)
https://www.velleman.eu/downloads/29/vma324_a4v01.pdf
les librairies Dallas et OneWire
https://www.velleman.eu/downloads/29/vma324_dallas.zip
https://www.velleman.eu/downloads/29/vma324_onewire.zip
Installation de l'IDE Arduino 1.8: https://www.arduino.cc/en/software
Installation du micro-controlleurs Adafruit M0 Feather Dataloger
https://learn.adafruit.com/adafruit-feather-m0-adalogger/overview
Test du capteur de temperature avec l'exemple VMA324_exemple (DallasTemperature)
#include <OneWire.h>
#include <DallasTemperature.h>
// Data wire is plugged into pin 5 on the Arduino
#define ONE_WIRE_BUS 5
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
// Start up the library
sensors.begin();
}
void loop(void)
{
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
Serial.print("Temperature is: ");
Serial.print(sensors.getTempCByIndex(0)); // Why "byIndex"?
// You can have more than one IC on the same bus.
// 0 refers to the first IC on the wire
delay(1000);
}
Programmation du thermomètre pour enregistré les donnée reçues sur la carte SD avec les exemples: "datalogger" et "VMA324".
code:
/*
SD card datalogger
This example shows how to log data from three analog sensors
to an SD card using the SD library.
The circuit:
analog sensors on analog ins 0, 1, and 2
SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)
created 24 Nov 2010
modified 9 Apr 2012
by Tom Igoe
This example code is in the public domain.
modifier par Lucien le 29/04/2022
*/
#include <SPI.h>
#include <SD.h>
#include <OneWire.h>
#include <DallasTemperature.h>
const int chipSelect = 4;
#define ONE_WIRE_BUS 5
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.print("Initializing SD card...");
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
while (1);
}
Serial.println("card initialized.");
// Start up the library
sensors.begin();
}
void loop() {
// make a string for assembling the data to log:
String dataString = "";
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
float matemperature = sensors.getTempCByIndex(0);
dataString = String(matemperature);
Serial.print("Temperature est: ");
Serial.println(matemperature); // Why "byIndex"?
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("datalog.txt", FILE_WRITE);
// if the file is available, write to it:
if (dataFile) {
dataFile.println(dataString);
dataFile.close();
}
// if the file isn't open, pop up an error:
else {
Serial.println("error opening datalog.txt");
}
delay(10000);
}
Semaine 4: 4 et 6 mai[modifier | modifier le wikicode]
Microcontroleurs: Adafruit Feather M0 Adalogger
Enregistrement des données sur microSD
Module RTC
recherche des librairies pour le module RTC+connexion du module au thermomètre +essai du code de la librairie de NeiroNX
Semaine 5: 11 et 13 mai[modifier | modifier le wikicode]
Consommation électrique et dimensionnement batterie
fusion des exemples temperature et horloge +test de fonctionnement avec batterie
#include <RTClib.h>
#include <SPI.h>
#include <SD.h>
#include <OneWire.h>
#include <DallasTemperature.h>
const int chipSelect = 4;
#define ONE_WIRE_BUS 5
DS1302 rtc(13, 12, 11);
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
char buf[20];
void setup()
{Serial.begin(9600);
rtc.begin();
Serial.println("rtc start...");
rtc.adjust(DateTime(__DATE__, __TIME__)+ 3);
if (!rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust("22:05:11:4:10:48:00");
}
// put your setup code here, to run once:
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
Serial.print("Initializing SD card...");
// see if the card is present and can be initialized:
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
while (1);
}
Serial.println("card initialized.");
// Start up the library
sensors.begin();
}
void loop() {
DateTime now = rtc.now();
Serial.println(now.tostr(buf));
// make a string for assembling the data to log:
String dataString = now.tostr(buf);
Serial.print(" Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get temperatures
Serial.println("DONE");
float matemperature = sensors.getTempCByIndex(0);
dataString = dataString+","+String(matemperature);
Serial.print("Temperature est: ");
Serial.println(matemperature); // Why "byIndex"?
// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
File dataFile = SD.open("datalog.txt", FILE_WRITE);
// if the file is available, write to it:
if (dataFile) {
Serial.println(dataString);
dataFile.println(dataString);
dataFile.close();
}
// if the file isn't open, pop up an error:
else {
Serial.println("error opening datalog.txt");
}
Serial.println();
delay(4000);
// put your main code here, to run repeatedly:
}
calcul du temps de consommation de la carte adafruit dattalogger feather qui est de ~17h30 d'autonomie
valeur max du thermometre =1.5A
Semaine 6: 18 et 20 mai[modifier | modifier le wikicode]
Boîtier (dimension / fixation intérieur / extérieur / presse-étoupes)
Semaine 7: 25 et 27 mai[modifier | modifier le wikicode]
Sortie terrain
Test du premier proto (lac / rivière)
Semaine 8: 1 et 3 juin[modifier | modifier le wikicode]
correction bug proto
préparation présentation et animation Ag!r
Ajout d'un capteur ?
Semaine 9: 8 et 10 juin[modifier | modifier le wikicode]
mercredi 8 juin[modifier | modifier le wikicode]
Après-midi OSHUB au musée (?): animation de l'espace Ag!r de 13h30 à 16h30
vendredi 10 juin[modifier | modifier le wikicode]
- BOM (Bill Of Materials)
- Documentation
- Kit pour les écoles
Semaine 10: 15 et 17 juin[modifier | modifier le wikicode]
Bilan
Diffusion