GPS rasvjeta

Prva riječka hrvatska gimnazija

Program služi pametnoj rasvjeti tako da prepoznaje GPS koordinate mobilnog uređaja i uspoređuje ih sa zadanim koordinatama (prostorije ili slično) te pali ili gasi rasvjetu po potrebi.

Izrada projekta

Početno stanje, LED dioda ne svijetli, tj. program nije pokrenut.

Program je pokrenut, LED dioda svijetli.

Pogled na projekt odozgo.

Mobilna aplikacija

GPS (zeleno) neprekidno očitava GPS koordinate, MainSwitch (plavo) upravlja radom cijelog programa (“On”/”Off”) i SetLocation (crveno) postavlja početnu lokaciju (koordinate) prema kojima se program onda ravna.

GPS stream widget koji neprekidno u intervalima od 5 sekundi očitava GPS koordinate. (Spojen na virtualni pin 0 (V0)).

Button widget kojim se jednokratno može zadati početnu lokaciju prema kojoj se program onda ravna. (Spojen na virtualni pin 2 (V2)) Mora biti “On” najmanje 5 sekundi!

Button widget koji upravlja čitavim programom, ako nije u stanju “On”, program se neće izvršavati (LED dioda neće svijetliti) (Spojen na virtualni pin 1 (V1)).

Shema projekta

Napon od 5V iz digitalnog pina 3 (D3) preko otpornika 330Ω u žutu LED diodu i uzemljeno.

Shemu ovoga projekta možete preuzeti ovdje.

Arduino program

#define BLYNK_PRINT /*

/*************************************************************
  Download latest Blynk library here:
    https://github.com/blynkkk/blynk-library/releases/latest

  Blynk is a platform with iOS and Android apps to control
  Arduino, Raspberry Pi and the likes over the Internet.
  You can easily build graphic interfaces for all your
  projects by simply dragging and dropping widgets.

    Downloads, docs, tutorials: http://www.blynk.cc
    Sketch generator:           http://examples.blynk.cc
    Blynk community:            http://community.blynk.cc
    Follow us:                  http://www.fb.com/blynkapp
                                

  Blynk library is licensed under MIT license
  This example code is in public domain.

 *************************************************************

  You’ll need:
   - Blynk App (download from AppStore or Google Play)
   - Arduino MKR1000 board
   - Decide how to connect to Blynk
     (USB, Ethernet, Wi-Fi, Bluetooth, ...)

  There is a bunch of great example sketches included to show you how to get
  started. Think of them as LEGO bricks  and combine them as you wish.
  For example, take the Ethernet Shield sketch and combine it with the
  Servo example, or choose a USB sketch and add a code from SendData
  example.
 *************************************************************/
//----------------------------------------------------------------------------------------------------------------------------------------   


                           // Program služi pametnoj rasvjeti na način da prepoznaje GPS koordinate mobilnog uređaja i uspoređuje ih sa zadanim koordinatama (prostorije ili slično) te pali ili gasi rasvjetu po potrebi



#define BLYNK_PRINT SerialUSB



#include 
#include 
#include 



   int f;                                // Varijabla kojom upravljamo općim radom programa
   
   int g;                                // Varijabla kojom upravljamo određivanjem prvobitne (osnovne) lokacije
   
   int a = 0;                            // Varijabla kojom usklađujemo rad dijelova programa koji prikupljaju informacije i izvršavaju zadatke

String Lat1 = "";                        // Varijabla string za geografsku širinu + određeni radius
String Lon1 = "";                        // Varijabla string za geografsku dužinu + određeni radius
String Lat2 = "";                        // Varijabla string za geografsku širinu - određeni radius
String Lon2 = "";                        // Varijabla string za geografsku dužinu - određeni radius

                                // Sve String varijablepostavljene su u početuoj fazi na "" (prazno)

String TestLat = "";                     // Varijabla koja prati trenutnu geografsku širinu
String TestLon = "";                     // Varijabla koja prati trenutnu geografsku dužinu


//------------------------------------------------------------------------------------------------------------------------------------------


                                                                                    
// Go to the Project Settings (nut icon).
char auth[] = "****";  // Token koji se dobiva pokretanjem projekta u Blynku

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "****";  // Naziv korištene mreže
char pass[] = "****";  // Lozinka korištene mreže

void setup()
{
  
  SerialUSB.begin(9600);
pinMode(3, OUTPUT);                         // LED dioda spojena na pin 3
Serial.begin(9600);                         // Pokretanje serijske komunikacije

  Blynk.begin(auth, ssid, pass);            // Komunikacija arduina s Blynkom

}

BLYNK_WRITE(V1) {                           // Očitavanje varijable 'f' sa widgeta Button (MainSwitch)
  f = param.asInt();                        // Funkcija za očitavanje vrijednosti virtualnog pina (V1)
}



