Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. Bluetooth Proximity Sensor

Bluetooth Proximity Sensor

Scheduled Pinned Locked Moved Development
bluetoothpresence
33 Posts 9 Posters 32.0k Views 7 Watching
  • 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.
  • K Offline
    K Offline
    Konrad Walsh
    wrote on last edited by
    #6

    @hek
    Did you get anywhere with this? I am trying in vain.. the issue I see is that the BT module and the RF module are both serial outputs/inputs..
    struggling to get off the ground on this

    1 Reply Last reply
    0
    • hekH Offline
      hekH Offline
      hek
      Admin
      wrote on last edited by hek
      #7

      I accidentally feed the first module with reversed polarity. It did not like that very much. :(

      The second module arrived this week, but I haven't hooked it up yet. Planned on using software serial and had a test sketch going something like this:

      /* $Id$
      
      Serial terminal for the HC-05 bluetooth module.
      Sets up BT module and allow user interaction with the device via the Arduino Serial Monitor.
      
      Wiring of BT HC-05 device to the Arduino
      RX -> 11
      TX -> 10
      KEY -> 9
      */
      
      #include <SoftwareSerial.h>
      
      // Bluetooth to Arduino pins.
      #define BTkey 9
      #define BTrxPin 10
      #define BTtxPin 11
      
      enum { SYNC, ASYNC };
      
      SoftwareSerial BTSerial(BTrxPin, BTtxPin);
      
      // Send a command to the bluetooth device.
      // mode ASYNC - don't want for the response
      // mode SYNC - wait for the response
      void sendBluetoothCommand(String cmd, uint8_t mode) {
        Serial.print(mode == SYNC ? "SYNC> " : "ASYNC> ");
        Serial.println(cmd);
      
        BTSerial.println(cmd);
        if (mode == ASYNC) return;
        
        char ch = 0;
        while (ch != '\n') {
          if (BTSerial.available()) {
            ch = BTSerial.read();
             Serial.write(ch);
          }
        }
      }
      
      void setup()
      {
         Serial.begin(57600);
         
        /////////////////////////////////////////////////////////
        // SETUP BLUETOOTH  
        // define pin modes for tx, rx:
        pinMode(BTrxPin, INPUT);
        pinMode(BTtxPin, OUTPUT);
        // Switch module to AT mode
        pinMode(BTkey, OUTPUT);
        digitalWrite(BTkey, HIGH);  
        BTSerial.begin(38400);
        sendBluetoothCommand("AT", SYNC);
        sendBluetoothCommand("AT+NAME=blueNode", SYNC);
        // AT+ROLE=p1
        // p1 - 0 Slave Role, 1 Master Role, 2 Slave-Loop role.
        sendBluetoothCommand("AT+ROLE=1", SYNC);
        // AT+INQM=p1,p2,p3
        // p1 - 0 inquire_mode_standad, 1 inquire_mode_rssi
        // p2 - maximum number of bluetooth devices response
        // p3 - the maximum of limited inquiring time. 1~48 (1.28s ~ 61.44s)
        //      15*1.28 = 19sec 
        sendBluetoothCommand("AT+INQM=0,5,15", SYNC);
      }
      
      void loop()
      {
        // Keep reading from HC-05 and send to Arduino Serial Monitor
        if (BTSerial.available())
          Serial.write(BTSerial.read());
      
        // Keep reading from Arduino Serial Monitor and send to HC-05
        if (Serial.available())
          BTSerial.write(Serial.read());
      }
      

      And.. the first module was of the wrong type (I think). Must support master-mode if I understand it correctly. The second one I bought was this type.

      P 1 Reply Last reply
      0
      • K Offline
        K Offline
        Konrad Walsh
        wrote on last edited by
        #8

        @hek
        Thanks - Sorry to hear you killed it.. Its why I alway buy two of everything.. one to kill/learn and one to use :)

        I have the HC-06
        I noticed you are using the KEY connection... I didn't connect that at all... I will give your code a whirl

        1 Reply Last reply
        0
        • hekH Offline
          hekH Offline
          hek
          Admin
          wrote on last edited by
          #9

          I think KEY must be used to access the AT-commands.

          1 Reply Last reply
          0
          • K Offline
            K Offline
            Konrad Walsh
            wrote on last edited by
            #10

            ah. that would explain why I cant get the module to return is device info

            1 Reply Last reply
            0
            • N Offline
              N Offline
              NotYetRated
              wrote on last edited by
              #11

              I think something similar can be achieved with Tasker(android) and wifi.

              Tasker detects when it connects to your home network, initiates command telling Vera "Honey, I'm Home!". My home WiFi is much more robust/extensive than any blutooth connection radius would be.

              Thoughts?

              hekH K 2 Replies Last reply
              0
              • N NotYetRated

                I think something similar can be achieved with Tasker(android) and wifi.

                Tasker detects when it connects to your home network, initiates command telling Vera "Honey, I'm Home!". My home WiFi is much more robust/extensive than any blutooth connection radius would be.

                Thoughts?

                hekH Offline
                hekH Offline
                hek
                Admin
                wrote on last edited by
                #12

                @NotYetRated

                Probably easier but not as fun :)

                N 1 Reply Last reply
                0
                • hekH hek

                  @NotYetRated

                  Probably easier but not as fun :)

                  N Offline
                  N Offline
                  NotYetRated
                  wrote on last edited by
                  #13

                  @hek haha ohh no denying that :)

                  The blutooth sensor could definitely come in useful for any number of situations, so it would definitely be good to have! I just think, specifically for "getting home" detection, WiFi may be more robust. Then again, so long as this sensor is placed at entrance to the driveway, or in the garage, distance should be a non-issue. :)

                  1 Reply Last reply
                  0
                  • Z Offline
                    Z Offline
                    Zeph
                    Hero Member
                    wrote on last edited by
                    #14

                    The main advantage of BlueTooth would be its shorter range - if you have multiple of them and wanted to detect roughly where the phone was - especially if the modules had RSSI.

                    N 1 Reply Last reply
                    0
                    • Z Zeph

                      The main advantage of BlueTooth would be its shorter range - if you have multiple of them and wanted to detect roughly where the phone was - especially if the modules had RSSI.

                      N Offline
                      N Offline
                      NotYetRated
                      wrote on last edited by
                      #15

                      @Zeph Ahh, shorter range as a benefit, guess I had not considered it like that!

                      1 Reply Last reply
                      0
                      • N NotYetRated

                        I think something similar can be achieved with Tasker(android) and wifi.

                        Tasker detects when it connects to your home network, initiates command telling Vera "Honey, I'm Home!". My home WiFi is much more robust/extensive than any blutooth connection radius would be.

                        Thoughts?

                        K Offline
                        K Offline
                        Konrad Walsh
                        wrote on last edited by Konrad Walsh
                        #16

                        @NotYetRated On one side I agree as this is what I have done for the passed few years
                        The problem is, this is unreliable..
                        but this along with that will make a more robust system..

                        See imagine.. I have one at each door...

                        I know when I am in the sitting vs the kitchen vs the bedroom..

                        now my squeezelite music system follows me.. the lights follow me... and more..- EG - click vol up on my phone adjusts the volume in that room alone....

                        1 Reply Last reply
                        0
                        • K Offline
                          K Offline
                          Konrad Walsh
                          wrote on last edited by Konrad Walsh
                          #17

                          @hek
                          I have to wait for you to figure this one out... I have tried many methods but not making progress at all...

                          Your code does work by the way.. It sends and receives the data without issue.. but getting it all repackaged for a MySensors plugin isn't happening for me..

                          I have taken the binary switch recipe and I am using that so that it will turn on on/off based on the BT id it sees ..

                          I might start a fresh tonight.. Ill post any updates if I make progress on it..

                          1 Reply Last reply
                          0
                          • hekH Offline
                            hekH Offline
                            hek
                            Admin
                            wrote on last edited by
                            #18

                            I was thinking of just emulating a door-sensor. When BT detects someone in proximity it sends 1 and 0 when no-one is in range. Just like the binary switch you proposed..

                            If you want to send in which device in range you could use VAR1-5 with the BT device identifier as payload (at some interval).

                            1 Reply Last reply
                            0
                            • K Offline
                              K Offline
                              Konrad Walsh
                              wrote on last edited by
                              #19

                              I have given up.. I cant get anywhere with this but I think its cause I bought hc-06.. Are you closer?

                              P 1 Reply Last reply
                              0
                              • hekH Offline
                                hekH Offline
                                hek
                                Admin
                                wrote on last edited by
                                #20

                                Last time I tested with the new HC-05 I couldn't get it to enter AT mode. Will probably make another test when I have some time.

                                1 Reply Last reply
                                0
                                • K Offline
                                  K Offline
                                  Konrad Walsh
                                  wrote on last edited by
                                  #21

                                  ok.. mine enters AT mode.. and I can get it to send and receive data.. I may as well keep plugging at it so

                                  1 Reply Last reply
                                  0
                                  • K Konrad Walsh

                                    I have given up.. I cant get anywhere with this but I think its cause I bought hc-06.. Are you closer?

                                    P Offline
                                    P Offline
                                    PedroC88
                                    wrote on last edited by
                                    #22

                                    @Konrad-Walsh For what I know, the HC-06 is automatically configured to take in AT commands, so that shouldn't be a problem, although mine (that I got today) seems to be defective as I send it the AT command, but I'm getting no answer.

                                    1 Reply Last reply
                                    0
                                    • hekH hek

                                      I accidentally feed the first module with reversed polarity. It did not like that very much. :(

                                      The second module arrived this week, but I haven't hooked it up yet. Planned on using software serial and had a test sketch going something like this:

                                      /* $Id$
                                      
                                      Serial terminal for the HC-05 bluetooth module.
                                      Sets up BT module and allow user interaction with the device via the Arduino Serial Monitor.
                                      
                                      Wiring of BT HC-05 device to the Arduino
                                      RX -> 11
                                      TX -> 10
                                      KEY -> 9
                                      */
                                      
                                      #include <SoftwareSerial.h>
                                      
                                      // Bluetooth to Arduino pins.
                                      #define BTkey 9
                                      #define BTrxPin 10
                                      #define BTtxPin 11
                                      
                                      enum { SYNC, ASYNC };
                                      
                                      SoftwareSerial BTSerial(BTrxPin, BTtxPin);
                                      
                                      // Send a command to the bluetooth device.
                                      // mode ASYNC - don't want for the response
                                      // mode SYNC - wait for the response
                                      void sendBluetoothCommand(String cmd, uint8_t mode) {
                                        Serial.print(mode == SYNC ? "SYNC> " : "ASYNC> ");
                                        Serial.println(cmd);
                                      
                                        BTSerial.println(cmd);
                                        if (mode == ASYNC) return;
                                        
                                        char ch = 0;
                                        while (ch != '\n') {
                                          if (BTSerial.available()) {
                                            ch = BTSerial.read();
                                             Serial.write(ch);
                                          }
                                        }
                                      }
                                      
                                      void setup()
                                      {
                                         Serial.begin(57600);
                                         
                                        /////////////////////////////////////////////////////////
                                        // SETUP BLUETOOTH  
                                        // define pin modes for tx, rx:
                                        pinMode(BTrxPin, INPUT);
                                        pinMode(BTtxPin, OUTPUT);
                                        // Switch module to AT mode
                                        pinMode(BTkey, OUTPUT);
                                        digitalWrite(BTkey, HIGH);  
                                        BTSerial.begin(38400);
                                        sendBluetoothCommand("AT", SYNC);
                                        sendBluetoothCommand("AT+NAME=blueNode", SYNC);
                                        // AT+ROLE=p1
                                        // p1 - 0 Slave Role, 1 Master Role, 2 Slave-Loop role.
                                        sendBluetoothCommand("AT+ROLE=1", SYNC);
                                        // AT+INQM=p1,p2,p3
                                        // p1 - 0 inquire_mode_standad, 1 inquire_mode_rssi
                                        // p2 - maximum number of bluetooth devices response
                                        // p3 - the maximum of limited inquiring time. 1~48 (1.28s ~ 61.44s)
                                        //      15*1.28 = 19sec 
                                        sendBluetoothCommand("AT+INQM=0,5,15", SYNC);
                                      }
                                      
                                      void loop()
                                      {
                                        // Keep reading from HC-05 and send to Arduino Serial Monitor
                                        if (BTSerial.available())
                                          Serial.write(BTSerial.read());
                                      
                                        // Keep reading from Arduino Serial Monitor and send to HC-05
                                        if (Serial.available())
                                          BTSerial.write(Serial.read());
                                      }
                                      

                                      And.. the first module was of the wrong type (I think). Must support master-mode if I understand it correctly. The second one I bought was this type.

                                      P Offline
                                      P Offline
                                      PedroC88
                                      wrote on last edited by
                                      #23

                                      @hek When you say you inverted the polarity... are you talking about VCC and GRD? or Rx and TX?

                                      hekH 1 Reply Last reply
                                      0
                                      • P PedroC88

                                        @hek When you say you inverted the polarity... are you talking about VCC and GRD? or Rx and TX?

                                        hekH Offline
                                        hekH Offline
                                        hek
                                        Admin
                                        wrote on last edited by
                                        #24

                                        @PedroC88

                                        vcc/gnd

                                        1 Reply Last reply
                                        0
                                        • K Offline
                                          K Offline
                                          Konrad Walsh
                                          wrote on last edited by
                                          #25

                                          i am "semi" abandoned it.. I couldn't get it work at all...

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          14

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular