Εμφάνιση αποτελεσμάτων : 1 έως 7 από 7

Θέμα: heart rate monitor

  1. #1
    Μέλος
    Όνομα
    Κώστας
    Εγγραφή
    Oct 2015
    Περιοχή
    Τρίκαλα
    Μηνύματα
    108

    Προεπιλογή heart rate monitor

    καλησπερα σας, προσπαθώ να σύνδεσω εδω και λίγο καιρό το ADAFRUIT BLUEFRUIT LE με μία συσκευή polar για να παίρνω μέσω bluetooth τα δεδομένα στο adafruit υπάρχει ένας έτοιμος κώδικας αλλα δεν ξέρω το πρέπει να αλλαξω ακριβως για να συνδεσω το polar.
    Κώδικας:
    /********************************************************************* This is an example for our nRF51822 based Bluefruit LE modules
    
    
     Pick one up today in the adafruit shop!
    
    
     Adafruit invests time and resources providing this open source code,
     please support Adafruit and open-source hardware by purchasing
     products from Adafruit!
    
    
     MIT license, check LICENSE for more information
     All text above, and the splash screen below must be included in
     any redistribution
    *********************************************************************/
    
    
    /*
        Please note the long strings of data sent mean the *RTS* pin is
        required with UART to slow down data sent to the Bluefruit LE!
    */
    
    
    #include <Arduino.h>
    #include <SPI.h>
    #if not defined (_VARIANT_ARDUINO_DUE_X_) && not defined (_VARIANT_ARDUINO_ZERO_)
      #include <SoftwareSerial.h>
    #endif
    
    
    #include "Adafruit_BLE.h"
    #include "Adafruit_BluefruitLE_SPI.h"
    #include "Adafruit_BluefruitLE_UART.h"
    
    
    #include "BluefruitConfig.h"
    
    
    // Create the bluefruit object, either software serial...uncomment these lines
    /*
    SoftwareSerial bluefruitSS = SoftwareSerial(BLUEFRUIT_SWUART_TXD_PIN, BLUEFRUIT_SWUART_RXD_PIN);
    
    
    Adafruit_BluefruitLE_UART ble(bluefruitSS, BLUEFRUIT_UART_MODE_PIN,
                          BLUEFRUIT_UART_CTS_PIN, BLUEFRUIT_UART_RTS_PIN);
    */
    
    
    /* ...or hardware serial, which does not need the RTS/CTS pins. Uncomment this line */
    // Adafruit_BluefruitLE_UART ble(BLUEFRUIT_HWSERIAL_NAME, BLUEFRUIT_UART_MODE_PIN);
    
    
    /* ...hardware SPI, using SCK/MOSI/MISO hardware SPI pins and then user selected CS/IRQ/RST */
    Adafruit_BluefruitLE_SPI ble(BLUEFRUIT_SPI_CS, BLUEFRUIT_SPI_IRQ, BLUEFRUIT_SPI_RST);
    
    
    /* ...software SPI, using SCK/MOSI/MISO user-defined SPI pins and then user selected CS/IRQ/RST */
    //Adafruit_BluefruitLE_SPI ble(BLUEFRUIT_SPI_SCK, BLUEFRUIT_SPI_MISO,
    //                             BLUEFRUIT_SPI_MOSI, BLUEFRUIT_SPI_CS,
    //                             BLUEFRUIT_SPI_IRQ, BLUEFRUIT_SPI_RST);
    
    
    
    
    // A small helper
    void error(const __FlashStringHelper*err) {
      Serial.println(err);
      while (1);
    }
    
    
    /* The service information */
    
    
    int32_t hrmServiceId;
    int32_t hrmMeasureCharId;
    int32_t hrmLocationCharId;
    /**************************************************************************/
    /*!
        @brief  Sets up the HW an the BLE module (this function is called
                automatically on startup)
    */
    /**************************************************************************/
    void setup(void)
    {
      while (!Serial); // required for Flora & Micro
      delay(500);
    
    
      boolean success;
    
    
      Serial.begin(115200);
      Serial.println(F("Adafruit Bluefruit Heart Rate Monitor (HRM) Example"));
      Serial.println(F("---------------------------------------------------"));
    
    
      randomSeed(micros());
    
    
      /* Initialise the module */
      Serial.print(F("Initialising the Bluefruit LE module: "));
    
    
      if ( !ble.begin(VERBOSE_MODE) )
      {
        error(F("Couldn't find Bluefruit, make sure it's in CoMmanD mode & check wiring?"));
      }
      Serial.println( F("OK!") );
    
    
      /* Perform a factory reset to make sure everything is in a known state */
      Serial.println(F("Performing a factory reset: "));
      if (! ble.factoryReset() ){
           error(F("Couldn't factory reset"));
      }
    
    
      /* Disable command echo from Bluefruit */
      ble.echo(false);
    
    
      Serial.println("Requesting Bluefruit info:");
      /* Print Bluefruit information */
      ble.info();
    
    
      // this line is particularly required for Flora, but is a good idea
      // anyways for the super long lines ahead!
      // ble.setInterCharWriteDelay(5); // 5 ms
    
    
      /* Change the device name to make it easier to find */
      Serial.println(F("Setting device name to 'Bluefruit HRM': "));
    
    
      if (! ble.sendCommandCheckOK(F("AT+GAPDEVNAME=Bluefruit HRM")) ) {
        error(F("Could not set device name?"));
      }
    
    
      /* Add the Heart Rate Service definition */
      /* Service ID should be 1 */
      Serial.println(F("Adding the Heart Rate Service definition (UUID = 0x180D): "));
      success = ble.sendCommandWithIntReply( F("AT+GATTADDSERVICE=UUID=0x180D"), &hrmServiceId);
      if (! success) {
        error(F("Could not add HRM service"));
      }
    
    
      /* Add the Heart Rate Measurement characteristic */
      /* Chars ID for Measurement should be 1 */
      Serial.println(F("Adding the Heart Rate Measurement characteristic (UUID = 0x2A37): "));
      success = ble.sendCommandWithIntReply( F("AT+GATTADDCHAR=UUID=0x2A37, PROPERTIES=0x10, MIN_LEN=2, MAX_LEN=3, VALUE=00-40"), &hrmMeasureCharId);
        if (! success) {
        error(F("Could not add HRM characteristic"));
      }
    
    
      /* Add the Body Sensor Location characteristic */
      /* Chars ID for Body should be 2 */
      Serial.println(F("Adding the Body Sensor Location characteristic (UUID = 0x2A38): "));
      success = ble.sendCommandWithIntReply( F("AT+GATTADDCHAR=UUID=0x2A38, PROPERTIES=0x02, MIN_LEN=1, VALUE=3"), &hrmLocationCharId);
        if (! success) {
        error(F("Could not add BSL characteristic"));
      }
    
    
      /* Add the Heart Rate Service to the advertising data (needed for Nordic apps to detect the service) */
      Serial.print(F("Adding Heart Rate Service UUID to the advertising payload: "));
      ble.sendCommandCheckOK( F("AT+GAPSETADVDATA=02-01-06-05-02-0d-18-0a-18") );
    
    
      /* Reset the device for the new service setting changes to take effect */
      Serial.print(F("Performing a SW reset (service changes require a reset): "));
      ble.reset();
    
    
      Serial.println();
    }
    
    
    /** Send randomized heart rate data continuously **/
    void loop(void)
    {
      int heart_rate = random(50, 100);
    
    
      Serial.print(F("Updating HRM value to "));
      Serial.print(heart_rate);
      Serial.println(F(" BPM"));
    
    
      /* Command is sent when \n (\r) or println is called */
      /* AT+GATTCHAR=CharacteristicID,value */
      ble.print( F("AT+GATTCHAR=") );
      ble.print( hrmMeasureCharId );
      ble.print( F(",00-") );
      ble.println(heart_rate, HEX);
    
    
      /* Check if command executed OK */
      if ( !ble.waitForOK() )
      {
        Serial.println(F("Failed to get response!"));
      }
    
    
      /* Delay before next measurement update */
      delay(1000);
    }

    0 Not allowed! Not allowed!

  2. #2
    Μέλος
    Όνομα
    Χρήστος
    Εγγραφή
    Sep 2012
    Περιοχή
    Χολαργός
    Μηνύματα
    1.907

    Προεπιλογή

    Τα παραδείγματα που υπάρχουν για θερμομετρο , Heart rate monitor , step counter κλπ είναι για να στέλνει ο αισθητήρας σε τηλέφωνο , raspberry , υπολογιστή κλπ
    το λέει καθαρα ... Send randomized heart rate data continuously
    Το BLE δηλαδή σε αυτά λειτουργεί σαν device , peripheral και οχι central ( και αυτη ειναι και η συνηθισμένη χρήση του )

    Για να κανεις το modulακι δέκτη πρεπει να υποστηρίζει λειτουργία central , δεν ξέρω αν το υποστηρίζει το συγκεκριμμένο που λές


    EDIT τώρα το βρήκα ... θέλεις πχ κατι σαν το 52832 και οχι 51822 , ( μάλλον να υποστηριζει > = BLE 4.2 )
    Can my Bluefruit LE module connect to other Bluefruit LE peripherals

    No, the Bluefruit LE firmware from Adafruit is currently peripheral only, and doesn't run in Central mode, which would cause the module to behave similar to your mobile phone or BLE enabled laptop.
    If you required Central support, you should look at the newer nRF52832 based products like the Adafruit Feather nRF52 Bluefruit LE, which contains a SoftDevice which is capable of running in either Central or Peripheral mode. The nRF518322 based products (such as the one used in this learning guide) are not capable of running in Central mode because it isn't supported by the SoftDevice they use, and it isn't possible to update the SoftDevice safely without special hardware.

    Θεωρητικα μπορει και το 51822 να γινει μονο central και οχι peripheral , αν καταφέρεις και βάλεις το S120 softdevice μόνος σου
    αλλά υποθέτω αν ήσουν σε αυτο το επίπεδο δεν θα επαιρνες και απο την αρχη module της sparkfun αλλά το αναπτυξιακό της nordic !

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη aktis : 10-05-17 στις 15:23

  3. #3
    Μέλος
    Όνομα
    Κώστας
    Εγγραφή
    Oct 2015
    Περιοχή
    Τρίκαλα
    Μηνύματα
    108

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από aktis Εμφάνιση μηνυμάτων
    Τα παραδείγματα που υπάρχουν για θερμομετρο , Heart rate monitor , step counter κλπ είναι για να στέλνει ο αισθητήρας σε τηλέφωνο , raspberry , υπολογιστή κλπ
    το λέει καθαρα ... Send randomized heart rate data continuously
    Το BLE δηλαδή σε αυτά λειτουργεί σαν device , peripheral και οχι central ( και αυτη ειναι και η συνηθισμένη χρήση του )

    Για να κανεις το modulακι δέκτη πρεπει να υποστηρίζει λειτουργία central , δεν ξέρω αν το υποστηρίζει το συγκεκριμμένο που λές


    EDIT τώρα το βρήκα ... θέλεις πχ κατι σαν το 52832 και οχι 51822 , ( μάλλον να υποστηριζει > = BLE 4.2 )
    Can my Bluefruit LE module connect to other Bluefruit LE peripherals

    No, the Bluefruit LE firmware from Adafruit is currently peripheral only, and doesn't run in Central mode, which would cause the module to behave similar to your mobile phone or BLE enabled laptop.
    If you required Central support, you should look at the newer nRF52832 based products like the Adafruit Feather nRF52 Bluefruit LE, which contains a SoftDevice which is capable of running in either Central or Peripheral mode. The nRF518322 based products (such as the one used in this learning guide) are not capable of running in Central mode because it isn't supported by the SoftDevice they use, and it isn't possible to update the SoftDevice safely without special hardware.
    Capture.jpg αυτο θελω, να παιρνει το adafruit και να καταγραφει τις τιμεσ απο τον παλμογραφο, να κανει δλδ την δουλεια του ρολογιού

    0 Not allowed! Not allowed!

  4. #4
    Μέλος
    Όνομα
    Χρήστος
    Εγγραφή
    Sep 2012
    Περιοχή
    Χολαργός
    Μηνύματα
    1.907


    0 Not allowed! Not allowed!

  5. #5
    Μέλος
    Όνομα
    Κώστας
    Εγγραφή
    Oct 2015
    Περιοχή
    Τρίκαλα
    Μηνύματα
    108

    Προεπιλογή

    https://learn.adafruit.com/adafruit-...artratemonitor υπαρχει και αυτο εδω αλλα δεν εξηγει και πολλα

    0 Not allowed! Not allowed!

  6. #6
    Μέλος
    Όνομα
    Χρήστος
    Εγγραφή
    Sep 2012
    Περιοχή
    Χολαργός
    Μηνύματα
    1.907

    Προεπιλογή

    Τι παραπάνω να πει ; Για το πως λειτουργει το BLE , τι σημαινει GATT , characteristic κλπ ; Αυτά πρέπει να δεις σε ενα tutorial γενικο για BLE
    Ο συγκεκριμένος που ανάφερες παραπάνω εχει γραψει ολοκληρο βιβλίο για το θέμα και καμμια 20ρια tutorial στην adafruit

    https://www.amazon.com/Getting-Start.../dp/1491949511

    το φέρνει και το public ( που συνεργαζεται με το amazon ) στις ανθρωπιστικες επιστήμες !!!!
    http://www.public.gr/product/books/e...y/prod35703mm/


    Το παράδειγμα ειναι αυτο που σου ειπα . Το modulaki στελνει υποτίθεται πληροφορίες με characteristic heartbeat
    τις ακούει το πρόγραμμα app ( nRF toolbox ) στο τηλέφωνο και τις απεικονίζει στην οθόνη

    0 Not allowed! Not allowed!

  7. #7
    Μέλος
    Όνομα
    Κώστας
    Εγγραφή
    Oct 2015
    Περιοχή
    Τρίκαλα
    Μηνύματα
    108

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από aktis Εμφάνιση μηνυμάτων
    Τι παραπάνω να πει ; Για το πως λειτουργει το BLE , τι σημαινει GATT , characteristic κλπ ; Αυτά πρέπει να δεις σε ενα tutorial γενικο για BLE
    Ο συγκεκριμένος που ανάφερες παραπάνω εχει γραψει ολοκληρο βιβλίο για το θέμα και καμμια 20ρια tutorial στην adafruit

    https://www.amazon.com/Getting-Start.../dp/1491949511

    το φέρνει και το public ( που συνεργαζεται με το amazon ) στις ανθρωπιστικες επιστήμες !!!!
    http://www.public.gr/product/books/e...y/prod35703mm/


    Το παράδειγμα ειναι αυτο που σου ειπα . Το modulaki στελνει υποτίθεται πληροφορίες με characteristic heartbeat
    τις ακούει το πρόγραμμα app ( nRF toolbox ) στο τηλέφωνο και τις απεικονίζει στην οθόνη
    Ευχαριστω πολύ θα τα κοιταξω

    Στάλθηκε από το LG-H815 μου χρησιμοποιώντας Tapatalk

    0 Not allowed! Not allowed!

Παρόμοια Θέματα

  1. SCR - Gate Current Slew Rate
    By diamadiss in forum Εξαρτήματα & Datasheets
    Απαντήσεις: 1
    Τελευταίο Μήνυμα: 20-07-16, 08:00
  2. Αλλαγή του sweep rate σε ψηφιακό ραδιόφωνο ?
    By RatherBeMe in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 02-09-14, 19:14
  3. αύξηση στο refresh rate
    By soulhealer in forum Software Η/Υ
    Απαντήσεις: 22
    Τελευταίο Μήνυμα: 20-04-10, 20:08
  4. baud rate rs232
    By pvol in forum Κυκλώματα για Η/Υ
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 28-02-10, 19:33
  5. Πρόβλημα refresh rate στο multiplexing
    By acmilangr in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 14
    Τελευταίο Μήνυμα: 23-12-09, 21:01

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας