[SOLVED]Klon HM-10 nie odpowiada

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
Awatar użytkownika
GarryMoveOut
Młodszy majsterkowicz
Posty: 32
Rejestracja: 22 lut 2015, 14:22

[SOLVED]Klon HM-10 nie odpowiada

Post autor: GarryMoveOut » 6 sty 2020, 23:28

Chciałem za pomocą BLE przesyłać temperaturę itp do Raspberrypi. Zakupiłem moduł BLE do Arduino (aliexpress.com/item/32820135156.html?spm=a2g0s.9042311.0.0.332d4c4dYpfmL2 wersja z pinami). Połączyłem Arduino z modułem za pomocą level converter.
Arduino pin 2 -> HV1 -> LV1 -> HM-10 TX
Arduino pin 3 -> HV2 -> LV2 -> HM-10 RX
Arduino 5v -> HM-10 VCC
Arduino GND -> HM-10 GND
Wzorując się na https://medium.com/@yostane/using-the-a ... c7d5cb0ac2 wgrałem kod:

Kod: Zaznacz cały

#include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 2); // RX, TX

void setup() {
  // put your setup code here, to run once:
  mySerial.begin(9600);
  Serial.begin(9600);

  sendCommand("AT");
  sendCommand("AT+ROLE0");
  sendCommand("AT+UUID0xFFE0");
  sendCommand("AT+CHAR0xFFE1");
  sendCommand("AT+NAMEbluino");
   sendCommand("AT+HELP\n\r");
}

void sendCommand(const char * command){
  Serial.print("Command send :");
  Serial.println(command);
  mySerial.print(command);
  //wait some time
  delay(100);
  
  char reply[100];
  int i = 0;
  while (mySerial.available()) {
    reply[i] = mySerial.read();
    i += 1;
  }
  //end the string
  reply[i] = '\0';
  Serial.print(reply);
  Serial.println("Reply end");
}

void loop() {

}
Po podłączeniu i uruchomieniu moduł mruga diodą. Ale po wysłaniu komend nic nie odpowiada.
Command send :AT
Reply end
Command send :AT+ROLE0
Reply end
Command send :AT+UUID0xFFE0
Reply end
Command send :AT+CHAR0xFFE1
Reply end
Command send :AT+NAMEbluino
Reply end
Command send :AT+HELP


Reply end
Próbowałem dodawać \r\n do komend i nie pomogło. Za pomocą aplikacji Serial Bluetooth skanowałem urządzenia BLE i wykryło urządzenie BT05. Po podłączeniu dioda nie mruga tylko stale świeci ale po wysłaniu tekstu nic nie dostaje z powrotem. Nie wiem jak uruchomić ten moduł do działania. Czy mój moduł nadaje się tylko do kosza? Jeśli tak prosiłbym o wskazanie jakiegoś taniego modułu BLE do Arduino którego mógłbym użyć.
Ostatnio zmieniony 10 sty 2020, 21:24 przez GarryMoveOut, łącznie zmieniany 1 raz.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
Marhef
Złota rączka
Posty: 1222
Rejestracja: 18 lis 2011, 02:18

Re: Klon HM-10 nie odpowiada

Post autor: Marhef » 7 sty 2020, 09:10

A spróbuj wgrać sketch, który jest pod podanym przez Ciebie linkiem. Może zadziała
Awatar użytkownika
GarryMoveOut
Młodszy majsterkowicz
Posty: 32
Rejestracja: 22 lut 2015, 14:22

Re: Klon HM-10 nie odpowiada

Post autor: GarryMoveOut » 7 sty 2020, 09:43

Próbowałem kilku z nich. Niestety nic. Na tym poradniku Arduino jest podłączone bezpośrednio do modułu co jest trochę dziwne bo komunikacja oznaczona jest na 3.3V. Sprobowałem tak na krótko i też bez odpowiedzi.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1222
Rejestracja: 18 lis 2011, 02:18

Re: Klon HM-10 nie odpowiada

Post autor: Marhef » 7 sty 2020, 12:27

Zamień sygnał Rx z sygnałem Tx.
UART jest taką dziwną transmisją, że musisz połączyć Rx arduino z Tx modułu. I analogicznie w drugą stronę.

Jaki masz konwerter poziomów logicznych?
Awatar użytkownika
GarryMoveOut
Młodszy majsterkowicz
Posty: 32
Rejestracja: 22 lut 2015, 14:22

Re: Klon HM-10 nie odpowiada

Post autor: GarryMoveOut » 7 sty 2020, 19:35

Zamieniłem i dalej tak samo. Nic nie odpowiada. Konwerter mam taki
https://a.aliexpress.com/YWi2C2oaf
Awatar użytkownika
Marhef
Złota rączka
Posty: 1222
Rejestracja: 18 lis 2011, 02:18

Re: Klon HM-10 nie odpowiada

Post autor: Marhef » 8 sty 2020, 09:28

