Svjetionik
Tehnička škola Ruđera Boškovića VinkovciNamijenjeno je da rasvjeta bude neovisna o energetskom sustavu. Koristimo već gotov tracker za najjači izvor svjetlosti koji pozicionira solarne panele za optimalni kut punjenja. Struja generirana se zatim skladišti u bateriji, koja se kasnije koristi za rasvjetu po potrebi, odnosno može se uključiti ili isključiti pomoću mobilne aplikacije. Pošto se koristi jednostavni način paljenja, LED diodu korištenu za dokaz koncepta možemo zamijeniti s tranzistorskom sklopkom ili relejem ovisno o potrebama za jačinom. Namijenjeno je za postavljanje na mjesta gdje nije moguće dovući neki stalan izvor struje.
Izrada projekta
Mehanizam pogona, vertikalni dio i najveću masu drži 5V step motor. Koristimo zasebnu Arduino Nano pločicu, jer sa servom i step motorom upravljamo s 5V.
Mobilna aplikacija
Shema projekta
Arduino nano s lijeve strane služi za upravljanje sustavom praćenja. Servo motor koristimo za okretanje baze koja služi za okretanje lijevo-desno. Step motor služimo za nagib gore-dolje. Smjer u kojem treba ići, očitavamo usporedbom mjerenja s fotosenzora. MKR nam služi za nadzor, te kontrolu rasvjete. S njim palimo/gasimo u ovom slučaju LED diodu na pinu 8. Na pinu 8 možemo to zamijeniti za okidanje napajanja preko releja ili tranzistorske sklopke. Mjerenja sva vršimo preko analognih pinova. Preko pinova A0-A3 čitamo stanja foto otpornika, čime dobivamo i očitanje intenziteta svijetla, a s pinom A4 očitavamo stanje napajanja preko naponskog djelila u omjeru otpornika 1:2, jer moramo spustiti napon očitavanja na trećinu da budemo sigurni da je napon uvijek ispod 3V za očitanje. Ako dobivamo očitanja preko 6.7V, baterija se puni ili je potpuno puna, no ako očitanje padne na ispod 6.1V, baterija je prazna.
Shemu ovoga projekta možete preuzeti ovdje.
Arduino program
#define BLYNK_PRINT /* #define BLYNK_PRINT SerialUSB #include #include #include // Autorizacijski token blynk aplikacije char auth[] = "f818571615004b44bbebe6fac664f5ef"; // WiFi postavke char ssid[] = "Stojka"; char pass[] = "Nemasifre123"; void setup() { // početak blink aplikacije Blynk.begin(auth, ssid, pass); } void loop() { Blynk.run(); }
Arduino program ovoga projekta možete preuzeti ovdje.
#define BLYNK_PRINT /* #include #include int gd, gl, dd, dl; Servo baza; CustomStepper vertikala(3,4,5,6); // the setup function runs once when you press reset or power the board void setup() { Serial.begin(9600); baza.attach(12); vertikala.setRPM(100); //vertikala.setSPR(100); delay(1000); } // the loop function runs over and over again until power down or reset void loop() { readPhotoSensor(); while (gl != gd) { if (gl < gd) { OkreniBazu(-1); } else { OkreniBazu(1); } } OkreniBazu(0); Serial.println("Horizontala OK!"); while (gl != dl) { if (gl < dl) { // Pomak prema gore Serial.println("Pomak gore"); PomakniVertikalu(1); } else { // Pomak prema dole Serial.println("Pomak dole"); PomakniVertikalu(-1); } readPhotoSensor(); } Serial.println("Vertikala OK!"); delay(1000); } void PomakniVertikalu(int i) { vertikala.run(); vertikala.rotateDegrees(i); while (!vertikala.isDone()) delay(15); } // 0 za stopiranje, 1 za rotaciju desno, -1 za rotaciju lijevo void OkreniBazu(int i){ //testiranjem dobili da ovaj servo staje na 94 int stopservo = 94; //mala brzina potrebna, jer će ionako se malo vrtiti, išli bi i na manje brzine, no zbog opterećenja velikog ostatka mehanizma, nemamo kretanje za manje brzine int pomakoffset = 2; if (i == 0) { //zaustavljanje baza.write(stopservo); //izlazak iz funkcije, jer ako nastavi postavit će pokret u lijevo zbog doljnje else funkcije. return; } if (i > 0) { //pomak u desno baza.write(stopservo + pomakoffset); } else { //pomak u lijevo baza.write(stopservo - pomakoffset); } } void readPhotoSensor() { //čitanje stanja svih senzora gd = analogRead(A1); gl = analogRead(A0); dd = analogRead(A3); dl = analogRead(A2); //traženje maksimalnog, tj. najveće vrijednosti senzora da znamo prema kojem je najveća razina osvjetljenosti int maxanalog = gd; if (maxanalog < gl) maxanalog = gl; if (maxanalog < dd) maxanalog = dd; if (maxanalog < dl) maxanalog = dl; gd /= maxanalog / 5; gl /= maxanalog / 5; dd /= maxanalog / 5; dl /= maxanalog / 5; //Ispis vrijednosti, koristili za provjeru Serial.print("Gornji lijevi: "); Serial.println(gl); Serial.print("Gornji desni: "); Serial.println(gd); Serial.print("Donji lijevi: "); Serial.println(dl); Serial.print("Doljnji desni: "); Serial.println(dd); delay(10); }
Arduino program ovoga projekta možete preuzeti ovdje.
Autori
Projekt su izradili Sara Stojanović i Klara Blažević uz mentorstvo Danijela Pobija iz Tehnička škola Ruđer Bošković Vinkovci.
Projekt je prijavljen na temu: Internet of Things: Pametna rasvjeta.