Проверка наличия подключения к bluetooth модулю

mu_ssina
Offline
Зарегистрирован: 30.08.2013

Всем доброго!

Вопрос у меня такой друзья: есть ардуино нано и есть bluetooth модуль.

Суть вопроса: необходимо проверять, что к bluetooth модулю произошло подключение. И соответственно, если подключение есть- ручное управление устройством; если подключения нет-автоматическое.

Делаю так:

if (Serial.available()>0)

{

   тут код ручного режима

}

else

{

  тут код автоматического режима

}

 

Вроде бы годится. Но! Вся эта конструкция работает, только если некая инфа пошла в Serial. То есть, она не срабатывает на сам факт наличия подключения, только на передачу какой-либо инфы в Serial.

Вот и думаю, как еще можно сделать?

Люди пишут, что надо пин bluetooth модуля "STATE" -тоже подключить к ардуине и отслеживать его состояние.

Это правда или можно только программно обойтись?

Всем заранее спасибо!

 

mu_ssina
Offline
Зарегистрирован: 30.08.2013

P.S. забыл добавить- у меня не совсем чистый Serial (если это имеет значение). Я создаю еще один с помощью библиотеки SoftwareSerial. 

Чтобы можно было и скетчи лить, не отключая ардуину от компа, и bluetooth параллельно работал.

rkit
Offline
Зарегистрирован: 23.11.2016

Единственный надежный способ это отправлять каждую секунду контрольное сообщение с другой стороны.

mu_ssina
Offline
Зарегистрирован: 30.08.2013

Дело конечно хорошее...но там надо приложение под смартфон менять, что проблемно. Хотелось бы без этого (по возможности).

mu_ssina
Offline
Зарегистрирован: 30.08.2013

Кстати, нашел кажется решение! Пишу для того, если кто то в будущем столкнется: для считывания текущего статуса надо использовать АТ команды. В мануале написано так:

Read the working status of the module
○ Command: AT + GETSTAT
○ The following is the return status of each operating mode
○ 1: Slave transmission mode
 
■ Returns: STS: 0111
 
0: passthrough mode (Operating mode);
1: connected, 0: disconnected (Connection Status);
1: enabled, 0: disabled (The broadcast opens);
1: enabled: 0: disabled (Connect using password).
 
Ну и отлично! Я так и думал, что есть некое программное средство...