BLYNK_WRITE(V2) {                           // Očitavanje varijable 'g' sa widgeta Button (SetLocation)
 g = param.asInt();                         //  Funkcija za očitavanje vrijednosti virtualnog pina (V2)
}









BLYNK_WRITE(V0) {                           // Početak petlje kojom se provjeravaju GPS koordinate, tj. pali i gasi LED dioda
  GpsParam gps(param);                      // Pozivanje GPS koordinata
  



if (a == 0){                                // Uvijet za rad djela programa koji određuje osnovnu lokaciju prema kojoj radi ostatak programa, tj. uvijet koji onemogućuje da se zadana (osnovna) lokacija mijenja nakon što je jednom određena (dok se ponovno ne pokrene Arduino)
if (g == 1) {                               // Uvijet za očitavanje zadane (osnovgne) lokacije preko varijable 'g', služi određivanju zadane (osnovne) lokacije samo kada korisnik to želi
  
Lat1 = String ((gps.getLat()-0.0001000),7); // Varijabla za radijus zadane (osnovne) geografske širine; bitno je naglasiti da su u primjeru radijus (0.0001000) zadan i može se mijenjati isključivo u programu (manualno),(+/-0.0001000 je otprilike 10 metara)
Lon1 = String ((gps.getLon()-0.0001000),7); 
Lat2 = String ((gps.getLat()+0.0001000),7); // Varijabla za radijus zadane (osnovne) geografske dužine; bitno je naglasiti da su u primjeru radijus (0.0001000) zadan i može se mijenjati isključivo u programu (manualno),(+/-0.0001000 je otprilike 10 metara)
Lon2 = String ((gps.getLon()+0.0001000),7);

                                            // +/- vrijednosti su radijusi koji određuju GPS koordinate koje određuju rad programa

a++;                                        // Povećavanje varijable 'a' sa 0 na 1 što onemogućuje ponovno pokretanje ovog dijela programa, tj. ponovno postavljanje zadane (osnovne) GPS lokacije (dok se ponovno ne pokrene Arduino)
}
}
  


if (f == 1){                                // Uvijet koji preko varijable 'f' upravlja radom programa
  TestLat = String (gps.getLat(),7);        // Funkcija koja sprema trenutnu geografsku širinu u String za daljnje uspoređivanje
  TestLon = String (gps.getLon(),7);        // Funkcija koja sprema trenutnu geografsku dužinu u String za daljnje uspoređivanje

  
  if (a == 1){                              // Uvijet koji onemogućuje daljnji rad programa (paljenje svjetla) prije nego što je odrađen 1. dio programa (koji je postavio varijablu 'a' sa 0 na 1
    
  
  if (((((TestLat) < (Lat2)) && ((TestLat)) > (Lat1)))  && ((((TestLon)) < (Lon2)) && ((TestLon)) > (Lon1))){      // Glavni uvijet koji uspoređuje zadane i trenutne koordinate uz odstupanja zbog preciznosti lokalizacije uređaja
    digitalWrite(3,HIGH);                   // Naredba koja pali LED diodu, ako je uvijet ispunjen
  }
  else{
    digitalWrite(3,LOW);                    // Naredba koja gasi LED diodu, ako uvijet nije ispunjen
  }
  
  }

}
else{
  digitalWrite(3,LOW);                     // Naredba koja gasi LED diodu ako program nije pokrenut
}

  




}

void loop()
{




   Blynk.run();                            // Naredba za pokretanje Blynk aplikacije

  
}




    
  




Arduino program ovoga projekta možete preuzeti ovdje.

Autori

Projekt su izradili Joel Aničić i Antonio Mohorić uz mentorstvo Tamare Široke iz Prve riječke hrvatske gimnazije.

Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.

Drugi projekti

Pametna rasvjeta – Zastora pomoću mobitela

Pametna rasvjeta – Zastora pomoću mobitela

Sustav pametne rasvjete baziran na prisutnosti korisnika

Sustav pametne rasvjete baziran na prisutnosti korisnika

Vanjska pametna rasvjeta – sensor

Vanjska pametna rasvjeta – sensor

Zvučna rasvjeta

Zvučna rasvjeta

Pametna rasvjeta za stan

Pametna rasvjeta za stan

Ambijetalno svjetlo

Ambijetalno svjetlo

Pametna rasvjeta

Pametna rasvjeta

Solarna energija

Solarna energija

Svjetlo u tami

Svjetlo u tami

Pametna rasvjeta (detektor zvuka)

Pametna rasvjeta (detektor zvuka)

Policijska sirena i oznaka Starta

Policijska sirena i oznaka Starta

