Porte Keypad avec RF 433 mhz

Accueil/Questions/Porte Keypad avec RF 433 mhz
Porte Keypad avec RF 433 mhz 2015-05-16T14:46:31+00:00

Accueil Forums Questions Porte Keypad avec RF 433 mhz

7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • Jack74r
    Participant
    Nombre d'articles : 4
    #8650 |

    Salut j’ai fais une porte automatisé avec un keypad , buzzer et led (avec un tuto) et j’aimerais intégré les RF 433 , par exemple jaimerais que quand ma porte est ouverte donc led vert , ca envoie l’information jusqua ma deuxieme carte arduino qui elle aussi a une led vert et rouge.
    Voici le code de base de mon keypad porte fonctionnel

    #include <Password.h>
    #include <LiquidCrystal.h>
    #include <Keypad.h>
    #include <Servo.h>
    Servo myservo;
    int pos = 0;
    LiquidCrystal lcd(2,3,4,9,10,11,12);
    Password password = Password( "4321" );
    const byte ROWS = 4; // Four rows
    const byte COLS = 3; // Three columns
    // Define the Keymap
    char keys[ROWS][COLS] = {
    {'1','2','3',},
    {'4','5','6',},
    {'7','8','9',},
    {'*','0',' ',}
    };
    // Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
    byte rowPins[ROWS] = {28, 27, 26, 25}; //Lignes
    byte colPins[COLS] = {24, 23, 22}; //Colonnes
    const int buttonPin = 7;
    int buttonState = 0;
    
    // Create the Keypad
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    
    #define ledPin 13
    
    void setup(){
      Serial.begin(9600);
    myservo.attach(8);
    pinMode(buttonPin, INPUT);
    lcd.begin(16, 2);
    digitalWrite(ledPin, LOW); // sets the LED on
    Serial.begin(9600);
    keypad.addEventListener(keypadEvent); //add an event listener for this keypad
    keypad.setDebounceTime(250);
    lcd.print("Entrer code:");
    digitalWrite(0,LOW);
    }
    
    void loop(){
      Serial.println(ledPin);
    keypad.getKey();
    buttonState = digitalRead(buttonPin);
    if (buttonState == HIGH) {
    lcd.clear();
    }
    }
    
    //take care of some special events
    void keypadEvent(KeypadEvent eKey){
    switch (keypad.getState()){
    case PRESSED:
    lcd.print(eKey);
    switch (eKey){
    case ' ': guessPassword(); break;
    default:
    password.append(eKey);
    }
    }}
    
    void guessPassword(){
    if (password.evaluate()){
    digitalWrite(50, HIGH);
    digitalWrite(ledPin,HIGH); //activates garaged door relay
    delay(500);
    pos = 0; // goes from 0 degrees to 180 degrees
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    delay(2000);// waits 15ms for the servo to reach the position
    pos = 90;
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    
    digitalWrite(ledPin,LOW); //turns off door relay after .5 sec
    lcd.setCursor(0,1);
    lcd.print("CODE BON     "); //
    digitalWrite(48, LOW);
    delay(1500);
    digitalWrite(50,LOW);
    
    password.reset(); //resets password after correct entry
    delay(3000);
    pos = 90;
    myservo.write(pos);
    lcd.clear();
    lcd.print("Entrer code:");
    }
    
    else{
    digitalWrite(ledPin,LOW);
    lcd.setCursor(0,1);
    lcd.print("ERREUR !      ");
    digitalWrite(37,HIGH);
    digitalWrite(50, LOW);
    digitalWrite(48, HIGH);
    delay(2000);
    digitalWrite(37,LOW);
    digitalWrite(48,LOW);
    password.reset(); //resets password after INCORRECT entry
    delay(600);
    pos = 90;
    myservo.write(pos);
    lcd.clear();
    lcd.print("Entrer code:");
    }
    pos = 90;
    myservo.write(pos);
    }

    et donc y intégré ce code

    //simple Tx on pin D12
    //Written By : Mohannad Rawashdeh
    // 3:00pm , 13/6/2013
    //http://www.genotronex.com/
    //..................................
    #include <VirtualWire.h>
    char *controller;
    void setup() {
      pinMode(13,OUTPUT);
    vw_set_ptt_inverted(true); //
    vw_set_tx_pin(12);
    vw_setup(4000);// speed of data transfer Kbps
    }
    
    void loop(){
    controller="1"  ;
    vw_send((uint8_t *)controller, strlen(controller));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13,1);
    delay(2000);
    controller="0"  ;
    vw_send((uint8_t *)controller, strlen(controller));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13,0);
    delay(2000);
    
    }

    Ca me donne ca sauf impossible d’integré d’un un void custom

    #include <Password.h>
    #include <LiquidCrystal.h>
    #include <Keypad.h>
    #include <Servo.h>
    /////////////////////////::
    #include <VirtualWire.h>
    char *controller;
    
    /////////////////////////
    Servo myservo;
    int pos = 0;
    LiquidCrystal lcd(2,3,4,9,10,11,12);
    Password password = Password( "4321" );
    const byte ROWS = 4; // Four rows
    const byte COLS = 3; // Three columns
    // Define the Keymap
    char keys[ROWS][COLS] = {
    {'1','2','3',},
    {'4','5','6',},
    {'7','8','9',},
    {'*','0',' ',}
    };
    // Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
    byte rowPins[ROWS] = {28, 27, 26, 25}; //Lignes
    byte colPins[COLS] = {24, 23, 22}; //Colonnes
    const int buttonPin = 7;
    int buttonState = 0;
    
    // Create the Keypad
    Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
    
    #define ledPin 13
    
    void setup(){
     
      
      
      Serial.begin(9600);
    myservo.attach(8);
    pinMode(buttonPin, INPUT);
    lcd.begin(16, 2);
    digitalWrite(ledPin, LOW); // sets the LED on
    Serial.begin(9600);
    keypad.addEventListener(keypadEvent); //add an event listener for this keypad
    keypad.setDebounceTime(250);
    lcd.print("Entrer code:");
    digitalWrite(0,LOW);
    /////////////////////////
     
    vw_set_ptt_inverted(true); //
    vw_set_tx_pin(52);
    vw_setup(4000);// speed of data transfer Kbps
    ///////////////////////////////////
    }
    
    /*void guessPassword() setup{
      
       /////////////////////////::
    
     pinMode(13,OUTPUT);
    vw_set_ptt_inverted(true); //
    vw_set_tx_pin(52);
    vw_setup(4000);// speed of data transfer Kbps
    
    ////////////////////////  
      }
    */
    
    void loop(){
      Serial.println(ledPin);
    keypad.getKey();
    buttonState = digitalRead(buttonPin);
    if (buttonState == HIGH) {
    lcd.clear();
    }
    }
    
    //take care of some special events
    void keypadEvent(KeypadEvent eKey){
    switch (keypad.getState()){
    case PRESSED:
    lcd.print(eKey);
    switch (eKey){
    case ' ': guessPassword(); break;
    default:
    password.append(eKey);
    }
    }}
    
    void guessPassword(){
    if (password.evaluate()){
    digitalWrite(50, HIGH);
    /////////////////////////////////////////////////////////
    //RF//
    controller="1"  ;
    vw_send((uint8_t *)controller, strlen(controller));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13,1);
    delay(2000);
    
    ///////////////////////////////////////////////
    digitalWrite(ledPin,HIGH); //activates garaged door relay
    delay(500);
    pos = 0; // goes from 0 degrees to 180 degrees
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    delay(2000);// waits 15ms for the servo to reach the position
    pos = 90;
    myservo.write(pos); // tell servo to go to position in variable 'pos'
    
    digitalWrite(ledPin,LOW); //turns off door relay after .5 sec
    lcd.setCursor(0,1);
    lcd.print("CODE BON     "); //
    digitalWrite(48, LOW);
    delay(1500);
    digitalWrite(50,LOW);
    /////////////////////////////////////////////////////////
                //RF//
    controller="0"  ;
    vw_send((uint8_t *)controller, strlen(controller));
    vw_wait_tx(); // Wait until the whole message is gone
    digitalWrite(13,0);
    delay(2000);
    
    ////////////////////////////////////////////////////////
    
    password.reset(); //resets password after correct entry
    delay(3000);
    pos = 90;
    myservo.write(pos);
    lcd.clear();
    lcd.print("Entrer code:");
    }
    
    else{
    digitalWrite(ledPin,LOW);
    lcd.setCursor(0,1);
    lcd.print("ERREUR !      ");
    digitalWrite(37,HIGH);
    digitalWrite(50, LOW);
    digitalWrite(48, HIGH);
    delay(2000);
    digitalWrite(37,LOW);
    digitalWrite(48,LOW);
    password.reset(); //resets password after INCORRECT entry
    delay(600);
    pos = 90;
    myservo.write(pos);
    lcd.clear();
    lcd.print("Entrer code:");
    }
    pos = 90;
    myservo.write(pos);
    }

    merci

    • Ce sujet a été modifié le il y a 2 ans et 1 mois par  arnaud9212.
    • Ce sujet a été modifié le il y a 2 ans et 1 mois par  arnaud9212.
    Jack74r
    Participant
    Nombre d'articles : 4

    J’aimerais que quand digitalWrite(50, HIGH); ou LOW il envoie a l’autre arduino HIGH ou LOW

    arnaud9212
    Admin bbPress
    Nombre d'articles : 118

    Bonjour Jack74r, je ne suis pas sur de comprendre ton problème. Ton code me parait correcte à première vu mais qu’est ce que tu appelle un custom?

    Jack74r
    Participant
    Nombre d'articles : 4

    J’enverrai l’erreur mais il me met une erreur. Essaye de compilée sinon j’envoie demain le code
    Merci

    00PET
    Participant
    Nombre d'articles : 19

    Oula un peu le borde là ^^ Tu veux pas nous donner le fichier en entier à compiler plutôt ? Histoire de pouvoir checker rapidement ce qui ne va pas. S’il vous plaît la team tutoarduino mettez le code source en couleur comme le fait le site du zero c’est archi pratique

    Jack74r
    Participant
    Nombre d'articles : 4

    C’est tout le code :/
    Apparemment je suis obligé utiliser les rf dans le void et pas dans un fonction qui est appelé dans le void mais bon faut tout je refasse tant pis :/
    Je vais juste faire une télécommande avec les rf.
    Merci

    arnaud9212
    Admin bbPress
    Nombre d'articles : 118

    Bonjour Jack, on ne peux pas compiler ton fichier car il nous manque les fichiers que tu mets dans include au début du programme…

    00PET, on va y travailler mais on a pas encore de solution pour faire ca maintenant

7 sujets de 1 à 7 (sur un total de 7)

Vous devez être connecté pour répondre à ce sujet.