This shows you the differences between two versions of the page.
pm:prj2024:sseverin:ana_maria.mirza [2024/05/27 12:10] ana_maria.mirza [Implementare] |
pm:prj2024:sseverin:ana_maria.mirza [2024/05/27 15:52] (current) ana_maria.mirza [Implementare] |
||
---|---|---|---|
Line 53: | Line 53: | ||
Configurare inițială constă în inițializarea pinilor pentru senzorul ultrasonic, buzzer și butoane, precum și pinii pentru gps si gsm Arduino pentru a semnaliza starea de funcționare. Pentru cele două butoane au fost setate întreruperi pentru a putea porni și opri programul și pentru a activa/dezactiva modul de alarmă. | Configurare inițială constă în inițializarea pinilor pentru senzorul ultrasonic, buzzer și butoane, precum și pinii pentru gps si gsm Arduino pentru a semnaliza starea de funcționare. Pentru cele două butoane au fost setate întreruperi pentru a putea porni și opri programul și pentru a activa/dezactiva modul de alarmă. | ||
- | În bucla principală a programlui, dacă butonul de start a fost apăsat, LED-ul integrat se aprinde și funcția principală project() este apelată pentru a gestiona măsurătorile și alertele.Dacă programul nu este pornit, LED-ul integrat rămâne stins și se așteaptă apăsarea unui buton pentru a începe. | + | În bucla principală a programului, dacă butonul de start a fost apăsat, LED-ul integrat se aprinde și funcția principală project() este apelată pentru a gestiona măsurătorile și alertele.Dacă programul nu este pornit, LED-ul integrat rămâne stins și se așteaptă apăsarea unui buton pentru a începe. Astfel, device-ul este în stand-by până când butonul de start este apăsat. |
- | + | ||
- | === Funcția project() === | + | |
<code> | <code> | ||
Line 74: | Line 72: | ||
} | } | ||
} | } | ||
+ | </code> | ||
+ | === Funcția project() === | ||
+ | |||
+ | În funcția prject() este implementată funcționalitatea device-ului. | ||
+ | |||
+ | <code> | ||
void project() { | void project() { | ||
digitalWrite(trigPin, LOW); | digitalWrite(trigPin, LOW); | ||
Line 123: | Line 127: | ||
} | } | ||
</code> | </code> | ||
- | |||
- | În această funcție este implementată funcționalitatea device-ului. | ||
Senzorul ultrasonic HC-SR04 trimite un puls și măsoară timpul de revenire pentru a calcula distanța față de obiectul monitorizat, după care distanța măsurată este afișată pe monitorul serial. Dacă distanța este mai mică de 10 cm, buzzerul este oprit pentru a semnaliza că obiectul este aproape. Dacă în schimb distanța este mai mare sau egală cu 10 cm și modul alarmă este activat, buzzerul este pornit pentru a alerta utilizatorul că se îndepărtează de obiect. De asemenea, se trimite o notificare sms că obiectul a fost uitat. Dacă modul alarmă nu este activat, buzzer-ul rămâne silențios și se trimite doar notificarea. | Senzorul ultrasonic HC-SR04 trimite un puls și măsoară timpul de revenire pentru a calcula distanța față de obiectul monitorizat, după care distanța măsurată este afișată pe monitorul serial. Dacă distanța este mai mică de 10 cm, buzzerul este oprit pentru a semnaliza că obiectul este aproape. Dacă în schimb distanța este mai mare sau egală cu 10 cm și modul alarmă este activat, buzzerul este pornit pentru a alerta utilizatorul că se îndepărtează de obiect. De asemenea, se trimite o notificare sms că obiectul a fost uitat. Dacă modul alarmă nu este activat, buzzer-ul rămâne silențios și se trimite doar notificarea. | ||
- | Programul de asemenea verifică regulat dacă primește o cerere SMS cu textul "GET-GPS", și trimite locația curentă prin SMS folosind coordonatele GPS obținute. | + | Programul de asemenea verifică regulat dacă primește o cerere SMS cu textul "GET-GPS", și trimite locația curentă prin SMS folosind coordonatele GPS obținute. Locație este transmisă sub forma unui url google maps folosind latitudinea și longitudinea de la gps. |
Programul de asemenea citește de la gps locația transmisă, doar la nevoie, pentru trimite locația gps exactă a obiectului, pentru a eficientiza consumul bateriei. | Programul de asemenea citește de la gps locația transmisă, doar la nevoie, pentru trimite locația gps exactă a obiectului, pentru a eficientiza consumul bateriei. | ||
Line 150: | Line 152: | ||
} | } | ||
} | } | ||
+ | </code> | ||
+ | <code> | ||
void send_location() { | void send_location() { | ||
// update location information first | // update location information first | ||
Line 164: | Line 168: | ||
} | } | ||
</code> | </code> | ||
+ | |||
+ | <code> | ||
+ | void send_sms(String text) { | ||
+ | sgsm.print("\r"); | ||
+ | delay(1000); | ||
+ | sgsm.print("AT+CMGF=1\r"); | ||
+ | delay(1000); | ||
+ | /*Replace XXXXXXXXXX to 10 digit mobile number & | ||
+ | ZZ to 2 digit country code*/ | ||
+ | sgsm.print("AT+CMGS=\"+ZZXXXXXXXXXX\"\r"); | ||
+ | delay(1000); | ||
+ | //The text of the message to be sent. | ||
+ | sgsm.print(text); | ||
+ | delay(1000); | ||
+ | sgsm.write(0x1A); | ||
+ | delay(1000); | ||
+ | } | ||
+ | </code> | ||
+ | |||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | În urma testelor, rezultatele obținute sunt foarte bune pe partea de măsurare a distanței și alerta atunci când nu mai este detectat un obiect în apropiere. Modul alarmă funcționează conform așteptărilor, în schimb, gps-ul are probleme în preluarea locației de la sateliți în funcție de locul în care este și nu am putut obține decât informații cu privire la data și oră prin modulul gps. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | Deși pare ușor la prima vedere, totuși acest m-a învățat că electronica nu funcționează mereu așa cum mă aștept, conform specificațiilor, și erorile din diverse cauze își fac apariția la tot pasul. Am învățat să fac debug folosind print-uri pe serială și led-uri, și am mai învățat și că un cod funcțional și corect poate buși memoria unui microcontroler din motive nebănuite, fix când te aștepți mai puțin. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2024:sseverin:forget_me_not.zip|}} |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | ||
- | </note> | ||
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | * [[https://lastminuteengineers.com/sim800l-gsm-module-arduino-tutorial/|GSM Module Arduino Tutorial]] |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * [[https://randomnerdtutorials.com/guide-to-neo-6m-gps-module-with-arduino/|Guide to NEO6M GPS Module with Arduino]] |
- | </note> | + | * [[https://https://projecthub.arduino.cc/Isaac100/getting-started-with-the-hc-sr04-ultrasonic-sensor-7cabe1|Getting started with HC-SR04 ultrasonic sensor]] |
- | + | * [[https://https://www.bing.com/search?q=how+to+connect+buzzer+to+arduino&cvid=1c4c009867bf4e19a23c8417a664ee98&gs_lcrp=EgZjaHJvbWUqBggAEAAYQDIGCAAQABhAMgYIARBFGDkyBggCEAAYQDIGCAMQABhAMgYIBBAAGEAyBggFEAAYQDIGCAYQABhAMgYIBxAAGEAyBggIEAAYQNIBCDM1MjhqMGo0qAIAsAIA&FORM=ANAB01&DAF0=1&PC=EDGEDB/|How to use a buzzer with Arduino]] | |
- | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | * [[https://mechatrofice.com/arduino/send-gps-location-via-sms|Send GPS locatino via SMS]] |
+ | * [[https://lastminuteengineers.com/sim800l-gsm-module-arduino-tutorial/|SIM800L GPS module Arudino tutorial]] | ||
+ | * [[https://arduinogetstarted.com/tutorials/arduino-gps|Arduino GPS tutorial]] | ||
+ | * [[https://howtomechatronics.com/tutorials/arduino/ultrasonic-sensor-hc-sr04/|Ultrasonic Sensor HC-SR04]] | ||
+ | * [[https://www.instructables.com/External-Interrupt-in-arduino/|External Interrupt in Arduino]] | ||