// // STM32 Nucleo-C031C6 SPI LCD Example
// // Simulation: https://wokwi.com/projects/365549388158011393
// #include "SPI.h"
// #include "Adafruit_GFX.h"
// #include "Adafruit_ILI9341.h"
// #define TFT_DC 2
// #define TFT_CS 3
// Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
// void setup() {
// Serial.begin(115200);
// Serial.println("Hello, WOKWI");
// tft.begin();
// tft.setCursor(20, 120);
// tft.setTextColor(ILI9341_RED);
// tft.setTextSize(3);
// tft.println("Hello STM2");
// tft.setCursor(24, 160);
// tft.setTextColor(ILI9341_GREEN);
// tft.setTextSize(2);
// tft.println("I can do SPI :-)");
// }
// void loop() { delay(10); }
#include <Adafruit_GFX.h>
#include <Adafruit_ILI9341.h>
#include <DHT.h>
#define DHTPIN 9
#define DHTTYPE DHT22
#define TFT_CS 3
#define TFT_DC 2
#define TFT_RST 4 // si non câblé, mettre RST=4 mais inutilisé
Adafruit_ILI9341 lcd = Adafruit_ILI9341(TFT_CS, TFT_DC);
DHT dht(DHTPIN, DHTTYPE);
#define LED_R 5
#define LED_G 6
#define LED_B 7
void setup() {
Serial.begin(115200);
dht.begin();
lcd.begin();
lcd.fillScreen(ILI9341_BLACK);
lcd.setRotation(1);
lcd.setTextColor(ILI9341_WHITE);
lcd.setTextSize(2);
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
lcd.setCursor(20, 20);
lcd.println("Systeme initialisé");
}
void loop() {
float hum = dht.readHumidity();
float temp = dht.readTemperature();
int pot = analogRead(A1);
int ldr = analogRead(A2);
// LEDs: basées sur le potentiomètre
analogWrite(LED_R, pot / 4);
analogWrite(LED_G, (1023 - pot) / 4);
analogWrite(LED_B, ldr / 4);
// UART
Serial.print("Temp: ");
Serial.print(temp);
Serial.print(" C | Hum: ");
Serial.print(hum);
Serial.print(" % | Pot: ");
Serial.print(pot);
Serial.print(" | LDR: ");
Serial.println(ldr);
// AFFICHAGE TFT
lcd.fillScreen(ILI9341_BLACK);
lcd.setCursor(10, 20);
lcd.print("Temp : ");
lcd.print(temp);
lcd.println(" C");
lcd.setCursor(10, 60);
lcd.print("Hum : ");
lcd.print(hum);
lcd.println(" %");
lcd.setCursor(10, 100);
lcd.print("Pot : ");
lcd.print(pot);
lcd.setCursor(10, 140);
lcd.print("LDR : ");
lcd.print(ldr);
delay(1000);
}