使用arduino uno用蓝牙碰到温湿度问题
本帖最后由 liren66 于 2019-9-29 01:38 编辑[*]硬件:
[*]接入方式:
[*]blinker库版本: [最新刚下的]
[*]开发环境:
[*]操作系统:
[*]蓝牙:DX-BT05(CC2541)
手机信息及APP信息
[*]
[*]手机品牌及型号:oppoo r11s
[*]android系统版本:7.11
[*]blinker App版本:2.27
问题描述我用了论坛大大给的教程里面的案例https://www.arduino.cn/thread-83176-1-1.html 这个帖子里面的温湿度遇到的问题1.如果我rx'tx不用1,2。debug就不会显示任何内容。2.论坛里面查到的方法我给rxtx换个2.3或者12.13都没有用我端口9600和115200都试过。3.humi和temp就是不会显示任何数字,debug会更新。求大佬帮忙看看 这个搞了好几天了
代码#define BLINKER_BLE
#include <Blinker.h>
#include <DHT.h>
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
float humi_read = 0, temp_read = 0;
void heartbeat()
{
HUMI.print(humi_read);
TEMP.print(temp_read);
}
void setup()
{
Serial.begin(9600);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
Blinker.begin(9600);
Blinker.attachHeartbeat(heartbeat);
dht.begin();
}
void loop()
{
Blinker.run();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
BLINKER_LOG("Failed to read from DHT sensor!");
}
else
{
BLINKER_LOG("Humidity: ", h, " %");
BLINKER_LOG("Temperature: ", t, " *C");
humi_read = h;
temp_read = t;
}
Blinker.delay(2000);
} 你这问题和另一个帖子一模一样:
https://www.arduino.cn/thread-92281-1-1.html
你用硬串口的同时就不能和PC通信了
解决办法:按照文档,使用软串口。 coloz 发表于 2019-9-29 01:58
你这问题和另一个帖子一模一样:
https://www.arduino.cn/thread-92281-1-1.html
大佬你好,请问是不是就是使用这个呢#include<SoftwareSerial.h>
SoftwareSerial espSerial(2,3);
还有文档是指开发文档吗。。我看过很多遍是指Blinker.begin(4, 5, 115200); 这一项吗 liren66 发表于 2019-9-29 02:11
大佬你好,请问是不是就是使用这个呢#include
SoftwareSerial espSerial(2,3);
还有文档是指开发文档吗。 ...
我觉得文档已经非常详尽了。
复读下文档:
1.将串口BLE模块的 TXD连接到UNO的2号引脚,RXD连接到UNO的3号引脚
2.Blinker.begin();
https://diandeng.tech/doc/getting-start-ble
补充:
1.文档中写明了需要接2、3引脚,0、1是用来和PC通信的,接了蓝牙,本来传给PC的数据,就传给蓝牙了。
2.文档中有写明Blinker.begin的用法,并没有Blinker.begin(9600)这种用法。
coloz 发表于 2019-9-29 02:16
我觉得文档已经非常详尽了。
复读下文档:
1.将串口BLE模块的 TXD连接到UNO的2号引脚,RXD连接到UNO的3号 ...
#define BLINKER_BLE
#include <Blinker.h>
#include <DHT.h>
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
#define DHTPIN 8
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
float humi_read = 0, temp_read = 0;
void heartbeat()
{
HUMI.print(humi_read);
TEMP.print(temp_read);
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
BLINKER_DEBUG.debugAll();
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, LOW);
Blinker.begin();
Blinker.attachHeartbeat(heartbeat);
dht.begin();
}
void loop()
{
Blinker.run();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t))
{
BLINKER_LOG("Failed to read from DHT sensor!");
}
else
{
BLINKER_LOG("Humidity: ", h, " %");
BLINKER_LOG("Temperature: ", t, " *C");
humi_read = h;
temp_read = t;
}
Blinker.delay(2000);
}
大佬我这里,已经都按你的做了,我新买了个jdy08也不行.卖家告诉我默认波特率是9600.还是只有电脑串口可以收到数据。
liren66 发表于 2019-10-6 00:31
#define BLINKER_BLE
#include
#include
8\11插的啥,是否有共地?请先严格按照文档检查硬件连接。 coloz 发表于 2019-10-6 10:21
8\11插的啥,是否有共地?请先严格按照文档检查硬件连接。
大佬下午好,我刚才把8与11都拔了,我的只剩2-TXD,3-RXD,7-DTH11了。我的蓝牙模块与温湿度模块的GND和电源都是插我从arduino单口引出来在面包板上的分支。我代码里接8的dth也修改成7了。还是只有电脑串口有数据反馈。手机端还是一样的情况。 我这边看了几家淘宝,JDY08默认波特率为115200,没有写9600的。
且我也测试了手上的JDY08,一切正常,如果还是不行,那我也不知道你哪里没对了。 coloz 发表于 2019-10-6 17:57
我这边看了几家淘宝,JDY08默认波特率为115200,没有写9600的。
且我也测试了手上的JDY08,一切正常,如果 ...
大佬晚上好。那我是不是应该改成这样Blinker.begin(2,3,115200); 电脑的波特率和蓝牙的是否需要一样呢Serial.begin(115200);就是这一项括号里面的数字 Blinker.begin(2,3,115200);
页:
[1]
2