Tensiometru

Introducere

Un sistem care masoara tensiunea si saturatioa de O2 si salveaza logul pe un card microSD (data si ora la care sa masurat alaturi de SPO2 si tensiune) pentru parsare ulterioara. alaturi de trimiterea in timp real prin serial catre un Raspberry pi w 0 pentru afisarea unui grafic folosind matplotlib.pyplot. Rezultatele sunt afisate in timp real pe un display OLED, iar pe un display de nokia 3310 se afiseaza un grafic minimalist Scopul proiectului este de a tine un jurnal al pulsului astfel putandu-se observa evolutia in starea de sanatate sau pur si simplu un o idee asupra tensiunii unei persoane.

Initial voiam sa fac ceva simplu, dar m-am gandit sa ma extind tinand cont ca am un Arduino Mega la dispozitie

Proiectul poate fi util din mai multe puncte de vedere, pentru persoanele mai in varsta pot sa isi ia pulsul si sa vada graficul in timp real cat de mare isi doresc (depinzand de dimensiunea monitoruui/televizorului), iar o data pe luna/an pot sa vada cum a evoluat pulsul lor folosind script-ul pus la dispozitie pe datele de pe SD.

Descriere generală

Hardware Design

Componente necesare

  • Arduino Mega
  • Breadboard
  • Fire (tata-tata + tata-mama)
  • Senzor MAXREFDES117#
  • Modul SD
  • Display Nokia 3310
  • Display OLED 0.96
  • Rezistente
  • Modul RTC
  • Raspberry pi w 0
  • Level Shifter

Am ales aceste componente in principiu accesibilitati acestora. O mare parte din aceste le aveam deja procurate pentru proiecte anterioare.

Schema Electrica

Software Design

Medii Dezvoltare:

  • Arduino IDE (pentru proiectul principal)
  • PyCharm (pentru scriptul de parsare date SD)
  • Visual Studio Code (pentru scriptul de afisare a datelor in timp real pe Raspberry pi)

Biblioteci folosite

  • Wire.h
  • SPI.h
  • DS1302.h
  • SD.h
  • PCD8544.h
  • algorithm_by_RF.h
  • max30102.h
  • U8glib.h
  • Arduino.h

Activity diagram

Pe Arduino

Programul functioneaza astfel: Pana nu se introduce de la tastatura un caracter masuratoarea nu incepe. Se colecteaza datele intr-un for de la 1 la 100 astfel obtinandu-se o valoare cat mai aproape de realitate. Daca rezultatul obtinut dupa este valid conform algoritmului se trimit datele prin serial la Pi, spre SD card alaturi de data si ora la care s-au inregistrat(aici apare un delay de max 2s), si datele spre ecrane ca sa se afiseze. La inceput se verifica si daca exista un SD card returnand o eroare in caz contrar.

Pe Pi

Datele se primesc una pe un rand despartite de un caracter, astfel putand sa se faca distinctia intre HR si SPO2. Dupa se ploteaza rezultatul cu ajutorul biblioteci matplotlib.pyplot.

Pe partea de parsare SD

Aici intervine o parsare simpla de text.

Ca si algoritmi folositi am ales sa raman la algoritmul oferit de producatorul senzorului (varianta originala nu era compatibia cu MEGA) usor modificat gasit aici. Acest algoritm calculeaza HR si SPO2 folosind datele de la senzor.

Rezultate

Demo

Cum am zis si in demo am atasat graficele dupa rulare alaturi de datele optinute

Concluzii

In concluzie, acest proiect ma ajutat sa invat comunicarea dintre Arduino si Raspberry pi w 0, de la utilizarea unui divizor de tensiune la comunicarea intre acestea. Aceasta infromatie fiind utila pentru viitoare proiecte pentru conectare mai usoara la internet a placutei arduino. :)

Ca si alte parti bune intra si lipitul pinilor (trebuie o atentie sporita sa nu strici componentele de pe langa).

Bibliografie/Resurse

pm/prj2021/abirlica/455.txt · Last modified: 2021/06/02 17:27 by ilie_cristian.sandu
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