• Post category:Uno
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :mars 12, 2022
  • Temps de lecture :5 min de lecture

Station météo par ondes radio 433mhz avec un attiny85 sur accu 18650 et 1 Arduino Uno avec affichage LCD *

 

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino Uno
  • 1 x LCD 20×4
  • 1 x Module I2C
  • 1 x Module Rf 433mhz Emetteur + Récepteur
  • 1 Led
  • 1 Attiny85
  • 1 Résistances 220Ω (optionnel)
  • 1 Résistance 470KΩ
  • 1 DHT22
  • 1 Accu 18650
  • 1 Batterie Shield V1.2.0 pour Wemos D1 Mini
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

Bibliothèque :

  • tinysnore.h
  • Manchester.h
  • dht.h
  • LiquidCrystal_I2C.h

 

 

Vidéo de démonstration :

 

Schéma de câblage de l’Emetteur :

 

Code :

#include <dht.h>
dht DHT22;
#define DHT22PIN 4

float h=0;
float t=0;
int transmit_t = 0;
int transmit_h = 0;

#include <Manchester.h>
#include "tinysnore.h" // Include TinySnore Library
#define NUMERO_EMETTEUR 8 // choisir un nombre entre 0 et 254, unique pour chaque émetteur du réseau
#define TX_PIN 1 // broche reliée à l'émetteur 433 MHz
#define datalength 4
uint8_t data[datalength];

void setup()
{
man.setupTransmit(TX_PIN, MAN_1200);
delay(500);
}


void loop()
{
int chk = DHT22.read22(DHT22PIN);
h=DHT22.humidity;
t=DHT22.temperature;
transmit_h=(int) h;
transmit_t=(int) t;

data[0] = datalength;

data[1] = NUMERO_EMETTEUR;
data[2] = transmit_h;
data[3] = transmit_t;

man.transmitArray(datalength, data);

snore(500);
}

 

Schéma de câblage du Récepteur :

 

Code :

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);

#include "Manchester.h"
#define RX_PIN 11 // là où est branché le récepteur 433 MHz
int LED_PIN = 10;

uint8_t LedOn = 1;
#define BUFFER_SIZE 22
uint8_t buffer[BUFFER_SIZE];



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

lcd.init();
lcd.backlight();
pinMode(LED_PIN, OUTPUT);
man.setupReceive(RX_PIN, MAN_1200);
man.beginReceiveArray(BUFFER_SIZE, buffer);

}

void loop() {


if (man.receiveComplete())
{
uint8_t receivedSize = 0;

receivedSize = buffer[0]; // la taille du message se trouve dans le premier byte

Serial.print("Message en provenance de l'emmeteur ");
Serial.println(buffer[1]);
Serial.println(buffer[2]);
Serial.println(buffer[3]);

man.beginReceiveArray(BUFFER_SIZE, buffer);
LedOn = !LedOn;
digitalWrite(LED_PIN, LedOn);
lcd.setCursor(0,0);
lcd.print("Temperature :");

lcd.setCursor(14,0);
lcd.print(" ");

lcd.setCursor(14,0);
lcd.print(buffer[3]);

lcd.setCursor(17,0);
lcd.print((char)223);
lcd.setCursor(18,0);
lcd.print("C");

lcd.setCursor(0,1);
lcd.print("Humidite :");
lcd.setCursor(14,1);
lcd.print(" ");
lcd.setCursor(14,1);
lcd.print(buffer[2]);
lcd.setCursor(17,1);
lcd.print((char)37);
}
}

 


 

Laisser un commentaire