Bonjour,
Cela fait quelques mois que j'ai découvers l'univers Raspbery puis Adruino et enfin Attiny.
J'ai également commence à me faire une installation domotique.
Je suis du genre à préférer faire moi meme et comprendre comment cela fonctionne plutôt que d'acheter du tout fait (j'aime bien me prendre la tête quoi).
Je suis de formation mécanitien donc je ne suis pas une bête en programmation et léectronique.
J'ai donc pour projet de me faire mes proper capteurs de temperature intérieur et extérieur pour regular mon chauffage.
Ci desous le materiel utilise :
Côté domotique :
- Raspberry 3
- 1 arduino nano connecté en i2c avec le RPI (je veux pas d'USB)
- 1 émeteur 433 Mhz connecté au RPI (foncitonne très bien, notament pour piloter mon éclairage).
- 1 récepteur 433 conencté à l'érduino
- Soft domotique : Jeddom.
Côté sonde temperature et humidité, j'ai des capteurs DHT22 (classique) et emeteurs 433mhz.
Dans un premier temps j'ai utilisé un arduino, j'ai finis pas obtenir ce que je souhaitai, j'arrive à récupérer toutes les info sur le raspberry et donc Jeedom.
J'ai voulu passer sur attiny85 pour miniaturiser la chose et réduire fortement la consomation.
J'ai reutilize le meme code que pour l'arduino. Je l'ai juste réadapté pour l'Attiny.
J'ai chargé le bootloader 1Mhz dans l'Attiny.
Et j'ai chargé mon programme?.
J'ai une Led qui clignonte lorsque le signal est envoyé
Sauf que la LED clignote pas du tout au bon rythme et je ne reçois rien côté RPI (j'ai aussi essayé avec un autre arduino et récepteur et cela ne fonctionne pas non plus).
Après recherché il semblerait que cela soit un probleme de timer et/ou de la bibliothèque virtualwire. Sauf que je ne suis pas assez callé et je ne m'en sort pas.
Si quelqu'un pouvait m'éclairer à ce sujet, ça serait top !
Ci dessous mon programme :
//-= Inclusion des headers =-//
#include <avr/io.h> // pour la mise en veille
#include <avr/wdt.h> // pour la mise en veille
#include <avr/sleep.h> // pour la mise en veille
#include "VirtualWire.h" //librairie pour l'emission rf
#include "DHT.h"
//-= Déclaration des constantes =-//
#define LED_PIN 0
#define TX_PIN 2 // Broche DATA emeteur RF433
#define DHTPIN 3
#define DHTTYPE DHT22
//-= Déclaration des variables =-//
#define CODE 81 // Code protocole propriétaire
#define P 3 // 1 = chambre 1, 2 = chambre 2, 3 = chambre 3, 4 = WC,5 = Salle
float temperature;
float humidite;
de bian, 6 = extérieur...
char msg[20];
char temp1[3];
char temp2[2];
char temp3[6];
char temp4[6];
//-=Définition du capteur =-//
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(LED_PIN, OUTPUT);
pinMode(TX_PIN, OUTPUT);
vw_setup(2000);
dht.begin();;
vw_set_tx_pin(TX_PIN);
digitalWrite(LED_PIN, HIGH);delay (1000);
digitalWrite(LED_PIN, LOW);delay (500);
digitalWrite(LED_PIN, HIGH);delay (1000);
digitalWrite(LED_PIN, LOW);
}
void loop() {
temperature = dht.readTemperature();
humidite = dht.readHumidity();
dtostrf(CODE,1,0,temp1);
dtostrf(P,1,0,temp2);
dtostrf(humidite,1,2,temp3);
dtostrf(temperature,1,2,temp4);
strcpy(msg,temp1);
strcat(msg,"/");
strcat(msg,temp2);
strcat(msg,"/");
strcat(msg,temp3);
strcat(msg,"/");
strcat(msg,temp4);
vw_send((uint8_t *)msg,strlen(msg)); // Envoie le message
vw_wait_tx(); // Attend la fin de l'envoi
digitalWrite(LED_PIN, HIGH);delay (500);
digitalWrite(LED_PIN, LOW);delay (500);
digitalWrite(LED_PIN, HIGH);delay (500);
digitalWrite(LED_PIN, LOW);delay (500);
delay(10000);
}