GUI-O Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    ECG Electro Cardio Gram

    Scheduled Pinned Locked Moved
    Share Your Projects
    2
    3
    705
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      gammda
      last edited by gammda

      Here is very simple ECG Electro Cardio Gram made with Arduino UNO , Bluetooth HC06 adapter and an AD8232 sensor.
      https://www.aliexpress.com/item/32989203202.html?spm=a2g0s.9042311.0.0.27424c4dQYUJ6C
      ECG-Cardio1.JPG

      Arduino UNO uses analog (PinC.1) for input. Immediately after the analog signal measurement, it sends the value information via the serial port (Bluetooth module HC06) to the GUI-O application (CH-sweep chart object) on the smartphone.

      That's enough speed for a heartbeat. 😃

      You can turn the sound ON or OFF with the "sound" button.

      Result is on Youtube video - screenvideo from my phone.

      Screenshot_20210610-203008.jpg

      1 Reply Last reply Reply Quote 0
      • H
        HilmihanEkim2208
        last edited by

        Arduino Uno İçin Kod dosyaları varmı.
        Nasıl bir kod yazmamız gerekir.

        G 1 Reply Last reply Reply Quote 0
        • G
          gammda @HilmihanEkim2208
          last edited by gammda

          @HilmihanEkim2208
          Hello.
          For easier communication, next time please write in English.

          This is done with Bascom IDE and not Arduino. The source code is in the attachment.

          '------------------------------------------------------------------------------
          ' ECG Electro Cardio Gram
          ' 2021-07-01 (c)gammda
          ' Ver-1
          ' CardioGraph
          ' Use Arduino UNO analog input A1 (pinc.1) and AD8232 modul
          ' .-----------------------.
          ' |ATMEGA328              |
          ' |Clock 11.059200MHz     |
          ' |Baud:19200             |
          ' '-----------------------'
          ' 1.Install GUI-O application on smartphone
          '   www.gui-o.com or https://play.google.com/store/apps/details?id=com.guio.guioapp
          ' 2.Start GUI-O and make Bluetooth connection with arduino board
          ' 3.Press on start GUI-O button
          '------------------------------------------------------------------------------
          
          $regfile = "m328pbdef.dat"
          $crystal = 11059200
          '$baud = 9600                                                'default baudrate for Bluetooth HC06
          $baud = 19200                                               'NOTE!  For proper connection, it is necessary to set 19200 on the bluetooth module HC06.
                                                                      'For first test you can use default baudrate 9600
          
          Config Serialin = Buffered , Size = 120
          
          Const Timer1reload = 43200
          Config Timer1 = Timer , Prescale = 256
          Load Timer1 , Timer1reload
          On Ovf1 Timer1_isr
          Enable Timer1
          Start Timer1
          
          Enable Interrupts
          
          
          '-ADC--------------------------------------------------------------------------
          Dim Channel As Byte                                         'A/D conversion
          Channel = 1
          
          Config Adc = Single , Prescaler = Auto , Reference = Avcc
          Start Adc
          Enable Interrupts
          '------------------------------------------------------------------------------
          $lib "GetToken.Lib"
          $external Gettoken
          Declare Function Gettoken(strinput As String , Byval Bseparator As Byte , Byval Bcount As Byte ) As String
          Dim Sep As Byte
          Dim Pozicija As Byte
          '------------------------------------------------------------------------------
          
          Dim Cardio As Integer
          Dim Pulse As Byte
          Dim Pulsex As Byte
          Pulsex = 60
          
          Dim Timx As Byte
          Dim Timy As Byte
          Dim Pul1 As Byte
          Dim Soun_d As Bit
          Soun_d = 0
          
          Dim Flags As Bit
          Flags = 0
          Dim Data_key As Byte
          Dim Znak As String * 15
          Dim Rdata As String * 100
          Dim Init As String * 4
          
          Gosub Guio_ini                                              'start initalization procedure on GUI-O - write objects on screen of smart phone
          '------------------------------------------------------------------------------
          Main:
          Do
            If Ischarwaiting() = 1 Then
             Gosub Read_data
            End If
          
               Cardio = Getadc(channel)                               'read walue of AD
          
               If Cardio > 740 Then                                   'sound if amplitude je more than 740
                 If Soun_d = 1 Then
                   Print "@ton1 EDUR:500"                             'sound appear on smart phone
                 End If
          
                 Pul1 = Pul1 + 1                                      'calculate pulse
                 If Timy = 4 Then
                   Pulse = Pul1 * 10
                   Pul1 = 0
                   Timy = 0
                 End If
          
               End If
          
               Print "@ch1 PLI:" ; Chr(34) ; "pl1" ; Chr(34) ; " YP:" ; Chr(34) ; Cardio ; Chr(34)       ' write graph data (AD data) ECG to GUI-O
          
            If Timx > 1 Then
          
              Print "@ch0 PLI:" ; Chr(34) ; "pl0" ; Chr(34) ; " PLC:" ; Chr(34) ; "#000000" ; Chr(34) ; " YP:" ; Chr(34) ; Pulse ; Chr(34) ; " XP:" ; Chr(34) ; "0" ; Chr(34)       'Write graph pulse to GUI-O
              Print "@lbpulse TXT:" ; Chr(34) ; Pulse ; Chr(34)       'write numeric value on GUI-O
          
              Timx = 0
            End If
          
          Loop
          End                                                         'End of main cycle
          '------------------------------------------------------------------------------
           Read_data:
           Reset Watchdog
           Data_key = Inkey()
           If Data_key = "@" Then Input Rdata Noecho
          
          
           Sep = &H20
           Pozicija = 1
           Znak = Gettoken(rdata , Sep , Pozicija)
          
          
          If Znak = "btsound" Then
             Toggle Soun_d
          
             If Soun_d = 1 Then
              Print "@btsound BTH:0.25"                               'If sound is ON button outline appear
             Else
              Print "@btsound BTH:0"                                  'If sound is OFF button outline disappear
             End If
          
          End If
          
          
          Init = Mid(rdata , 1 , 4)
          If Init = "init" Then                                       'reading "@init" from GUI-O
            Gosub Guio_ini
          End If
          
          
          Rdata = ""
          
          Return
          '-Initialization procedure GUI-O Objects-------------------------------------------------------
          
          Guio_ini:
          
           Print "@sls 500"                                           'start writting objects
           Print "@cls"                                               'clear screen
           Print "@clh"                                               'clear HW components
           'Print "@clo"                                               'clear orientation
           Print "@guis BGC:#000000 ASR:0.449671"                     'bacground color X-Y ratio
           Print "|SORI UID:sori1 HID:sori ORI:2 SEN:0"
           Waitms 250
           Print "|IM UID:imx X:15 Y:50 W:100 H:100 ROT:0 SHE:0 VIS:1 OPA:1 SCM:2 IP:" ; Chr(34) ; "ECG.jpg" ; Chr(34)       'GUI-O Image ECG.jpg copy to smartphone \Phone\Android\data\com.guio.guioapp\files\Pictures\
          
           Print "|TON UID:ton1 HID:ton EDUR:1000 TONT:24"            'GUI-O define ton
          
           Print "|CH UID:ch0 X:65 Y:25 W:72 H:50 BTH:0.1 XTC:10 YTC:8 VIS:1 BSZ:5 DRA:0 BGC:#FFFFFF FGC:#900000 RAD:0 LT:0.15 XMA:5 YMA:8 SHVL:1 VLP:0 CHN:" ; Chr(34) ; "PULSE" ; Chr(34) ; " FFA:" ; Chr(34) ; "font6" ; Chr(34) ; " FSZ:4"
           Print "|CH UID:ch1 X:65 Y:75 W:72 H:50 BTH:0.1 XTC:10 YTC:8 VIS:1 BSZ:200 DRA:0 CHT:2 BMA:0.03 XLO:0 XHI:40000 BGC:#FFFFFF FGC:#900000 RAD:0 LT:0.15 XMA:5 YMA:8 SHVL:1 VLP:0 CHN:" ; Chr(34) ; "ELECTRO CARDIOGRAM" ; Chr(34) ; " FFA:" ; Chr(34) ; "font6" ; Chr(34) ; " FSZ:4"
           'GUI-O graph for pulse and Cardio
          
           Print "|LB UID:lbpulse X:87 Y:35 ALP:1 ROT:0 SHE:1 FGC:#000000 FFA:" ; Chr(34) ; "font6" ; Chr(34) ; " FSZ:16 TXT:" ; Chr(34) ; "---" ; Chr(34)       'Label for number-pulse
           Print "|LB UID:lbpname X:85 Y:23 ALP:1 ROT:0 SHE:1 FGC:#000000 FFA:" ; Chr(34) ; "font8" ; Chr(34) ; " FSZ:4 TXT:" ; Chr(34) ; "PULSE BMP" ; Chr(34)       'Label for name
          
           Print "|LB UID:lbname X:2 Y:92 ALP:1 ROT:0 SHE:1 FGC:#FFFFFF FFA:" ; Chr(34) ; "font7" ; Chr(34) ; " FSZ:10 TXT:" ; Chr(34) ; "ECG" ; Chr(34)       'Label general name
          
          
           Print "|BT UID:btsound X:22 Y:92 W:10 H:10 ROT:0 RAD:1 SHVR:0.8 SHE:1 SHC:#404040 BGC:#808B96 SBGC:#808B96 FGC:#FFFFFF FSZ:6 BTH:0 FFA:" ; Chr(34) ; "font6" ; Chr(34) ; " TXT:" ; Chr(34) ; "Sound" ; Chr(34) ; " SVAL:" ; Chr(34) ; "Stop" ; Chr(34)
           'Button for sound ON/OFF
          
           Print "@ch1 PLI:" ; Chr(34) ; "pl1" ; Chr(34) ; " PLC:" ; Chr(34) ; "#000000" ; Chr(34) ; " YP:" ; Chr(34) ; Cardio ; Chr(34) ; " XP:" ; Chr(34) ; "0" ; Chr(34)
           'write data for cardio
           Print "@hls 250"                                           'end writting objects
          
          Return
          
          
          
          '-Timer_ISR--------------------------------------------------------------------------------
          
           Timer1_isr:
             Timx = Timx + 1
             Timy = Timy + 1
          
          
            Return
          
          '------------------------------------------------------------------------------------------
          
          1 Reply Last reply Reply Quote 0
          • First post
            Last post