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 19:12]
andrei.prusacov
pm:prj2026:ionut.otelea:andrei.prusacov [2026/05/27 08:48] (current)
andrei.prusacov
Line 92: Line 92:
  
 ===== Produs Final ===== ===== Produs Final =====
-{{ :​pm:​prj2026:​ionut.otelea:​jacktrack_finalproduct.jpeg?​nolink&​300|}}+{{ :​pm:​prj2026:​ionut.otelea:​jacktrack_final.jpeg?​nolink&​300|}}
 **Produsul final** asamblat ( dupa multe certuri cu a inghesuii toate firele in carcasa si a o ihnchide ) este prezentat in poza de langa. Acesta este atasat de ham-ul catelului printr-un scai si antena GPS este infasurata in jurul acestuia. In principiu totul ar trebuii sa fie foarte stabil, dar nu as arunca cu dispozitivul intr-un perete :) **Produsul final** asamblat ( dupa multe certuri cu a inghesuii toate firele in carcasa si a o ihnchide ) este prezentat in poza de langa. Acesta este atasat de ham-ul catelului printr-un scai si antena GPS este infasurata in jurul acestuia. In principiu totul ar trebuii sa fie foarte stabil, dar nu as arunca cu dispozitivul intr-un perete :)
 +
 +**Feature-urile finale ale dispozitivului:​**
 +  * Tracking Locatie cu upload catre web
 +  * Posibilitate setare punct si raza de geofence
 +  * Alerta ( cu tracking mai frecvent ) + measaj pe telefon odata ce cainele iese din zona sigura
 +  * Buzzer ( activabil remote ) si care se porneste la iesirea din zona geofence
 +  * Nivel de activitate ( bazat pe viteza cainelui )
 +  * Monitorizare latrare ( se trimite pe web un log cu intensitatea si de cate ori )
 +  * Incarcare baterie ( + raportarea acesteia pe web )
  
 Pentru variate video-uri cu testele, demo pentru produs si momente amuzante din timpul asamblarii va las un link de drive: ​ Pentru variate video-uri cu testele, demo pentru produs si momente amuzante din timpul asamblarii va las un link de drive: ​
Line 105: Line 114:
 {{ :​pm:​prj2026:​ionut.otelea:​smartdogtracker_diagram_2.png?​direct&​600 |}} {{ :​pm:​prj2026:​ionut.otelea:​smartdogtracker_diagram_2.png?​direct&​600 |}}
  
-==== Implementare ESP ====+====== Implementare SIM808 ====== 
 + 
 +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 ====
 +{{:​pm:​prj2026:​ionut.otelea:​adafruit.png?​nolink&​300}}{{:​pm:​prj2026:​ionut.otelea:​customweb.png?​nolink&​300}}\\
 [[https://​io.adafruit.com/​AndreiP25/​dashboards/​smart-dog-tracker|Smart Dog Tracker]] [[https://​io.adafruit.com/​AndreiP25/​dashboards/​smart-dog-tracker|Smart Dog Tracker]]
 +
 +M-am folosit de platforma **AdafruitIO** ( gratis ) ca sa am feed-uri pentru toate lucrurile care se intampla in cadrul JackTrack, de la locatie, la modul alerta, la starea buzzer-ului. Aceasta permite ascultarea la anumite endpoint-uri atat dupa comenzi //MQTT// cat si //HTTP//, oferind si o varianta pentru vizualizarea sau schimbarea valorilor. Pe langa el, am un site custom ( care doar apleaza API-ul de la Adafruit ) cu un design mai frumos si o interfata putin mai intuitiva.
  
 ===== Log Schimbari ===== ===== Log Schimbari =====
Line 117: Line 180:
   * **[2026.05.24 - 16:22 ]** - Adaugare Link pagina GitHub   * **[2026.05.24 - 16:22 ]** - Adaugare Link pagina GitHub
   * **[2026.05.25 - 13:01 ]** - Note despre condensatorul pentru SIM808 + Poze lipire   * **[2026.05.25 - 13:01 ]** - Note despre condensatorul pentru SIM808 + Poze lipire
 +  * **[2026.05.26 - 16:30 ]** - Adaugare poze produs final + features
 +  * **[2026.05.26 - 19:43 ]** - Adaugare poze Site de monitorizare
 +  * **[2026.05.27 - 08:48 ]** - Detalii implementare software
  
pm/prj2026/ionut.otelea/andrei.prusacov.1779811962.txt.gz · Last modified: 2026/05/26 19:12 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