Arduino radionica: Paljenje svetla telefonom

Ovim postom otvaramo novu kategoriju „Arduino radionica“, u kojoj ćemo pisati o projektima koji mogu biti vrlo zanimljivi, ali ne i previše komplikovani. Prvi među njima je „Paljenje svetla telefonom“ koji će biti posebno interesantan lenjivcima koje mrzi da pred spavanje ustaju da bi ugasili sobno svetlo. 🙂

Ovaj projekat će, kao i svi drugi, imati mogućnosti proširivanja, dodavanje novih modula senzora, itd. itd… Počnimo. 🙂

Kratak pregled projekta:


Kada ste pročitali naslov verovatno ste se pitali „Kako je to moguće??“, „Ma daj, koja je ovo fora?!“ i slično, ali zapravo nije nikakva fora. 🙂 Reč je o elektronskom sklopu pod kojim spadaju Arduino mikrokontrolerska ploča, Bluetooth modul, jednokanalni relej, nekoliko komada žice i 2 otpornika.

Kao što je već svima jasno, Arduino je glavni, takoreći on je mozak. Bluetooth modul koristimo kako bismo omogućili komunikaciju sa bilo kojim android uređajem i da preko nekog od Bluetooth terminala, koji možemo instalirati preko Google play, zadajemo naredbe za uključivanje i isključivanje svetla. Relej, koji služi da usled električnog signala koji Arduino pošalje zatvori ili otvori kolo u kome se nalazi vaša lampa (više o Relejima) tj. da je uključi ili isključi. Koristićemo jednokanalni jer želimo da upravljamo samo jednim svetlom, dok vi možete uzeti višekanalni pa upravljati sa više svetala, ali u tom slučaju potrebno je dopuniti kod programa. Što se tiče 2 otpornika, oni su nam potrebni da bismo prilagodili napon signala za Bluetooth modul, koji je predviđen da bude 3,3V, a mi na Arduinu imamo 5v, dakle moramo napraviti razdelnik napona.

Potrebno:

  • 1 x Arduino Uno (ili bilo koji drugi Arduino) -$5
  • 1 x HC-05 Bluetooth modul -$4
  • 1 x 1 channel 5V relay modul -$1,5
  • 1 x bilo koji Android uređaj
  • nekoliko komada žice za povezivanje
  • 1 x otpornik od 2kΩ (koštaju oko 1 dinar)
  • 1 x otpornik od 1kΩ

 

Povezivanje

Ono što je prvo što treba da uradimo je da povežemo celo kolo. Za početak ne morate povezivati lampu sa relejom. Na slici ispod možete videti povezivanje. DOK BILO ŠTA POVEZUJETE NEKA NE BUDE POD NAPONOM.

arduino_bluetooth_serial - Copy

Moram reći samo nekoliko reči o povezivanju. Prva stvar je da obratite pažnju na koje kleme povezujete žice za lampu, jer većina ovakvih releja ima NO i NC priključke. NO predstavlja Normally Open priključak koji je u periodu kada je neaktivan (kada nema signala na ulazu releja) otvoren, tj. drži električno kolo otvorenim, dok NC (Normally Closed) priključak, kada je neaktivan drži kolo zatvorenim. Nama je potreban NO priključak (koji je označen na većini releja) da bi, kada Arduino pošalje signal za aktivaciju relej zatvorio kolo i upalio svetlo, jer da je u pitanju NC, onda bi se svetlo ugasilo na naredbu paljenja, dakle inverzno od onoga što nama treba.

Druga stvar koju bih rekao, ako se radi o sobnoj lampi, ona sigurno ima prekidač za paljenje. Moj savet je da skinete taj prekidač, da ga rasklopite i da tu 1 žicu koja je u prekidu povežete sa relejom, kako ne biste morali da sečete kabl itd. Obratite pažnju da kleme na releju budu dobro zategnute i radi predostrožnosti izolir trakom izolujte sve što mislite da treba.

Kod

Kada je sve povezano, dolazi red i na kod programa.

 

int led=3;
int tx=1;
int rx=0;
char inSerial[15];


void setup(){
  Serial.begin(9600);
  pinMode(led, OUTPUT);
  pinMode(tx, OUTPUT);
  pinMode(rx, INPUT);
  allpinslow();
}

void loop(){
    int i=0;
    int m=0;
    delay(500);                                         
    if (Serial.available() > 0) {             
       while (Serial.available() > 0) {
         inSerial[i]=Serial.read(); 
         i++;      
       }
       inSerial[i]='\0';
      Check_Protocol(inSerial);
     }} 
     
void allpinslow()
{
digitalWrite(led, LOW);
}     
  
void Check_Protocol(char inStr[]){   
  int i=0;
  int m=0;
    
  if(!strcmp(inStr,"on")){
    allpinslow();
    digitalWrite(led, HIGH);
    
    for(m=0;m<11;m++){
      inStr[m]=0;}
       i=0;}
       
       if(!strcmp(inStr,"off")){
    allpinslow();
    digitalWrite(led, LOW);
    
    for(m=0;m<11;m++){
      inStr[m]=0;}
       i=0;}

       
    else{
    for(m=0;m<11;m++){
      inStr[m]=0;
    }
    i=0;

}}
  

Nakon Upload-ovanja programa na Arduino ostaje nam samo da pripremimo naš Android telefon. Ono što nam treba je Bluetooth terminal. Ima ih više da se skinu, trebalo bi da svaki radi. Kada instalirate terminal potrebno je upariti telefon sa Bluetooth modulom HC-05. Šifra za uparivanje je 0000 ili 1234. I, nakon što ste uparili uređaje isprobajte da li radi kako treba, slanjem teksta „on“ -za paljenje, ili „off“ -za gašenje.

Na slikama ispod prikazano je korišćenje jednog od mogućih BT terminala.

 

Mogućnosti proširivanja:

  • Dodati neki od temperaturnih senzora i da vam preko BT (Bluetooth) stižu podaci o temperaturi
  • Dodati senzor osvetljenja koji će detektovati kada padne mrak i automatski upaliti svetlo
  • Dodati višekanalni relej koji će upravljati sa više lampi

To je sve! Nadam se da će nekome poslužiti. 🙂 Pogledajte i ostale tutorijale iz kategorije Arduino radionica i zaronite u uradi-sam svet!


Autor:

Aleksa Ristić

Student, bloger, veliki entuzijast i kreativac

Advertisements

3 thoughts on “Arduino radionica: Paljenje svetla telefonom

  1. Повратни пинг: Paljenje svetla v2.0 – Arduinisti

Оставите одговор

Попуните детаље испод или притисните на иконицу да бисте се пријавили:

WordPress.com лого

Коментаришет користећи свој WordPress.com налог. Одјавите се / Промени )

Слика на Твитеру

Коментаришет користећи свој Twitter налог. Одјавите се / Промени )

Фејсбукова фотографија

Коментаришет користећи свој Facebook налог. Одјавите се / Промени )

Google+ photo

Коментаришет користећи свој Google+ налог. Одјавите се / Промени )

Повезивање са %s