Node capteur DS18B20
Exemple de sketch:
/* Author : Fabrice Scheider AKA Denia * Modifications: Xylerk * Description : Node envoyant température en utilisant le protocole radio ydle. * Note : J'utilise dans cette librairie un DS18B20, il est donc nécessaire que vous l'ayez dans * votre répertoire librairies pour que le sketch compile. * Licence : CC-BY-SA */ #include <TimerOne.h> #include "Ydle.h" #include <DallasTemperature.h> #include <OneWire.h> #define RX_PIN 12 #define TX_PIN 10 #define BT_PIN 3 #define DELAY_SEND 15000 #define DS18B20_PIN 9 OneWire oneWire(DS18B20_PIN); DallasTemperature sensors(&oneWire); ydle y(RX_PIN, TX_PIN, BT_PIN); unsigned long last_send, cur_time; void setup() { Serial.begin(115200); Serial.println("init complete"); y.init_timer(); cur_time = millis(); last_send = cur_time; } void loop() { y.receive(); if(y.initialized()){ cur_time = millis(); if(cur_time - last_send >= DELAY_SEND){ last_send = cur_time; // code de récupération des informations venant du capteurs sensors.requestTemperatures(); float temperature = sensors.getTempCByIndex(0); // Création de la frame qui va être envoyée Frame_t frame; // On y insère la valeur dont nous avons besoin /** Nous demandons un accusé réception. * La bibliothèque va s'occuper seule de l'acquittement * Si aucun acquittement n'est reçu au bout d'une seconde * elle procédera à un nouvel envois. Si au bout de 3 envois successifs * aucun acquittement n'est reçu, nous considérons la trame comme perdue. */ y.dataToFrame(&frame, YDLE_TYPE_STATE_ACK); /** Nous ajoutons la valeur que nous avons récupérée auprès du capteur */ y.addData(&frame, YDLE_DATA_DEGREEC, temperature); /** Nous procédons à l'envoi de la trame. * */ y.send(&frame); } } }