BaliseEau

De Wiki Fab Lab Onl'Fait
Aller à la navigation Aller à la recherche

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.

Le planning était initialement prévu pour 5 mois, il faut donc revoir les objectifs afin de fixer des priorités.

  1. Définition du cahier des charges avec maison de l'eau et maison de la rivière
  2. Brainstorming / création / lancement projet
  3. Documentation wiki
  4. Mise en place du github / utilisateurs / issues / affectation / commit / merge branch
  5. Microcontroleurs: Adalogger Feather M0
  6. Capteur température (calibration / réception donnée / enregistrement)
  7. Capteur turbidité ...
  8. Capteur pH ...
  9. Capteur TDS (Total Dissolved Solid proportionnel à la conductivité)
  10. Enregistrement des données sur microSD
  11. Module RTC
  12. Consommation électrique et dimensionnement batterie
  13. LoraWan pour récupération des données / réseau Lora SIG ou autres
  14. PCB sur mesure
  15. Boitier (dimension / fixation intérieur / extérieur / presse-étoupes)
  16. BOM (Bill Of Materials)
  17. Documentation
  18. Kit pour les écoles
  1. Présentations
  2. Présentation du Lab
  3. Présentation de OSHub et du projet
  4. Visite de la Fabrique
  5. Réponse au questionnaire / évaluation OSH
  1. Définition du cahier des charges avec maison de l'eau et maison de la rivière
  2. Brainstorming / création / lancement projet
  3. Découvrir les composants: A quoi ça sert
  4. Définir les étapes du projet
  5. Visite de la Ressourcerie
  6. Explications "Comment souder ?" / distribution fiche ?

Semaine 2: 6 et 8 avril

[modifier | modifier le wikicode]
  1. Réflexion sur les besoins et la conception du projet (étude de la possibilité d'une alimentation avec une micro-turbine)
  2. Rédaction des questions à poser à Damien de la Maison de la rivière
  3. Documentation: Wiki (création de comptes, pages personnelles: Lucien et Jonathan)
  4. Installation et prise en main de l'IDE arduino.
  5. Premier programme: Blink (détails des instructions et modification du programme)
  1. Programmation Arduino: reprise du code de Blink pour l'adapter avec de vrais LEDs (vert, jaune, rouge), exercice du feu rouge.
  2. découverte do-doc et création du projet OShub22
  3. 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