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.

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.

  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

Semaine 1:[modifier | modifier le wikicode]

30 mars[modifier | modifier le wikicode]

  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

1er Avril[modifier | modifier le wikicode]

  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]

6 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)

8 Avril[modifier | modifier le wikicode]

  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