Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:ionut.otelea:andrei.prusacov [2026/05/26 20:18]
andrei.prusacov
pm:prj2026:ionut.otelea:andrei.prusacov [2026/05/27 08:48] (current)
andrei.prusacov
Line 1: Line 1:
 {{ :​pm:​prj2026:​ionut.otelea:​jacktracksmall.png?​nolink&​200|}} {{ :​pm:​prj2026:​ionut.otelea:​jacktracksmall.png?​nolink&​200|}}
-====== ​JACK-TRACK - Smart Dog Tracker ======+====== Smart Dog Tracker ======
 **Autor:** Prusacov Andrei-Ionut \\ **Autor:** Prusacov Andrei-Ionut \\
 **Grupa:** 333CD **Grupa:** 333CD
Line 114: Line 114:
 {{ :​pm:​prj2026:​ionut.otelea:​smartdogtracker_diagram_2.png?​direct&​600 |}} {{ :​pm:​prj2026:​ionut.otelea:​smartdogtracker_diagram_2.png?​direct&​600 |}}
  
-==== Implementare SIM808 ====+====== Implementare SIM808 ​======
  
-==== Implementare ESP ====+Partea de implementare SIM808 este cea mai importanta a proiectului. Conceptual nu este grea, modulul se bazeaza pe comunicare UART si este un simplu proces de a trimite comenzile potrivite si a citi corect raspunsurile pentru a activa / lua orice informatie necesara. 
 + 
 +Pentru abstractizare s-au folosit urmatoarele functii: 
 +  * ''​setupSim()''​ -> activeaza toate modulele sim-ului si configureaza setarile 
 +  * ''​sendSIM808Command()''​ -> trimite o comanda si asteapta ca aceasta sa fie primita 
 +  * ''​httpGet()''​ si ''​httpPost()''​ -> GET si POST generice 
 +  * ''​sendHttpData()''​ -> trimitem date intr-un feed Adafruit 
 +  * ''​getHttpDate()''​ -> primeste valoarea dintr-un feed Adafruit 
 +  * ''​sendHttpLocation()''​ -> trimitem locatia 
 +  * ''​sendSMS()''​ -> trimite o alerta la un numar de telefon 
 + 
 +<note tip> 
 +Cand SIM808 asteapta raspunsuri de la web se folosesc ''​yield()'',​ ''​webTick()''​ si ''​updateBarking''​ pentru a nu bloca restul "​firelor"​ de executie. 
 +</​note>​ 
 + 
 +<note warning>​ 
 +Ideal comunicarea s-ar fi facut prin protocolul MQTT, insa modelul meu de SIM808 este prea vechi si nu suporta acest protocol, asa ca am folosit HTTP ca fallback. 
 +</​note>​ 
 + 
 + 
 +====== Implementare ESP ====== 
 + 
 +Implementarea din ''​main''​ este core-ul principal al acestui modul. Logica se bazeaza pe un sistem de stari si niste functii de update. 
 + 
 +<code cpp> 
 +struct SystemState { 
 +    bool   ​manualAlertActive;​ 
 +    double geofenceCenterLat;​ 
 +    double geofenceCenterLng;​ 
 +    float  geofenceMaxDistance;​ 
 +    bool   ​forceBuzzer;​ 
 +    bool   ​isAlertActive;​ 
 +}; 
 +</​code>​ 
 + 
 +In loop-ul principal exista cate o functie de update care verifica starea si, bazat pe aceasta, executa actiuni. De exemplu, daca ''​forceBuzzer''​ este ''​true'',​ la urmatorul update o sa fie activat buzzer-ul.  
 + 
 +In afara de asta, exista o functie de ''​pollCommands()''​ care foloseste ''​httpGet()''​ pe field-urile importante din Adafruit si modifica starile bazat pe aceste informatii. 
 + 
 +===== Detalii extra despre implementare ===== 
 +  * **Sistemul de geofencing** se bazeaza pe calculul distantei Haversine fata de un punct central si activeaza alerta in cazul in care catelul este in afara zonei. 
 +  * **Update-urile** se fac la un interval variabil in functie de starea alertei. 
 +  * **LED-ul** va clipi intr-un pattern specific daca exista probleme. 
 +  * **Latratul** este trimis sub formatul: "A latrat de X ori cu intensitate maxima Y", deoarece ar fi foarte costisitor sa trimitem date in mod continuu. 
 +  * **Starea de activitate** a catelului se bazeaza pe viteza returnata de SIM808. 
 + 
 +<note tip> 
 +Exista si o functie de ''​webServer''​ pentru serverul de debug, dar nu face parte din functionalitatea principala a proiectului. 
 +</​note>​
  
 ==== Site Monitorizare ==== ==== Site Monitorizare ====
Line 134: Line 182:
   * **[2026.05.26 - 16:30 ]** - Adaugare poze produs final + features   * **[2026.05.26 - 16:30 ]** - Adaugare poze produs final + features
   * **[2026.05.26 - 19:43 ]** - Adaugare poze Site de monitorizare   * **[2026.05.26 - 19:43 ]** - Adaugare poze Site de monitorizare
 +  * **[2026.05.27 - 08:48 ]** - Detalii implementare software
  
pm/prj2026/ionut.otelea/andrei.prusacov.1779815917.txt.gz · Last modified: 2026/05/26 20:18 by andrei.prusacov
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0