Проблемы отправки команды из Arduino nano на блютус модуль HM10

vetrovweb
Offline
Зарегистрирован: 29.05.2020

Здравствуйте. Подскажите где искать и что почитать, а не могу понять почему не отправляет команды с арудино нано на блютуз модуль. Пробовал на аппаратном сериале (Arduino mega) все корректно работает и приём и отправка команд. Хотя пробовал подключать модуль к аппаратным пинам ардуино нано и модуля HM10 (естественно без участия компьютера).

Пример кода.

#include <SoftwareSerial.h>  
SoftwareSerial SIM(8, 9);       // Указывая выводы RX, TX (любые выводы).

//#define SIM      Serial2

void setup() {
  Serial.begin(9600);
  SIM.begin(9600);
  // put your setup code here, to run once:
  Serial.println("Start\n");
  SIM.print("AT\r\n");
  Serial.print("AT\r\n");
  delay(1000);
  SIM.print("AT+PIN111111\r\n");
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(10);

  if (SIM.available() > 0) {
    Serial.write(SIM.read());
  }
  if (Serial.available()) {
    SIM.write(Serial.read());
  }

}

Такое ощущение, что как-то некорректно отрабатывает реализацию сериала программный код. Один раз на какой-то ардуинке нано (есть три штуки) проскочил корректный результат, но потом повторить результат не вышло. Перепрошивал ардуинку на новую прошивку. Версия IDE 1.8.12.

sadman41
Offline
Зарегистрирован: 19.10.2016

Схему подключения рисуйте.

Komandir
Komandir аватар
Offline
Зарегистрирован: 18.08.2018

Вот тут ваша проблема описана - http://arduino.ru/forum/apparatnye-voprosy/monitor-porta

Обострение сегодня видимо ...

vetrovweb
Offline
Зарегистрирован: 29.05.2020

Как-то так. Вроде верно перерисовал. Питание от USB

vetrovweb
Offline
Зарегистрирован: 29.05.2020

Перечитывал. Проблема неправильного подключения. У меня же, подключено правильно. Сообщения от модуля HM10 приходять (пробовал включать светодиод), но не хочет отправлять.

sadman41
Offline
Зарегистрирован: 19.10.2016

У меня на модуле HM-10 уже стоит преобразователь уровней, например. Если на вашем тоже, то дополнительный делитель наверное способен уронить TTL-level ниже нижнего. 

vetrovweb
Offline
Зарегистрирован: 29.05.2020

Делителя нет, на модуле пишет 3,3V.

Было меня такое предчувствие что может недостаточное напряжение, но на mega работает и напряжение примерно такое же. Хотя я перепроверю.

sadman41
Offline
Зарегистрирован: 19.10.2016

Как нет? На рисунке с фритцинга есть. И ХМ с преобразователями.

На скорости 9600 с софтсериалом проблем практически нет. А вот RX и TX местами можно спутать.

Берите мегу, проверяйте на железном порту, потом ей же - на софтсериальном. И только после этого уже на нану. Только на ней тупо 3.3в может не быть в достаточном объеме.

vetrovweb
Offline
Зарегистрирован: 29.05.2020

Вы же писали об преобразователе на самом модуле... "У меня на модуле HM-10 уже стоит преобразователь уровней". Я в ответ написал, что модуль принимает 3,3V поэтому есть делитель на резисторах отдельно.

... А вот RX и TX местами можно спутать - перепроверял несколько раз.

vetrovweb
Offline
Зарегистрирован: 29.05.2020

sadman41 пишет:
Как нет? На рисунке с фритцинга есть. И ХМ с преобразователями. На скорости 9600 с софтсериалом проблем практически нет. А вот RX и TX местами можно спутать. Берите мегу, проверяйте на железном порту, потом ей же - на софтсериальном. И только после этого уже на нану. Только на ней тупо 3.3в может не быть в достаточном объеме.

Я же писал, что пробовал на аппаратном сериале (Arduino mega) все корректно работает. Скорей всего что Вы правы насчет напряжения. Проверю.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Я не просто так написал алгоритм поиска проблемы:
1) Mega HardwareSerial
2) Mega SoftwareSerial
3) Nano SoftwareSerial

Если на (2) перестанет работать - значит RX/TX местами перепутали скорее всего. Если на (3) - то в питании искать грабли.

vetrovweb
Offline
Зарегистрирован: 29.05.2020

Я понял. Спасибо. Я написал что проверю. И потом напишу свои результаты. Если надо будем дальше разбирать. Пока ждем тестов.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

sadman41: Неужто Вам не обидно? Этот человек обос-ал, всех, кто ему пытались помочь, завел новый аккаунт и опять задает те же вопросы. Он и Вас в итоге обос-ет. Это уже клиника...

sadman41
Offline
Зарегистрирован: 19.10.2016

Если тот же самый, то неприятно, конечно.
Буду надеяться, что другой.

vetrovweb
Offline
Зарегистрирован: 29.05.2020

sadman41 пишет:

Я не просто так написал алгоритм поиска проблемы:
1) Mega HardwareSerial
2) Mega SoftwareSerial
3) Nano SoftwareSerial

Если на (2) перестанет работать - значит RX/TX местами перепутали скорее всего. Если на (3) - то в питании искать грабли.

1) Мега Hardware - работает

2) Мега Software - работает

3) Nano Software - не работает.

Поменял один резистор на делителе и теперь делитель выдает 2,8V на вывод RX модуля (на меге это значение равно ~2,2V). Не помогло.

 

Подскажите, пожалуйста, что еще может быть. Напряжение в роде как норм. Можете еще ток измерить... 

sadman41
Offline
Зарегистрирован: 19.10.2016

Если питание свистка на нане от 5в, то не вижу более причин отказа.

Я же тоже на нане свой гонял постоянно - ничего странного не заметил.

Можете фото собранного ещё запостить - кто-нить опытным глазом зыркнет.

vetrovweb
Offline
Зарегистрирован: 29.05.2020

sadman41 пишет:
Если питание свистка на нане от 5в, то не вижу более причин отказа. Я же тоже на нане свой гонял постоянно - ничего странного не заметил. Можете фото собранного ещё запостить - кто-нить опытным глазом зыркнет.

Добавил отдельное питание, на всякий случай. Ничего не дало.

Что-то типа этого... Если понятно.

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Вспомнил, что у модуля сложные отношения с \r\n. Странно, что на меге работало.

Код. 

#include <SoftwareSerial.h>
SoftwareSerial HM10(8, 9);

void setup() {
  Serial.begin(9600);
  HM10.begin(9600);
  Serial.println("Start\n");
  HM10.print("AT");
  Serial.println("AT");
}

void loop() {
  if (HM10.available() > 0) {
    Serial.write(HM10.read());
  }
}

Результат:

Start

AT
OK

 

Модуль: https://aliexpress.ru/item/1911392203.html

vetrovweb
Offline
Зарегистрирован: 29.05.2020

Без \r\n команда в принципе не принимает модуль. Проверил и на Меге, и с помощью программы HMComAssistant.

А что значить "сложные отношения с \r\n". Есть где почитать про это...

 

Мой модуль:

 

Очень вероятно что прошивка старая. Скиньте свою версию, если можно. Спасибо.

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну вот у меня с \r\n не принимал ничего сразу же. Я долго пытался понять - живой он или нет, в принципе.
Версия прошивки... Что-то я не помню, как её проверить. Командой какой-то типа ATI?

vetrovweb
Offline
Зарегистрирован: 29.05.2020

sadman41 пишет:
Ну вот у меня с \r\n не принимал ничего сразу же. Я долго пытался понять - живой он или нет, в принципе. Версия прошивки... Что-то я не помню, как её проверить. Командой какой-то типа ATI?

 

 AT+VERR?  или без знака вопроса -  AT+VERR, а может AT+VERSION (вроде для новой прошивки). Если не получится введите AT+HELP?\r\n - покажет весь список доступных команд на Вашем модуле.

sadman41
Offline
Зарегистрирован: 19.10.2016

Поможет это или нет - не знаю, но:

--------------------

AT+HELP?
www.jnhuamao.cn
 
AT+VERR?
HMSoft V543

--------------------

https://people.ece.cornell.edu/land/courses/ece4760/PIC32/uart/HM10/DSD%20TECH%20HM-10%20datasheet.pdf

8 AT Commands Factory default setting:

Name: HMSoft; Baud: 9600, N, 8, 1; Pin code: 000000; Peripheral Role; transmit mode.

AT Command format: Uppercase AT command format. string format, without any other symbol. (e.g. \r or \n).

------------

vetrovweb
Offline
Зарегистрирован: 29.05.2020

sadman41 пишет:

Поможет это или нет - не знаю, но:

--------------------

AT+HELP?
www.jnhuamao.cn
 
AT+VERR?
HMSoft V543

--------------------

https://people.ece.cornell.edu/land/courses/ece4760/PIC32/uart/HM10/DSD%20TECH%20HM-10%20datasheet.pdf

8 AT Commands Factory default setting:

Name: HMSoft; Baud: 9600, N, 8, 1; Pin code: 000000; Peripheral Role; transmit mode.

AT Command format: Uppercase AT command format. string format, without any other symbol. (e.g. \r or \n).

------------

Знаю. Уже перечитывал. Только нужно определить какая версия. Где-то нужно прописывать \r\n...

8. AT Commands 
 Factory default setting: 
  V5xx: Name: HMSoft; Baud: 9600, N, 8, 1; AT+NOTI0; Peripheral Role; transmit mode. 
  V6xx: Name: HMSoft; Baud: 9600, N, 8, 1; AT+NOTI1; Peripheral Role; Remote-Control mode. 
  V7xx: Name: HMSoft; Baud: 115200, N, 8, 1; AT+NOTI1; Peripheral Role; Remote-Control mode. 
-------------
 
У меня версия модуля - MLT-BT05-V4.4 (старье еще то, но покупал две недели назад ...)
 
Мой список команд:
*******************************************************************
* Command             Description            
*----------------------------------------------------------------
* AT                  Check if the command terminal work normally 
* AT+DEFAULT          Restore factory default    
* AT+BAUD             Get/Set baud rate            
* AT+RESET            Software reboot    
* AT+ROLE             Get/Set current role.                    
* AT+DISC             Disconnect connection                       
* AT+ADVEN            Broadcast switch             
* AT+ADVI             Broadcast interval            
* AT+NINTERVAL        Connection interval                         
* AT+POWE             Get/Set RF transmit power    
* AT+NAME             Get/Set local device name                   
* AT+LADDR            Get local bluetooth address    
* AT+VERSION          Get firmware, bluetooth, HCI and LMP version
* AT+TYPE             Binding and pairing settings    
* AT+PIN              Get/Set pin code for pairing                
* AT+UUID             Get/Set system SERVER_UUID .               
* AT+CHAR             Get/Set system CHAR_UUID .               
* AT+INQ              Search from device            
* AT+RSLV             Read the scan list MAC address    
* AT+CONN             Connected scan list device    
* AT+CONA             Connection specified MAC            
* AT+BAND             Binding from device            
* AT+CLRBAND          Cancel binding               
* AT+GETDCN           Number of scanned list devices    
* AT+SLEEP            Sleep mode                    
* AT+HELP             List all the commands            
* --------------------------------------------------------------- 
******************************************************************

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Тут я не копенгаген. Новыми прошивками не шился, того, что мне нужно там все равно нет. А со старой у меня все работает на Nano без делителей. Так что больше ничем не помогу. Разве что советом - присесть на ногу HM10 осциллографом и убедится, что проблема не в контакте и данные в него приходят.

Хуамаософт ещё писал что-то про фейковые HM-10...

vetrovweb
Offline
Зарегистрирован: 29.05.2020

sadman41 пишет:
Тут я не копенгаген. Новыми прошивками не шился, того, что мне нужно там все равно нет. А со старой у меня все работает на Nano без делителей. Так что больше ничем не помогу. Разве что советом - присесть на ногу HM10 осциллографом и убедится, что проблема не в контакте и данные в него приходят. Хуамаософт ещё писал что-то про фейковые HM-10...

 

