Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Module intérieur du projet Take Out The Trash (TOTT)
- // Reçoit les données du module extérieur et les traite
- // pour indiquer avec des témoins lumineux quand sortir la poubelle
- #include <SPI.h>
- #include <RH_RF69.h>
- #include <Regexp.h>
- /************ Radio Setup ***************/
- #define RF69_FREQ 915.0
- #define RFM69_INT 3
- #define RFM69_CS 4
- #define RFM69_RST 2
- RH_RF69 rf69(RFM69_CS, RFM69_INT); // Singleton instance of the radio driver
- /********* LED Display Setup ***********/
- #define LED5 5
- #define LED6 6
- #define LED7 7
- #define GREEN_TRASH 8
- #define YELLOW_TRASH 9
- int greenDay[7] = {0, 1, 0, 0, 0, 1, 0};
- int yellowDay[7] = {0, 0, 0, 1, 0, 0, 0};
- void setup()
- {
- Serial.begin(9600);
- pinMode(LED5, OUTPUT);
- pinMode(LED6, OUTPUT);
- pinMode(LED7, OUTPUT);
- pinMode(YELLOW_TRASH, OUTPUT);
- pinMode(GREEN_TRASH, OUTPUT);
- pinMode(RFM69_RST, OUTPUT);
- digitalWrite(RFM69_RST, HIGH); delay(10);
- digitalWrite(RFM69_RST, LOW); delay(10);
- Serial.println(F("*** Module intérieur Take Out The Trash ***"));
- if (!rf69.init()) {
- Serial.println(F("Impossible d'initialiser le module ..."));
- while (1);
- }
- if (!rf69.setFrequency(RF69_FREQ)) {
- Serial.println(F("Impossible d'établir la bonne fréquence"));
- }
- rf69.setTxPower(20, true);
- uint8_t key[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08};
- rf69.setEncryptionKey(key);
- Serial.println(F("Le module s'est parfaitement initialisé"));
- Serial.print(F("Module réglé @")); Serial.print((int)RF69_FREQ); Serial.println(F(" MHz"));
- Serial.println(F("\n************************************\n"));
- }
- MatchState ms;
- void loop() {
- if (rf69.available()) {
- uint8_t buf[RH_RF69_MAX_MESSAGE_LEN];
- uint8_t len = sizeof(buf);
- if (rf69.recv(buf, &len))
- {
- if (!len) return;
- buf[len] = 0;
- Serial.print(F("Reçu : "));
- Serial.println((char*)buf);
- ms.Target ((char*)buf);
- char result = ms.Match ("[0-6]+[0-1]+[0-1]", 0);
- if (result == REGEXP_MATCHED)
- {
- uint8_t data[] = "Message reçu !";
- rf69.send(data, sizeof(data));
- rf69.waitPacketSent();
- Serial.println(F("Réponse envoyée"));
- }
- else if (result == REGEXP_NOMATCH)
- {
- Serial.println(F("Erreur dans la réception"));
- }
- else
- {
- Serial.println(F("Erreur"));
- }
- }
- }
- /*String test = "510";
- ledOn(test);
- delay(20000);
- ledOff();
- delay(10000);*/
- }
- void ledOn(String led)
- {
- int led0 = int(led[0])-48;
- int led1 = int(led[1])-48;
- int led2 = int(led[2])-48;
- switch (led0)
- {
- case 0:
- digitalWrite(LED5, LOW);
- digitalWrite(LED6, LOW);
- digitalWrite(LED7, HIGH);
- Serial.println("Dimanche");
- break;
- case 1:
- digitalWrite(LED5, LOW);
- digitalWrite(LED6, HIGH);
- digitalWrite(LED7, LOW);
- Serial.println("Lundi");
- break;
- case 2:
- digitalWrite(LED5, LOW);
- digitalWrite(LED6, HIGH);
- digitalWrite(LED7, HIGH);
- Serial.println("Mardi");
- break;
- case 3:
- digitalWrite(LED5, HIGH);
- digitalWrite(LED6, LOW);
- digitalWrite(LED7, LOW);
- Serial.println("Mercredi");
- break;
- case 4:
- digitalWrite(LED5, HIGH);
- digitalWrite(LED6, LOW);
- digitalWrite(LED7, HIGH);
- Serial.println("Jeudi");
- break;
- case 5:
- digitalWrite(LED5, HIGH);
- digitalWrite(LED6, HIGH);
- digitalWrite(LED7, LOW);
- Serial.println("Vendredi");
- break;
- case 6:
- digitalWrite(LED5, HIGH);
- digitalWrite(LED6, HIGH);
- digitalWrite(LED7, HIGH);
- Serial.println("Samedi");
- break;
- default:
- Serial.println(F("tu sais pas coder"));
- break;
- }
- if ((led1 == 1) && (greenDay[led0] == 1))
- {
- digitalWrite(GREEN_TRASH, HIGH);
- Serial.println("green trash a sortir");
- }
- else
- {
- digitalWrite(GREEN_TRASH, LOW);
- Serial.println("green trash déjà sortie");
- }
- if ((led2 == 1) && (greenDay[led0] == 1))
- {
- digitalWrite(YELLOW_TRASH, HIGH);
- Serial.println("yellow trash a sortir");
- }
- else
- {
- digitalWrite(YELLOW_TRASH, LOW);
- Serial.println("yellow déjà sortie");
- }
- }
- void ledOff()
- {
- for (int i = 5; i < 10; i++) {
- digitalWrite(i, LOW);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement