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