A spróbuj połączyć sygnały HM-10 Tx i HM-10 Rx (tylko odłącz moduł) i zobacz, czy odbierzesz to samo, co wysyłasz.
Bo może to konwerter jest zepsuty.

A jeszcze jedno, co podłączasz pod pin EN?
Awatar użytkownika
GarryMoveOut
Młodszy majsterkowicz
Posty: 32
Rejestracja: 22 lut 2015, 14:22

Re: Klon HM-10 nie odpowiada

Post autor: GarryMoveOut » 8 sty 2020, 11:00

Sprawdzałem napięcia za i przed konwerterem, napięcia wyglądały ok. Świetny pomysł z tą pętlą! Zobaczę jeszcze zamiast konwertera spróbuje z dzielnikiem napięcia.
Do EN nic nie podłączam, nawet nie mogę znaleźć informacji od czego jest ten PIN.

Bo ten moduł składa się z dwóch płytek, płytka przylutowana na płytce. Czy jakbym przyłożył kabelki z RX i TX do tej wewnętrznej małej płytki w odpowiednie rowki to mógłbym sprawdzić bezpośrednio sprawdzić czy coś odpowie? Czy to raczej tego nie próbować?
Awatar użytkownika
Marhef
Złota rączka
Posty: 1222
Rejestracja: 18 lis 2011, 02:18

Re: Klon HM-10 nie odpowiada

Post autor: Marhef » 8 sty 2020, 12:53

Nie próbuj. Możesz uszkodzić.

Coś mi jeszcze przyszło do głowy. Pokaż (albo opisz dokładnie) co masz do czego podłączone na konwerterze. Wstaw zdjęcie najlepiej
stiven
Złota rączka
Posty: 1625
Rejestracja: 13 maja 2014, 08:47
Lokalizacja: Zielona Góra

Re: Klon HM-10 nie odpowiada

Post autor: stiven » 8 sty 2020, 15:24

Może problemem jest zła prędkość transmisji 9600? Z tego co znalazłem na jednej stronie, nowszy firmware tego HM-10 ma domyślnie ustawione 115200. HC-05 na przykład 38400. Sprawdź na tych co podałem, może zacznie działać. Jak nie te, to może jeszcze spróbuj na innych.
Prędkość transmisji w programie musi być ustawiona na taką, jaką ma moduł, na innej nie dojdzie do komunikacji. Jeśli masz nowy moduł i jeszcze nic nie przestawiałeś w nim, no to 9600 to będzie złą prędkością transmisji.
Awatar użytkownika
GarryMoveOut
Młodszy majsterkowicz
Posty: 32
Rejestracja: 22 lut 2015, 14:22

Re: Klon HM-10 nie odpowiada

Post autor: GarryMoveOut » 9 sty 2020, 21:47

Marhef pisze:
8 sty 2020, 09:28
A spróbuj połączyć sygnały HM-10 Tx i HM-10 Rx (tylko odłącz moduł) i zobacz, czy odbierzesz to samo, co wysyłasz.
Bo może to konwerter jest zepsuty.

A jeszcze jedno, co podłączasz pod pin EN?
Podłączyłem tx z rx i nic nie dostałem z powrotem, bez konwertera też podłączyłem i też nic nie dostałem. Próbowałem na 2 Arduino.
Zdjęcia podłączenia https://drive.google.com/open?id=1p8sPL ... Wpf4z8qTHk

Zrobiłem test jak podłączyłem arduina i zrobiłem ping pong po tx i rx to komunikacja była. Zmieniłem tak aby jedno nadawało po rx i tx a drugie odczytywało na pin 2 i 3 to działało. A jak zmieniłem nadawanie z 2 i 3 do 2 i 3 pinu to już nie działało. Nie wiem co jest grane z tym UART
stiven pisze:
8 sty 2020, 15:24
Może problemem jest zła prędkość transmisji 9600? Z tego co znalazłem na jednej stronie, nowszy firmware tego HM-10 ma domyślnie ustawione 115200. HC-05 na przykład 38400. Sprawdź na tych co podałem, może zacznie działać. Jak nie te, to może jeszcze spróbuj na innych.
Prędkość transmisji w programie musi być ustawiona na taką, jaką ma moduł, na innej nie dojdzie do komunikacji. Jeśli masz nowy moduł i jeszcze nic nie przestawiałeś w nim, no to 9600 to będzie złą prędkością transmisji.
Próbowałem na każdej prędkości i nic.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1222
Rejestracja: 18 lis 2011, 02:18

Re: Klon HM-10 nie odpowiada

Post autor: Marhef » 10 sty 2020, 07:39