Нашел в ссылку "Как прошить HM10" буду пробовать. Потом расскажу, может кому пригодится.

vetrovweb
Offline
Зарегистрирован: 29.05.2020

Обновил версию прошивки до HMSoft V540. Хотя "подружить" с ардуино нано у меня не получилось. В чем проблема я так и не понял, но точно в ардуино нано...

P.S. Вообщем отправка данных с ардуино нано происходит "очень криво" или у меня такие ардуинки (три штуки ...). Надо покупать оригинал.

slider
Offline
Зарегистрирован: 17.06.2014
если отвечает 
на  AT+HELP?
www.jnhuamao.cn
 то это  HMsoft 
 
AT+VERR?
HMSoft V543
 
у версий около v540 , проблемы с \r\n. , для старых скетчей хорошо (а может быть они вообще под команды MLT-BT05 заточены). Или в скетч внедряйте \r\n.  
  Если скетч с \r\n ( возможно для свежих прошивок модулей) , перешивайте модуль под последние прошивки , через uart , запустив команду командой AT+SBLUP , и оригинальную прошивку с  http://www.jnhuamao.cn/ 
 
 
// При общении напрямую с компом (через переходник ch340 тот что с 2мя стеклянными диодиками , там как раз падение на питание ch340 , поэтому можно подключать напрямую к rx tx )   в мониторе порта Arduino IDE , для прошивок около V540 , надо обязательно выставлять "Не найден конец строки" . Соответственно и скетчи старые будут работать. 
  Перешивать оригинальные модули в 540 через CCloader не обязательно , это только для "подделок" , они отвечают на AT+HELP длинным списком   , и могут не иметь второго кварца . 
 Эти "подделки" (точнее имеющие прошивку MLT-BT05 от другого производителя  , не HMSoft ) , чтоб их сделать в HMSoft , надо сначала перешить на v540 , именно эта прошивка доработана под прошивальщик CCLoader по DEBUG_CLOCK    DEBUG_DATA    RESET_N   , иногда шьется только со второго запуска CCLoader .  Потом командой AT+SBLUP перевести в режим программирования через uart  ( не забывая в мониторе порта Arduino IDE , надо обязательно выставлять "Не найден конец строки"  ). Далее запустить уже оригинальный прошивальщик HMsoft (он лежит в архиве в месте с прошивкой ) с сайта http://www.jnhuamao.cn/ . Так можно прошить на свежие прошивки . 
// и желательно перед прошивкой сбросить настройки AT+RENEW
 
 

vetrovweb пишет:

1) Мега Hardware - работает

2) Мега Software - работает

3) Nano Software - не работает. 

Странно , у меня наоборот были пункты 2 и 3 , потому как у Меги проблема с принимаемыми данными по  Software , у нее прерывания аппаратные только для определенных пинов , и для этого существует альтернативная  Software , и у нее тож не всё так сладко , есть ограничения на uart.

// AT+MODE1 позволяет работать AT командам (к примеру с пинами модуля HM10 поуправлять)  когда подключение по блютузу установлено . Но это только со стороны подключившегося , и AT команды только заглавными буквами .   Прописные буквы можно использовать, на последних прошивках , при настройке модуля через uart , до установки соединения.

b707
Offline
Зарегистрирован: 26.05.2017

vetrovweb пишет:

отправка данных с ардуино нано происходит "очень криво" или у меня такие ардуинки (три штуки ...). Надо покупать оригинал.

выложите ссылку на лот на Али, где покупали Нано

vetrovweb
Offline
Зарегистрирован: 29.05.2020

b707 пишет:

vetrovweb пишет:

отправка данных с ардуино нано происходит "очень криво" или у меня такие ардуинки (три штуки ...). Надо покупать оригинал.

выложите ссылку на лот на Али, где покупали Нано

 

Не Али... Один покупал на сайте voron.ua и еще одну платку мне кто-то подарил.