mardi 6 août 2013

Thermomètre/hygromètre à base de Arduino

Une cave à vin c'est bien beau mais il faut contrôler sa température et son hygrométrie. Mais avant de les contrôler, il faut les mesurer.
J'ai donc fait un petit montage Arduino pour faire ça.
Matériel sous la main:
  •  Grove base shield
  •  capteur DHT11 (temperature + humidité) de Grove
  •  Ecran TFT ST7735 de Adafruit
  •  Arduino UNO

Après avoir connecté les PIN de l'écran où il faut (voir ici) et le capteur sur le plug n°2 (digital) du shield, on obtient ça !

Il ne reste plus qu'à mettre ça au propre (écran de démarrage, mise en forme de l'affichage) et c'est terminé...jusqu'à la gestion de la température qui se fera avec des modules à effet Peltier commandés depuis l'Arduino.

 

Les fonctions graphiques de Adafruit ici

Et voici le code :

/***************************************************
  This is an example sketch for the Adafruit 1.8" SPI display.
  This library works with the Adafruit 1.8" TFT Breakout w/SD card
  ----> http://www.adafruit.com/products/358
  as well as Adafruit raw 1.8" TFT display
  ----> http://www.adafruit.com/products/618

  Check out the links above for our tutorials and wiring diagrams
  These displays use SPI to communicate, 4 or 5 pins are required to
  interface (RST is optional)
  Adafruit invests time and resources providing this open source code,
  please support Adafruit and open-source hardware by purchasing
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.
  MIT license, all text above must be included in any redistribution
 ****************************************************/

// You can use any (4 or) 5 pins
#define sclk 4
#define mosi 5
#define cs   6
#define dc   7
#define rst  8  // you can also connect this to the Arduino reset

#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>
#include "DHT.h"
#define DHTPIN 2     // what pin we're connected to
#define DHTTYPE DHT11   // DHT 11

Adafruit_ST7735 tft = Adafruit_ST7735(cs, dc, mosi, sclk, rst);


float p = 3.1415926;
DHT dht(DHTPIN, DHTTYPE);

void setup(void) {
  Serial.begin(9600);
  dht.begin();

 
  tft.initR(INITR_BLACKTAB);   // initialize a ST7735S chip, black tab
  Serial.println("init");

  uint16_t time = millis();
  tft.fillScreen(ST7735_BLACK);
  time = millis() - time;

  Serial.println(time, DEC);
  delay(500);

}

void loop() {  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
   
    tft.fillScreen(ST7735_BLACK);
    //resultat = "Humidite" + h + "Temperature" + t;
  //testdrawtext("Humidit:", ST7735_WHITE);
  //testdrawtext(h, ST7735_WHITE);
  tft.print("humidite:");
  tft.print(h);
  tft.print("%    temp:");
  tft.print(t);
  tft.print(" C    ");
  delay(5000);

  }
}




Aucun commentaire:

Enregistrer un commentaire