Relé vezérlés HC-06 Bluetooth modullal + SR501 PIR

Ezzel a példával a telefonunkra telepített bluetooth soros monitoron keresztül vezérelhetjük a két csatornás relénket. Két üzemmód között kapcsolgatva használhatjuk. Az egyik üzemmód, amikor a mozgásérzékelő akív, a másik pedig amikor kézi vezérléssel egyesével kapcsolgatjuk a reléket. Az alapértelmezett állapot a passzív üzemmód, amikor a reléket bluetooth soros kapcsolaton keresztül az ‘1’ és a ‘2’ és a ‘0’ számok beírásával kapcsoljuk. Az ‘1’-esre az első relé kapcsol be, a ‘2’-esre a második relé kapcsol be, a ‘0’ küldésénél mind a két bekapcsolt relé kikapcsol. Értelemszerűen ha csak az egyik relé van csak bekapcsolva, akkor csak az kapcsol ki a másik relét nem billenti át az ellenkező állapotba. Aktív üzemmódba az ‘a’ betű küldésével kapcsolhatunk át. Ebben az üzemmódban az egyik relé mindig meghúzott állapotban van a másik relé pedig mindig elengedett állapotban. Ha mozgás van ez az állapot a negáltjára billen át. Ebből az üzemmódból a ‘p’ betű küldésével válthatunk vissza a passzív üzemmódba.

Ezt a kapcsolást, akkor érdemes használni, ha van egy aktív fényforrásunk és egy hangulatfény. Így mozgásérzékelővel is tudjuk kapcsolni vagy kézi vezérléssel.

 

Bluetooth_Relay_PIR

A teszteléshez én a Bluetooth SPP nevű programot használtam. Amit a linkre kattintva a Google PLAY-ből le lehet tölteni. Ha megnyitjuk a google play linkjét, és átlapozzuk a programról készült képeket, akkor láthatjuk, hogy azon felül hogy a terminál monitor ablakban beírjuk és elküldjük a számokat és betűket, még akár saját nyomógombokat is konfigurálhatunk a “keyboard mode” menüponton belül. Itt megadhatjuk a gomb nevét és azt, hogy milyen karaktert küldjünk át a gomb lenyomására, a gomb nyomva tartására, és a felengedésére. Ezek a nyomógomb konfigurációk kilépéskor mentésre kerülnek.

Amikor megnyitjuk a programot, akkor első lépésben az aktív eszközöket keresi és listázza ki. Ha megjelenik a “HC-06” az eszközök között, akkor csatlakozzunk hozzá, és a párosításnál használjuk az “1234”-es vagy a “0000”-ás jelszót. Amennyiben megtörtént a párosítás válasszuk ki a számunkra ideális monitor módot és voila máris használhatjuk a kapcsolást arra amire akarjuk.

Forráskód:

 

#include // Könyvtár beolvasása

SoftwareSerial HC_06(10, 11); // RX, TX
int relaypin=13; // A relé csatorna 
int relaypin2=12; //
int motionpin=9;
int motion_status;
int motion_read;
int active;
int BluetoothData; // az adat ami érkezik

void setup() {
  // Bluetooth serial beállítás
  HC_06.begin(9600);
  HC_06.println("Bluetooth Bekapcsolva");
  // Relé pinek kimenetként való deklarálása
  pinMode(relaypin,OUTPUT);
  pinMode(relaypin2,OUTPUT);
  pinMode(motionpin,INPUT);
  digitalWrite(relaypin,0); 
  digitalWrite(relaypin2,0);
  motion_status=LOW;
  motion_read=0;
  active=0;
}

void loop() 
{
   // Ha a bluetooth modul aktív
   if (HC_06.available())
   {
   // Bluetooth serial adat beolvasás
       BluetoothData=HC_06.read();
       if(BluetoothData == 'a')
       {
       active = 1;  
       HC_06.println("Mozgásérzékelő aktív");
       }
        if (BluetoothData=='p')
       {
       active = 0; 
       HC_06.println("Mozgásérzékelő passzív");
       digitalWrite(relaypin,0);
       digitalWrite(relaypin2,0);
       }
       while (active == 1)
       {
         BluetoothData=HC_06.read();
         motion_read=digitalRead(motionpin);
         if (motion_read == HIGH)
         { 
           digitalWrite(relaypin2,0);
           digitalWrite(relaypin,1);
           if (motion_status == LOW)
           { 
           HC_06.println("Mozgás érzékelve");
           motion_status = HIGH;   
           }
         }
         else 
         {          
           digitalWrite(relaypin,0);
           digitalWrite(relaypin2,1);
           if (motion_status == HIGH)
             {
               HC_06.println("Mozgás vége");
               motion_status = LOW; 
             }
         }  
         if (BluetoothData=='p')
            {
             active = 0; 
             HC_06.println("Mozgásérzékelő passzív");
            }
       }
       
      while (active == 0)
       {
        BluetoothData=HC_06.read();
          if(BluetoothData=='1')
        {
         digitalWrite(relaypin,1);
         HC_06.println("1-es Relé bekapcsolva");
        }
        if(BluetoothData=='2')
        {
         digitalWrite(relaypin2,1);
         HC_06.println("2-es Relé bekapcsolva");
        }
          if (BluetoothData=='0')
          { 
            digitalWrite(relaypin,0);
            digitalWrite(relaypin2,0);
            HC_06.println("1-es és 2-es Relé kikapcsolva");
          }
           if (BluetoothData=='a')
            {
             active = 1; 
              HC_06.println("Mozgásérzékelő aktív");
            }
        }
   }
   
delay(100);

}
(Statisztika: 17 megtekintés)

Vélemény, hozzászólás?

Az email címet nem tesszük közzé.