Differences

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

Link to this comparison view

pm:prj2025:ccristi:alexandru.beiu [2025/05/25 23:39]
alexandru.beiu [Software Design]
pm:prj2025:ccristi:alexandru.beiu [2025/05/26 01:56] (current)
alexandru.beiu [Rezultate Obţinute]
Line 22: Line 22:
   * Ecran OLED 0.96" I2C   * Ecran OLED 0.96" I2C
   * Modul DC-DC Step-Down MP1584EN   * Modul DC-DC Step-Down MP1584EN
-  * Modul EEPROM AT24C256 
   * Microfon de la niște căști   * Microfon de la niște căști
   * Difuzorul original   * Difuzorul original
   * Buzzer   * Buzzer
   * Rezistente 10KOhm   * Rezistente 10KOhm
- {{:​pm:​prj2025:​ccristi:​whatsapp_image_2025-05-07_at_21.33.41.jpeg?​200| }} +  ​{{:​pm:​prj2025:​ccristi:​whatsapp_image_2025-05-07_at_21.33.41.jpeg?​200| }} 
 +  
 Schemă electrică: Schemă electrică:
  
Line 42: Line 41:
  
 Astfel, am reușit să inițiez și să primesc apeluri telefonice/​SMS-uri. Am testat de mai multe ori, totul pare să funcționeze cum trebuie, singura problemă este că persoana cu care vorbesc își aude propria voce, însă nu am gasit o rezolvare. Astfel, am reușit să inițiez și să primesc apeluri telefonice/​SMS-uri. Am testat de mai multe ori, totul pare să funcționeze cum trebuie, singura problemă este că persoana cu care vorbesc își aude propria voce, însă nu am gasit o rezolvare.
 +
 +Mecanismul de formare a numarului l-am descifrat cu ajutorul unui multimetru si functioneaza in felul urmator:
 +
 + - Avem 3 fire care ies de la rotita cu urmatoarele culori : **R**osu, **G**alben, **V**erde. Firul **R** va fi conectat la **GND**, celelalte 2 vor fi conectate la INPUT cu rezistente de PULL-UP. Pentru a semnala formarea numarului (momentul in care rotita incepe sa se invarta), firul **R** si firul **G** vor avea continuitate (la input vom avea LOW, discontinuitate),​ iar cand rotita ajunge la final, continuitatea nu mai este. Pentru a identifica cifra formata, firul **R** si **V** sunt in general in continuitate dar formeaza pauze de discontinuitate de cca 50ms, la fiecare cifra parcursa, exemplu: daca formam cifra 7, vom avea 7 pauze de discontinuitate de cca 50ms. Acest lucru este simplu de interpretat in cod deoarece Arduino va vedea 7 schimbari de semnal LOW-HIGH. ​
 +
 +Pentru a vedea daca receptorul este ridicat sau nu, am lipit 2 fire de mecanismul care tine receptorul (IN si GND, cand receptorul este pus la IN vom avea HIGH iar cand este ridicat, LOW. 
 +
 +{{:​pm:​prj2025:​ccristi:​whatsapp_image_2025-05-20_at_01.28.02.jpg?​direct&​200|}}
 +
 +
  
  
  
 ===== Software Design ===== ===== Software Design =====
 +
 +**Link GitHub : https://​github.com/​Alexe1289/​proiect_pm**
  
 **Mediu de dezvoltare și limbaj de programare**:​ **Mediu de dezvoltare și limbaj de programare**:​
Line 52: Line 63:
     ​     ​
 **Librării folosite**: **Librării folosite**:
-    ​ 
-  * SoftwareSerial.h - folosită, în principal, pentru a avea 2 conexiuni seriale (una la SIM800L, cealalta la Serial Monitor pentru debugging) 
-  *  
  
 + - SoftwareSerial.h - folosită pentru a avea 2 conexiuni seriale (una la SIM800L, cealalta la Serial Monitor pentru debugging)
  
-===== Rezultate Obţinute =====+ - Adafruit_GFX.h - folosită pentru a afișa pe ecranul OLED imagini (bitmaps)
  
-<note tip> + - Adafruit_SH110X.h - folosită pentru a interacționa cu display-ul OLED
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+ - Wire.h - folosită pentru comunicarea prin I2C cu display-ul
  
-===== Download =====+**Descrierea codului**:
  
-<note warning>​ + - Pentru inceput, in functia de setup(), setez rezistentele de pull-upconexiunea USART intre modul SIM800L si Arduino si comunicarea I2C cu display-ulDupa care pentru a stabili baudrate-ul cu SIM800L (lucru care se face automat la primul mesaj transmis)trimit ​un mesaj "​AT"​. 
-O arhivă ​(sau mai multe dacă este cazulcu fişierele obţinute în urma realizării proiectului:​ surseschemeetcUn fişier README, un ChangeLog, un script ​de compilare şi copiere automată pe uC crează întotdeauna ​impresie bună ;-).+ - In functia ​de loop, putem fi in urmatoarele stari: 
 +    - a fost ridicat receptorul ceea ce inseamna ​schimbare a tensiunii pin-ului (LOW-HIGH, HIGH-LOW), deci: 
 +      - raspundem unui apel primit prin trimiterea comenzii "​ATA"​ 
 +      - urmeaza sa formam un numar 
 +    - receptorul a fost pus jos ceea ce inseamna exact opusul al celor de mai sus, mai exact: 
 +      - inchidem apelul curent prin trimiterea comenzii "​ATH"​ 
 +      - se reseteaza vectorul cu numere formate 
 + ​Formarea numarului:
  
-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**. + - Functioneaza exact cum am descris in partea hardware. Daca rotita ​se invarte, atunci ​pe pin-ul 5 vom primi LOW, deci putem incepe sa adaugam intr-un vector de caractere numerele formateNumarul de schimbari HIGH-LOW pe pin-ul 6, semnifica ce numar a fost format. Dupa ce rotita a ajuns la final (pin 5 este din nou HIGH), afisam pe display numerele din vectorCand se ajunge la 10 numere se initiaza apelul prin comanda "**ATD+(NUMAR_TELEFON);​**"
-</​note>​+
  
 +Inainte de formarea numarului se verifica semnalul si accesul in retea in felul urmator:
 +
 + - Se trimite o comanda "​**AT+CSQ**"​ pentru a vedea calitatea semnalului. Raspunsul va fi de forma "​**+CSQ:​ <​rssi>,<​ber>​**"​
 +
 +    <​rssi>​ – Received Signal Strength Indication (nivelul semnalului):​
 +
 +        0 → -113 dBm (semnal foarte slab)
 +
 +        31 → -51 dBm (semnal excelent)
 +
 +        99 → necunoscut / nu se poate determina
 +        ​
 +    <ber> – Bit Error Rate (rata de erori):
 +  ​
 +  ​
 + - Pentru vizualizarea semnalului, am luat niste iconite de pe acest [[https://​www.flaticon.com/​|site]] si apoi le-am convertit in bytearrays(date constante care vor fi retinute in memoria **flash**) cu ajutorul [[https://​javl.github.io/​image2cpp/​|image2cpp]],​ apoi am apelat functia "​**.drawBitmap**"​
 +
 + - Se trimite o comanda "​**AT+CREG?​**"​ pentru a vedea daca avem acces in retea (in cazul meu, Orange). Daca primim: +CREG: 0,1, e totul ok.
 +
 +
 + - La primirea unui apel, generez prin buzzer 3 bip-uri scurte de 1000HZ folosind functia **tone**.
 +
 +
 +===== Rezultate Obţinute =====
 +
 +{{ :​pm:​prj2025:​ccristi:​whatsapp_image_2025-05-26_at_01.07.14.jpg?​direct&​300 |}}
 +
 +
 +----
 +[[https://​youtu.be/​3aeek7L6-k4|Videoclip de prezentare]]
 ===== Jurnal ===== ===== Jurnal =====
  
Line 82: Line 125:
  
 #3 - Mecanismul soneriei lipsește așa că voi pune un buzzer, provizoriu. #3 - Mecanismul soneriei lipsește așa că voi pune un buzzer, provizoriu.
 +
 +#4 - Am adaugat un buton de "​panica",​ da reset la arduino si SIM800L, deoarece existau situatii cand modulul GSM nu reusea sa se conecteze in retea.
 +
 +#5 - Am renuntat la memoria EEPROM pentru a retine apeluri, din cauza problemelor aparute. Mi-am dat seama ca Arduino-ului nu ii place comunicarea SoftwareSerial + I2C (se blocheaza). Asta inseamna ca nu puteam sa fac debug la ce afisam
 +
 +#6 - Am lipit firele si componentele pe perfboard pentru mai multa stabilitate.
 +
 +{{:​pm:​prj2025:​ccristi:​whatsapp_image_2025-05-26_at_01.06.51.jpg?​direct&​200 |}}
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +https://​www.flaticon.com/​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+ 
-</note>+https://​javl.github.io/​image2cpp/​ 
 + 
 +https://​lastminuteengineers.com/​sim800l-gsm-module-arduino-tutorial/​ 
 + 
 +https://​www.instructables.com/​How-to-Display-Images-on-OLED-Using-Arduino/​ 
 + 
 +GPT + Google
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
  
pm/prj2025/ccristi/alexandru.beiu.1748205599.txt.gz · Last modified: 2025/05/25 23:39 by alexandru.beiu
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