Pali – gasi

Pali – gasi

Daljinsko upravljanje rasvjetom

Daljinsko upravljanje rasvjetom

Pametna rasvjeta – Music reacting circuit

Pametna rasvjeta – Music reacting circuit

Anti-theft

Anti-theft

Connect IT Pametni hodnik

Connect IT Pametni hodnik

Protuprovalni sustav

Protuprovalni sustav

Pametni stan

Pametni stan

Pametni tanjurić za šalicu

Pametni tanjurić za šalicu

Pametna kuća s Arduinom

Pametna kuća s Arduinom

Pametna kuća

Pametna kuća

Protuprovalno svjetlo u ormaru

Protuprovalno svjetlo u ormaru

Pametna rasvjeta

Pametna rasvjeta

Pametne osvijetljene stube

Pametne osvijetljene stube

Svijetliš u noći

Svijetliš u noći

Careduino

Careduino

Rainclock

Rainclock

Pljeskalica

Pljeskalica

Zebra

Zebra

Pametna rasvjeta informatika

Pametna rasvjeta informatika

Pametna rasvjeta

Pametna rasvjeta

Signalizacija

Signalizacija

Pametna rasvjeta

Pametna rasvjeta

Svjetlo za ugođaj

Svjetlo za ugođaj

Pametna rasvjeta

Pametna rasvjeta

Snimanje filma s mobitelom uz pomoć pametne rasvjete

Snimanje filma s mobitelom uz pomoć pametne rasvjete

Pametna ulična rasvjeta

Pametna ulična rasvjeta

Neka bude svjetlo

Neka bude svjetlo

Emotion light

Emotion light

Gasi letriku!

Gasi letriku!

Svjetlosni komunikator

Svjetlosni komunikator

iHouse

iHouse

Pametna rasvjeta s Arduinom

Pametna rasvjeta s Arduinom

Pametna rasvjeta kuće

Pametna rasvjeta kuće

Model kuće s pametnom rasvjetom

Model kuće s pametnom rasvjetom

Pametna rasvjeta – Zaštita kuće od provalnika

Pametna rasvjeta – Zaštita kuće od provalnika

Pametna rasvjeta na pljeskalački pogon

Pametna rasvjeta na pljeskalački pogon

Pametna rasvjeta

Pametna rasvjeta

Uređaj za mjerenje količine svjetlosti, vlage i temperature

Uređaj za mjerenje količine svjetlosti, vlage i temperature

Pametna budilica

Pametna budilica

Ambijentalna rasvjeta

Ambijentalna rasvjeta

Pametna garaža

Pametna garaža

Laserski brojač ljudi

Laserski brojač ljudi

Pametna vanjska rasvjeta

Pametna vanjska rasvjeta

Pametna rasvjeta

Pametna rasvjeta

Blynk pametna rasvjeta sa ESP8266

Blynk pametna rasvjeta sa ESP8266

Rasvjeta u igraonici

Rasvjeta u igraonici

Svjetionik

Svjetionik

IoT pametna rasvjeta ovisno o vremenu dana

IoT pametna rasvjeta ovisno o vremenu dana

Arduino smart light switch

Arduino smart light switch

Slabo pokretne osobe

Slabo pokretne osobe

RGB mixer

RGB mixer

Pametna rasvjeta

Pametna rasvjeta

Zujalica i svjetlo na senzor

Zujalica i svjetlo na senzor

Žuta i zelena soba

Žuta i zelena soba

Pametna rasvjeta

Pametna rasvjeta

Ako upališ, ugasi!

Ako upališ, ugasi!

Upozorenje na upaljena svjetla

Upozorenje na upaljena svjetla

GPS rasvjeta

GPS rasvjeta

RGB svjetlo

RGB svjetlo

Pametan parking

Pametan parking

Priprema, pozor, sad

Priprema, pozor, sad

Disco light

Disco light

Aurora Borealis

Aurora Borealis

Pametni hladnjak

Pametni hladnjak

Pametna rasvjeta

Pametna rasvjeta

Pametna rasvjeta u kući

Pametna rasvjeta u kući

Noćna rasvjeta

Noćna rasvjeta

Noćni prozor

Noćni prozor

Otvori me, zatvori me

Otvori me, zatvori me

House and garden lights

House and garden lights

IOT_Rasvjeta_4

IOT_Rasvjeta_4

Smart rasvjeta

Smart rasvjeta

IOT-Stubišni automat

IOT-Stubišni automat

Lego Arduino pametna rasvjeta

Lego Arduino pametna rasvjeta

IOT_Rasvjeta_2

IOT_Rasvjeta_2

IOT_Rasvjeta_1

IOT_Rasvjeta_1

Svjetlo za bicikl

Svjetlo za bicikl