Bo masz źle podłączony konwerter. Musisz jeszcze podłączyć Lv i GN obok niego i HV i GND obok niego. Bez tego nie będzie działało.
GarryMoveOut pisze:
9 sty 2020, 21:47
Zrobiłem test jak podłączyłem arduina i zrobiłem ping pong po tx i rx to komunikacja była. Zmieniłem tak aby jedno nadawało po rx i tx a drugie odczytywało na pin 2 i 3 to działało. A jak zmieniłem nadawanie z 2 i 3 do 2 i 3 pinu to już nie działało. Nie wiem co jest grane z tym UART
Nie wiem, czy dobrze zrozumiałem. Podłączyłeś pin 2 pierwszego arduino z pinem 3 drugiego i pin 3 pierwszego z pinem 2 drugiego, tak?

UART działa w ten sposób, że na Tx jest coś wysyłane, a z Rx jest odbierane. Dlatego musisz połączyć Rx nadajnika z Tx odbiornika i Tx nadajnika z Rx odbiornika.
Jeżeli przepiąłeś tylko przewody a nie zmieniłeś tych pinów w programie, w linijce

Kod: Zaznacz cały

SoftwareSerial mySerial(3, 2);
to nie będzie działało!
Awatar użytkownika
GarryMoveOut
Młodszy majsterkowicz
Posty: 32
Rejestracja: 22 lut 2015, 14:22

Re: Klon HM-10 nie odpowiada

Post autor: GarryMoveOut » 10 sty 2020, 11:24

Ale obciach z tym konwerterem :) poprawie i sprawdzę.

Zrobiłem na początku jak tutaj https://iot-guider.com/arduino/serial-c ... no-boards/, identycznie połączenia i kod, działało. Potem zamieniłem na SoftwareSerial u odbiorcy i przełączyłem piny. Działało, potem zmieniłem u nadawcy Na SoftwareSerial i piny (odbiorca bez zmian nadal SoftwareSerial) i już przestało działać. Cały czas nie używałem konwertera. A rx i tx nie zamieniałem zgodnie z przykładem z linku.
Awatar użytkownika
Marhef
Złota rączka
Posty: 1222
Rejestracja: 18 lis 2011, 02:18

Re: Klon HM-10 nie odpowiada

Post autor: Marhef » 10 sty 2020, 11:45

Jeżeli w trzecim przypadku w nadawcy i odbiorcy wpisałeś

Kod: Zaznacz cały

SoftwareSerial mySerial(3, 2);
to musisz połączyć pin 3 z 2 i 2 z 3. I musi działać.

GND połączyłeś?

Do konwertera do HV musisz podłączyć 5V, natomiast do LV 3,3V
Awatar użytkownika
GarryMoveOut
Młodszy majsterkowicz
Posty: 32
Rejestracja: 22 lut 2015, 14:22

[SOLVED]Re: Klon HM-10 nie odpowiada

Post autor: GarryMoveOut » 10 sty 2020, 21:23

Tak połączyłem oba przez GND. Nie próbowałem już bo udało się z bluetooth, w końcu.
Zaczął odpowiadać moduł, podłączyłem wszystko tym razem w konwerterze. Dodatkowo skrosowałem tx do rx i odwrotnie oraz do komend trzeba dodawać \r\n
OK
********************************************************************
* Command Description *
* ---------------------------------------------------------------- *
* AT Check if the command terminal work normally *
* AT+RESET Software reboot *
* AT+VERSION Get firmware, bluetooth, HCI and LMP version *
* AT+HELP List all the commands *
* AT+NAME Get/Set local device name *
* AT+PIN Get/Set pin code for pairing *
* AT+BAUD Get/Set baud rate *
* AT+LADDR Get local bluetooth address *
* AT+ADDR Get local bluetooth address *
* AT+DEFAULT Restore factory default *
* AT+RENEW Restore factory default *
* AT+STATE Get current state *
* AT+PWRM Get/Set power on mode(low power) *
* AT+POWE Get/Set RF transmit power *
* AT+SLEEP Sleep mode *
* AT+ROLE Get/Set current role. *
* AT+PARI Get/Set UART parity bit. *
* AT+STOP Get/Set UART stop bit. *
* AT+INQ Search slave model *
* AT+SHOW Show the searched slave model. *
* AT+CONN Connect the index slave model. *
* AT+IMME System wait for command when power on. *
* AT+START System start working. *
* AT+UUID Get/Set system SERVER_UUID . *
* AT+CHAR Get/Set system CHAR_UUID . *
* -----------------------------------------------------------------*
* Note: (M) = The command support master mode only. *
+VERSION=v5.3

Wielkie dzięki @Marhef
Awatar użytkownika
Marhef
Złota rączka
Posty: 1222
Rejestracja: 18 lis 2011, 02:18

Re: [SOLVED]Klon HM-10 nie odpowiada

Post autor: Marhef » 13 sty 2020, 09:56

Cieszę się, że mogłem pomóc.
Czasami potrzeba, żeby ktoś inny zerknął, bo problemu się samemu nie dostrzega. A jest trywialny
ODPOWIEDZ

Strony partnerskie: