天道酬勤,学无止境

HM-10 和 Arduino - 发送 AT 命令且代码中没有行结尾(HM-10 and Arduino - Sending AT commands with no line ending from code)

问题
#include <SoftwareSerial.h> SoftwareSerial blueToothSerial(0,1); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); Serial.println("Serial began"); blueToothSerial.begin(9600); delay(2000); } void loop() { Serial.println("looping..."); blueToothSerial.print("AT+DISC?"); delay(5000); if (blueToothSerial.available()) { Serial.println("bluetooth serial available"); Serial.write(blueToothSerial.read()); } }
回答1

确保在串行监视器选项中未设置 NL&CR。

回答2
AT+IPR? +IPR:9600 OK

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • HM10 ble 改变特征值 AT 命令 Arduino(HM10 ble change characteristic value AT command Arduino)
    问题 任何人都可以帮助我使用 AT 命令来写入特征值,或者如何使用 Hm10 模块将数据从 arduino 发送到另一个 ble 设备。 HM10发送AT+START后,会做广告包,可以检测服务和特征,但是特征值是默认的0x00,怎么改? 已多次检查数据表,但找不到能够执行相同操作的 AT 命令。 更新:在中央模式下设置 HM10 的类似问题: 中央模式设置! 1) AT+ROLE1 - 设置为中央模式 2) AT+IMME1 - 从 RESET 开始 3) AT+SHOW1 - 显示发现的设备 4)AT+光盘? - 发现设备获取设备 MAC ID, 5) AT+CON[MAC ID] 结果:总是给出 OK+CONNA 并在 10 秒后给出 OK+CONNF 我很困惑,在“AT+DISC”之前使用“AT+START”? 导致 AT+START 不起作用,反之亦然。 使用 AT+START 会导致 OK+CONN 循环,然后是 OK+LOST,并且不再接受更多的 AT 命令。 我相信它会导致 你能建议正确的顺序吗? 使用 LightBlue iOS 应用程序作为外围设备。 如何选择服务并订阅特征以从应用程序接收数据? 谢谢你。 回答1 没有设置特征值的 AT 命令。 HM10 是一个串行端口仿真设备 - 您发送到 HM10 模块的任何串行数据(除了 AT 命令)都可以通过它的 BLE
  • 如何使用基于HM-10蓝牙模块的BLE Shield?(How to use BLE Shield based on HM-10 bluetooth module?)
    问题 我是arduino项目的新手。 我想请你帮忙。 我从 ( http://imall.iteadstudio.com/development-platform/arduino/shields/im130704001.html ) 为 Arduino 购买了 BLE Shield。 他们使用Hm-10蓝牙模块(http://www.jnhuamao.cn/bluetooth.asp?ID=1)制作了这个盾牌。 Itead Studio 没有使用此屏蔽的示例代码。 我不知道如何编程或从 Arduino 发送 AT 命令。 我阅读了数据表(ftp://imall.iteadstudio.com/Shield/IM130704001_ITEAD_BLE_Shield/DS_IM130704001_ITEAD_BLE_Shield.pdf)中的“AT命令”,并尝试使用此代码(http: //arduino.cc/en/Reference/SoftwareSerial )但我只收到了命令。 这里有人用过这个 HM-10 蓝牙模块吗? 我需要一些 arduino 草图来寻求帮助! 回答1 #include <SoftwareSerial.h> int led = 13; int bluetoothTx = 2; int bluetoothRx = 3; SoftwareSerial
  • HM10 与 Arduino 和 Android BLE 之间的低功耗蓝牙大数据传输(Large data transmission in Bluetooth Low Energy between HM10 with Arduino & Android BLE)
    问题 在我的 android 应用程序中从 HM-10 低功耗蓝牙接收数据时遇到问题我做了一半。 我所做的是:将数据从手机发送到 BLE,现在我成功了,我想从 BLE 接收数据到我的手机。 (Arduino) --> (HM-10 BLE) ->-->-BLE CONNECTION-->-->- (ANDROID APP) 所以我从 Arduino 发送虚拟数据,但我无法在应用程序中接收它。 这是负责将数据从 Android 发送到 BLE 模块的类 public class DeviceControlActivity extends Activity { private final static String TAG = DeviceControlActivity.class.getSimpleName(); public static final String DEVICE1_ON = "0"; public static final String DEVICE1_OFF = "1"; public static final String DEVICE2_ON = "2"; public static final String DEVICE2_OFF = "3"; public static final String EXTRAS_DEVICE_NAME = "DEVICE
  • HM10 ble change characteristic value AT command Arduino
    Can anyone help me with the AT command to write characteristic value, Or how to send data from arduino to another ble device using Hm10 module. The HM10 after sending the AT+START, does advertise packets, and can detect the service and characteristic, But the characteristic value is the default 0x00, How can I change that? Have checked the data sheet multiple times but can not find an AT command that is capable of doing the same. UPDATE: Similar problem with setting the HM10 in Central Mode: Central Mode Setup! 1) AT+ROLE1 - Set up to Central Mode 2) AT+IMME1 - Start from RESET 3) AT+SHOW1 -
  • 我可以使用 Arduino 读取 iBeacon 数据吗?(Can I read iBeacon data using Arduino?)
    问题
  • How to use BLE Shield based on HM-10 bluetooth module?
    I'm a new bie on arduino projects. I would like to ask you for some help. I bought a BLE Shield for Arduino from ( http://imall.iteadstudio.com/development-platform/arduino/shields/im130704001.html ). They made this shield using Hm-10 Bluetooth module(http://www.jnhuamao.cn/bluetooth.asp?ID=1). Itead Studio has no sample codes using this shield. I have no idea on how to program it or send AT commands from Arduino. I read the “AT commands” at the data sheet (ftp://imall.iteadstudio.com/Shield/IM130704001_ITEAD_BLE_Shield/DS_IM130704001_ITEAD_BLE_Shield.pdf) and I tried to send "AT commands”
  • HM-10 and Arduino - Sending AT commands with no line ending from code
    I need to use HM-10 with Arduino Uno or Nano. I'm not able to figure out how to send AT commands and read the reply. The commands work from serial monitor, but not from code. Here's what I've tried so far: #include <SoftwareSerial.h> SoftwareSerial blueToothSerial(0,1); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(115200); Serial.println("Serial began"); blueToothSerial.begin(9600); delay(2000); } void loop() { Serial.println("looping..."); blueToothSerial.print("AT+DISC?"); delay(5000); if (blueToothSerial.available()) { Serial.println(
  • How do I pair and/or bond to BLE on iOS using Swift code and an HM-10 so data sent is encrypted?
    Background I've built a simple circuit which includes an Arduino Nano and a HM-10 BLE serial module. You can see that circuit at the following Electrical Engineering SE question: https://electronics.stackexchange.com/questions/412525/when-i-write-data-to-a-ble-characteristic-ffe1-to-send-data-over-bluetooth-is I also have an Xcode project written in Swift that successfully sends bytes to the FFE1 characteristic. It all works great and I can see the data coming from my iPad via Arduino Serial monitor. However, from the research I did (see previous link) I believe I've determined that the data I
  • Large data transmission in Bluetooth Low Energy between HM10 with Arduino & Android BLE
    Have an issue receiving data from HM-10 Bluetooth Low Energy in my android App I did half the way. what I did is : sending data from the phone to the BLE and i succeeded now i want to receive data to my phone from the BLE. (Arduino) --> (HM-10 BLE) ->-->-BLE CONNECTION-->-->- (ANDROID APP) So I'm sending dummy data from Arduino but I cannot receive it in the app. here's the class that responsible to send data from Android to the BLE Module public class DeviceControlActivity extends Activity { private final static String TAG = DeviceControlActivity.class.getSimpleName(); public static final
  • AT命令响应(了解Arduino上代码执行的顺序)(AT command responses (understanding order of code execution on Arduino))
    问题 我正在从Arduino Uno / Nano(ATmega328)向ESP8266发送AT命令,并尝试解析接收到的字符串的结尾以响应,以建立ESP的反应方式以及它是否成功(以及是否准备好接收另一个命令)然而)。 我知道在这里之前已经讨论了解析AT命令响应: 获取AT命令响应 但是我有一个没有解决的特定问题,这里的其他人也可能会感兴趣... 首先,调用一个函数,该函数将AT命令发送到ESP以连接到ThingSpeak(数据记录服务器)。 这在手动模式下可以正常工作,并且在尝试解析响应时也可以连接,但是它仅解析返回的第一行。 例如,串行监视器中的预期输出为: c AT+CIPSTART="TCP","api.thingspeak.com",80 CONNECT OK Connected to ThingSpeak! 其中c只是我键入的命令字符以启动连接。 但是,实际响应如下: c AT+CIPSTART="TCP","api.thingspeak.com",80 Cannot connect to ThingSpeak! CONNECT OK 这意味着解析函数在收到响应之前就结束了...如下代码所示,当前指定了10秒的超时时间。 即使超时20秒,也会发生相同的事情,尽管实际上在手动执行时,响应会在大约一秒钟后到达。 仅为了测试解析功能,我尝试搜索"80" ,它返回true
  • SIM900 AT 命令响应解析(SIM900 AT Commands response parsing)
    问题 我正在使用连接到 Arduino Uno 的 sim900 gps/gprs 模块屏蔽,我将如何解析我的 AT 命令的响应? 或者如何在发送 AT 命令后删除串行中打印的第一行? AT+CMGL="ALL" +CMGL: 1,"REC READ","+XXXXXXXXXX","","16/04/25,15:20:59+32" Hilp akp si ralphh the pogi one mmalit mi pizza hehehehehe +CMGL: 2,"REC READ","+XXXXXXXXXX","","16/04/25,21:51:33+32" Yow!!! OK 上面输出的例子,我想去掉 AT+CMGL="ALL" 然后解析剩下的数据,解析的最好方法是什么 回答1 我将如何解析我的 AT 命令的响应? 是的,这是一个正确的问题。 发送 AT 命令后,如何删除串行中打印的第一行? 不,这是一个错误的问题,因为如果您关心回声是否打开,那么您就做错了。 解析AT命令输出的正确策略如下: 发送 AT 命令行(以"\r"正确终止)。 读取从调制解调器接收的一个又一个字符,直到您有一整行以"\r\n"结尾,然后解析该行。 如果该行等于最终结果代码,则命令行的所有输出都已完成(并且调制解调器已准备好接收新命令)。 这一定是你测试的第一件事! 如果正在运行的 AT
  • 如何在Arduino串口中打印对AT命令的响应?(How to print response to AT commands in Arduino serial port?)
    问题 我想打印对 AT 命令的响应。 我正在发送 AT 命令,但在 Arduino 串口中没有收到任何响应。 它给出 -1 而不是 OK。 #include "SoftwareSerial.h" String ssid = "connectify-krish"; String password = "12345678"; String myword= ""; SoftwareSerial esp(10, 11); void setup() { Serial.begin(9600); esp.begin(9600); esp.write("AT"); Serial.println(esp.read()); } void loop() {} 回答1 正如评论中已经指出的那样,您不会终止 AT 命令行,因此调制解调器永远不会对此做出响应。 请务必阅读 V.250 并了解 AT 命令和 AT 命令行之间的区别。 ATI是一个AT命令, "ATI II\r"是一个连续调用这个命令3次的命令行。 请注意,在此示例中,您将仅获得所有三个的单个最终结果代码,即最终结果代码是对完整命令行的响应,而不是对单个命令调用的响应。 然后在修复命令的发送后,您必须正确处理响应。 这包括读取和解析调制解调器作为对发送的命令行的响应而发回的内容。 有关代码结构和实现提示,请参阅此答案。 回答2 正如你被告知的
  • Arduino Sim900 没有回声但发送了短信(Arduino Sim900 with no echo but SMS was sent out)
    问题 我刚买了一个新的 Sim900 并连接到了 Arduino Uno。 我使用下面的代码向自己发送文本。 我在我的手机上收到了文本,但我的串行监视器上没有收到任何回声(即“OK”)。 我曾尝试交换 RX/TX 引脚和不同的波特率,但没有成功。 void setup() { Serial.begin(9600); //Baud rate of the GSM/GPRS Module Serial.println(""); delay(2000); Serial.println("AT+CMGF=1"); delay(1000); Serial.println("AT+CMGS=\"+120########\""); //Number to which you want to send the sms delay(1000); Serial.print("This is a test."); //The text of the message to be sent delay(1000); Serial.write(0x1A); // send CTRL - z to end message Serial.write(0x0D); // Carriage Return Serial.write(0x0A); // Line Feed delay(5000); } void loop
  • 使用串行向 Arduino 发送多个值到 Raspberry(Send multiple values to Raspberry with Arduino using serial)
    问题 我有一个关于 Arduino 和 Raspberry Pi 之间串行通信的问题。 事实是我想用 Arduino 向 Raspberry Pi 发送 2 个变量,并以不同的方式使用它们。 这是我的 Arduino 草图: int one = 1; int two = 2; void setup() { Serial.begin(9600); } void loop() { Serial.print(one); Serial.print(two); delay(3000); } 这是我的覆盆子python脚本: import serial import time ser = serial.Serial('/dev/ttyACM0', 9600) time.sleep(4) while True: data=ser.read() print data 问题是 python 代码中的“数据”采用 Arduino 发送的两个值(因为 Arduino loop() 中有两个打印)。 但我想用两个不同的变量在 Raspberry Pi 中接收数据(之后记录它们)。 我尝试了许多技术以两种不同的方式接收这些数据,但它不起作用。 谢谢您的帮助。 回答1 Arduino 的 Serial.print 以 ASCII 格式发送数据。 因此,您来自 Arduino 的命令实际上发送了字符串12 。
  • python 基础 day6函数与Lambda表达式
    函数 函数的定义和调用 定义函数需要用 def 关键字实现,具体的语法格式如下: def 函数名(形参列表): //由零条到多条可执行语句组成的代码块 [return [返回值]] 函数的调用直接写出函数名加小括号 def hm(): print('laohu真帅') print(hm())#laohu真帅 函数的参数 函数参数的作用是传递数据给函数,令其对接收的数据做具体的操作处理。 参数从调用角度来看,分为形式参数与实际参数 形式参数:在定义函数时,函数名后面括号中的参数就是形式参数 实际参数:在调用函数时,函数名后面括号中的参数称为实际参数,也就是函数的调用者给函数的参数。 def hm(name): print(name+'真帅') #name为形参 print(hm('laohu'))#laohu真帅 #laohu是实参 实参和形参的区别,就如同剧本选主角,剧本中的角色相当于形参,而演角色的演员就相当于实参。 函数文档 使用函数文档帮助更好理解函数作用 在函数开头写下字符串,其不被打印出来,但作为函数的一部分保存起来了。称作函数的文档字符串 函数的文档字符串通过__doc__获取 用help()查看文档 def jiafa(a,b): "返回加法" print(a,b) print(help(jiafa))#jiafa(a, b) #返回加法 print(jiafa._
  • 使用python将字符串从arduino存储到文本文件(Storing string from arduino to text file using python)
    问题 我正在使用此代码将字符串从 arduino 发送到 PC int i=0; void setup(){ Serial.begin(9600); // Open serial connection at a baud rate of 9600 pinMode(13, OUTPUT); //set pin13 in o/p mode } void loop(){ while(1) { Serial.write("10.028371,76.328873"); Serial.write('\0'); delay(1000); } } 我需要一个 python 代码来接收这个字符串并将它存储在一个文本文件中。arduino 正在连续传输这个字符串,但我只需要它在文本文件中一次。 我写了下面的代码,但在文本文件中只得到垃圾值 ## import the serial library import serial ## Boolean variable that will represent ## whether or not the arduino is connected connected = False ## establish connection to the serial port that your arduino ## is connected to. locations=
  • 用Java转换成英语单词(Int to English words in Java)
    问题 在这里,我想问些奇怪的事情。 我想问一下,有什么方法/逻辑可以将整数值转换为包含数字英文单词的字符串值? 例如,用户输入22并获得输出22或2。 谢谢 回答1 看看这段代码,它可能就是您想要的。 例如,在main方法中,如果有: System.out.println(convert(22)); 输出: twenty two 编辑我复制了下面的代码,清理了一下格式(主方法在底部): import java.text.DecimalFormat; public class EnglishNumberToWords { private static final String[] tensNames = { "", " ten", " twenty", " thirty", " forty", " fifty", " sixty", " seventy", " eighty", " ninety" }; private static final String[] numNames = { "", " one", " two", " three", " four", " five", " six", " seven", " eight", " nine", " ten", " eleven", " twelve", " thirteen", " fourteen", " fifteen
  • Bash、串行 I/O 和 Arduino(Bash, serial I/O and Arduino)
    问题 所以,我有点不知所措,我觉得我已经非常接近解决方案了,但它还没有完全奏效。 这是我的情况: 我正在使用 Arduino 微控制器,我正在尝试编写两个 Bash 脚本(现在在 Mac OS X 10.6 中运行),它们将 (a) 将来自 Arduino 单元的所有串行数据打印到标准输出,并且(b) 允许我向 Arduino 单元发送串行数据。 然后将使用 Adob​​e AIR 的 NativeProcess API 调用这些脚本,以实现 Arduino 单元和 Flex Adob​​e AIR 应用程序之间的紧密集成。 我的两个脚本非常简单—— 这是我的 WriteToSerial.sh 脚本: echo $1 > $2 ($1 显然是我的字符串,$2 是串口的位置——目前是 /dev/tty.usbserial-A800eIUj) 这是我的 ReadSerialOutput.sh 脚本: tail -f $1 ($1 是我的串口位置,目前是/dev/tty.usbserial-A800eIUj) 当我调用这些脚本中的任何一个时(或者即使我只是直接在 Bash 控制台中输入命令),我的计算机就会挂起 - 我可以输入字符,但是在我Ctrl + C退出该过程之前什么也没有发生。 但是,如果我打开 Arduino IDE 并打开串行监视器,然后tail -f端口,关闭串行监视器
  • 在树莓派上使用蓝牙测量接近度(Measuring proximity with bluetooth on raspberry Pi)
    问题 我一直在尝试使用这个脚本 https://github.com/karulis/pybluez/blob/master/examples/advanced/inquiry-with-rssi.py 但似乎sock = bluez.hci_open_dev(dev_id)返回一个非工作插座。 每次将 sock 传递给函数时都会抛出error(9, 'Bad file descriptor') 。 这个脚本已经很旧了,所以很有可能它不再起作用了。 所以我有两个问题。 有谁知道如何使用 pybluez 库(或更现代的等效库)来测量蓝牙设备与树莓派的接近程度? 我对这个导致我构建损坏套接字的脚本做错了什么? 谢谢。 回答1 试试这个: 运行hcitool dev以获取蓝牙设备的地址。 在您链接到的脚本中,将第 120 行更改为: dev_id = 0 至: dev_id = bluez.hci_get_route(ADDRESS_FOR_YOUR_BLUETOOTH_DEVICE) 为了测量接近度,脚本调用函数 device_inquiry_with_with_rssi(sock) 它应该打印蓝牙设备 ID 及其相应 RSSI 值的列表(参见第 95-102 行)。 通常,设备必须处于配对模式才能显示在查询结果中。 该函数还将 ID/RSSI 列表作为数组返回
  • 如何将 HEVC 文件解码为 YUV?(How to decode HEVC files to YUV?)
    问题 我想将 HEVC 编码的文件解码为 YUV 文件。 有没有什么简单的方法可以做到这一点? 一个可执行文件会很好,但我会使用易于编译的源代码。 回答1 它就像(引导假定的 linux,根据您的需要调整它)一样简单 克隆官方参考编解码器(官方是在 https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/trunk/ 上找到的 svn-repo,但是一个只读的 git-repo 与svn 由 BBC 提供,与 IMHO 一起工作要容易得多) git clone git://hevc.kw.bbc.co.uk/git/jctvc-hm.git 要创建可执行文件: cd jctvc-hm/build/linux && make -f makefile 二进制文件现在被放置在jctvc-hm/bin 现在,要将 HEVC 编码的二进制文件解码为 YCbCr,请执行以下操作./TAppDecoderStatic -b encoded_file.bin -o reconstructed.yuv 如果您不是在 linux 系统上,只需转到 build 文件夹,您将有望找到可用于您的系统的内容: $ cd jctvc-hm/build && ls HM_vc10.sln HM_vc8.sln HM_vc9.sln linux/ vc10/ vc8/