Sisällysluettelo:
- Vaihe 1: Piiri
- Vaihe 2: Signaalin käsittelykoodi ja palvelinviestintä
- Vaihe 3: Palvelin- ja tietoliikenne
- Vaihe 4: Android -sovellus
- Vaihe 5: Johtopäätös
Video: IOT -sykemittari (ESP8266 ja Android -sovellus): 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Osana viimeisen vuoden projektiani halusin suunnitella laitteen, joka valvoisi sykettäsi, tallentaisi tiedot palvelimelle ja ilmoittaisi sinulle ilmoituksella, kun sykkeesi oli epänormaali. Projektin idea syntyi, kun yritin rakentaa sopivan bittisovelluksen, joka ilmoittaa käyttäjälle, jos hänellä on sydänongelma, mutta en voinut keksiä tapaa käyttää reaaliaikaista tietoa. Sisältää fyysisen piirin sykkeen mittaamiseen, ESP8266 Wi-Fi -moduulin, jossa on signaalinkäsittelykoodi, palvelimen koodin tallentamiseen ja Android-sovelluksen sykkeen näyttämiseen.
Fyysisen piirin yksityiskohtainen video näkyy yllä. Kaikki projektin koodit löytyvät Githubistani.
Vaihe 1: Piiri
Sydämenlyönnin mittaamiseen on kaksi päämenetelmää, mutta tässä projektissa päätin käyttää fotopletytysmografiaa (PPG), joka käyttää infrapuna- tai punaista valonlähdettä, joka murtuu ihon ensimmäisten kerrosten läpi. Valosensoria käytetään mittaamaan valon voimakkuuden muutosta (kun veri virtaa astian läpi). PPG -signaalit ovat uskomattoman meluisia, joten suodatin tarvittavat taajuudet kaistanpäästösuodattimella. Ihmisen sydän lyö taajuudella 1-1,6 Hz. Käyttämäni op-vahvistin oli lm324, jolla oli paras jännitepoikkeama kaikista käytettävissä olevista op-vahvistimista. Jos luot tämän projektin uudelleen, tarkkuusop-vahvistin olisi paljon parempi valinta.
Vahvistusta käytettiin vain kaksi, koska ESP8266: n suurin jännitetoleranssi on 3,3 V, enkä halunnut vahingoittaa levyäni!
Noudata yllä olevaa piiriä ja yritä saada se toimimaan leipätaululla. Jos sinulla ei ole oskilloskooppia kotona, voit kytkeä lähdön Arduinoon ja piirtää sen, mutta varmista, että jännite ei ole korkeampi kuin arduino- tai mikrokontrollerin toleranssi.
Piiri testattiin leipätaululla ja ulostulon muutos havaittiin, kun sormi asetettiin LEDin ja valotransistorin yli. Päätin sitten juottaa levyn yhteen, jota ei näytetty videossa.
Vaihe 2: Signaalin käsittelykoodi ja palvelinviestintä
Päätin käyttää Arduino IDE: tä ESP8266: ssa, koska se on niin helppokäyttöinen. Kun signaali piirrettiin, se oli edelleen erittäin meluisa, joten päätin puhdistaa sen FIR-liukuvan keskiarvon suodattimella, jonka näyte oli kymmenen. Muokkasin tähän esimerkin Arduino -ohjelmaa nimeltä "tasoitus". Kokeilin hieman löytääkseni tavan mitata signaalin taajuus. Pulssit olivat eri pituisia ja amplitudisia, koska sydämessä oli neljä erilaista pulssia ja PPG -signaalien ominaisuudet. Valitsin tunnetun keskiarvon, jonka signaali ylitti aina kullekin pulssille. Käytin rengaspuskuria määrittämään, milloin signaalin kaltevuus oli positiivinen tai negatiivinen. Näiden kahden yhdistelmän avulla voitiin laskea pulssien välinen aika, jolloin signaali oli positiivinen ja yhtä suuri kuin tietty arvo.
Ohjelmisto tuotti melko epätarkan BPM: n, jota ei todellakaan voitu käyttää. Lisä iteraatioilla voitaisiin suunnitella parempi ohjelma, mutta ajanrajoitusten vuoksi tämä ei ollut vaihtoehto. Koodi löytyy alla olevasta linkistä.
Ohjelmisto ESP8266
Vaihe 3: Palvelin- ja tietoliikenne
Päätin käyttää Firebasea tietojen tallentamiseen, koska se on ilmainen palvelu ja sitä on erittäin helppo käyttää mobiilisovellusten kanssa. ESP8266: lla ei ole virallista Firebase -sovellusliittymää, mutta huomasin, että Arduino -kirjasto toimi erittäin hyvin.
ESP8266WiFi.h -kirjastosta löytyy esimerkkiohjelma, jonka avulla voit muodostaa yhteyden reitittimeen SSID: n ja salasanan avulla. Tätä käytettiin kortin yhdistämiseen Internetiin, jotta tiedot voitaisiin lähettää.
Vaikka tietojen tallentaminen oli helppoa, on edelleen useita ongelmia push -ilmoitusten lähettämisessä HTTP POST -pyynnön kautta. Löysin kommentin Githubista, joka käytti vanhaa tapaa tehdä tämä Googlen pilviviestien ja ESP8266: n HTTP -kirjaston kautta. Tämä menetelmä näkyy Githubin koodissa.
Firebasessa loin projektin ja käytin ohjelmiston sovellusliittymää ja rekisteröintiavaimia. Firebase -pilviviestejä käytettiin sovelluksen kanssa push -ilmoitusten lähettämiseen käyttäjälle. Kun tietoliikennettä testattiin, tiedot saatiin nähdä tietokannassa ESP8266: n ollessa käynnissä.
Vaihe 4: Android -sovellus
Hyvin yksinkertainen Android -sovellus on suunniteltu kahdella toiminnolla. Ensimmäinen toiminto kirjautui käyttäjän sisään tai rekisteröi hänet Firebase -sovellusliittymän avulla. Tutkin tietolomaketta ja löysin erilaisia opetusohjelmia Firebasen käyttämisestä mobiilisovelluksen kanssa. Pääaktiviteetti, joka näytti käyttäjän datakäyttäjän reaaliaikaisessa tapahtumakuuntelijassa, joten käyttäjän BPM: n muutoksissa ei havaittu havaittavaa viivettä. Push -ilmoitukset tehtiin aiemmin mainitun Firebase -pilviviestien avulla. Firebase -tietolomakkeessa on paljon hyödyllistä tietoa tämän toteuttamisesta, ja sovellus voidaan testata lähettämällä ilmoituksia Firebasen verkkosivuston koontinäytöstä.
Kaikki aktiviteettien koodit ja pilviviestien menetelmät löytyvät Github -arkistostani.
Vaihe 5: Johtopäätös
Käyttäjän BPM: n mittaamisessa oli joitain suuria ongelmia. Arvot vaihtelivat suuresti eivätkä ne olleet käyttökelpoisia käyttäjän terveyden määrittämiseen. Tämä johtui signaalin käsittelykoodista, joka toteutettiin ESP8266: ssa. Lisätutkimusten jälkeen huomasin, että sydämellä on neljä erilaista pulssia vaihtelevalla ajanjaksolla, joten ei ollut ihme, että ohjelmisto oli epätarkka. Tapa torjua tätä olisi ottaa keskimäärin neljä pulssia ryhmässä ja laskea sydämen jakso näiden neljän pulssin ajalta.
Muu järjestelmä oli toimiva, mutta tämä on hyvin kokeellinen laite, jonka halusin rakentaa nähdäkseni, onko objekti mahdollista. Push -ilmoitusten lähettämiseen käytetty vanha koodi on pian käyttökelvoton, joten jos luet tätä vuoden 2018 lopussa tai myöhään, tarvitaan erilainen menetelmä. Tämä ongelma ilmenee kuitenkin vain ESP: n kanssa, joten jos haluat käyttää tätä WiFi -yhteensopivassa Arduinossa, se ei ole ongelma.
Jos sinulla on kysyttävää tai ongelmia, lähetä minulle viesti Instructablesista.
Suositeltava:
ESP8266 AT -laiteohjelmiston flash -ohjelmointi tai ohjelmointi ESP8266 -välähdys- ja ohjelmointilaitteella, IOT Wifi -moduuli: 6 vaihetta
ESP8266 AT -laiteohjelmiston flash-ohjelmointi tai ohjelmointi ESP8266-salama- ja ohjelmoijaohjelmistolla, IOT Wifi -moduuli: Kuvaus: Tämä moduuli on USB-sovitin /ohjelmoija ESP-0166- tai ESP-01S-tyyppisille ESP8266-moduuleille. Se on kätevästi varustettu 2x4P 2,54 mm: n naarasliittimellä ESP01: n liittämiseksi. Lisäksi se katkaisee kaikki ESP-01: n nastat 2x4P 2,54 mm uroksen kautta
Android -sovelluksen luominen Android Studion avulla: 8 vaihetta (kuvilla)
Android -sovelluksen luominen Android Studion avulla: Tämä opetusohjelma opettaa sinulle Android -sovelluksen rakentamisen perusteet Android Studion kehitysympäristön avulla. Android -laitteiden yleistyessä uusien sovellusten kysyntä vain kasvaa. Android Studio on helppokäyttöinen (
ESP8266 NODEMCU BLYNK IOT -opetusohjelma - Esp8266 IOT Blunkin ja Arduino IDE: n avulla - LEDien ohjaus Internetin kautta: 6 vaihetta
ESP8266 NODEMCU BLYNK IOT -opetusohjelma | Esp8266 IOT Blunkin ja Arduino IDE: n avulla | LEDien ohjaus Internetin kautta: Hei kaverit, tässä oppaassa opimme käyttämään IOT: tä ESP8266: n tai Nodemcun kanssa. Käytämme siihen blynk -sovellusta.Siksi käytämme esp8266/nodemcu -ohjelmaa LED -valojen ohjaamiseen Internetin kautta. Joten Blynk -sovellus yhdistetään esp8266- tai Nodemcu -laitteeseemme
Android -sovelluksen yhdistäminen AWS IOT -järjestelmään ja puheentunnistusliittymän ymmärtäminen: 3 vaihetta
Android -sovelluksen yhdistäminen AWS IOT -järjestelmään ja puheentunnistusliittymän ymmärtäminen: Tämä opetusohjelma opettaa käyttäjälle, miten Android -sovellus liitetään AWS IOT -palvelimeen ja ymmärretään kahvinkeitintä ohjaava äänentunnistusliittymä. Sovellus ohjaa kahvinkeitintä Alexan kautta Äänipalvelu, jokaisen sovelluksen
Raspberry Pi, Android, IoT ja Bluetooth -käyttöinen drone: 7 vaihetta (kuvilla)
Raspberry Pi, Android, IoT ja Bluetooth-käyttöinen drone: Tämä kompakti, kannettava tietokone käyttää Raspberry Pi: tä sisäiseen logiikkaan ja luo paikallisen portin, joka suoratoistaa videota reaaliajassa ja luo samalla Bluetooth-liitännät arvojen lukemiseen mukautetun Android -sovelluksen lähettämä. Sovellus synkronoi t