使用arduino uno用蓝牙碰到温湿度问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6137|回复: 13

[已解答] 使用arduino uno用蓝牙碰到温湿度问题

[复制链接]
发表于 2019-9-29 01:34 | 显示全部楼层 |阅读模式
本帖最后由 liren66 于 2019-9-29 01:38 编辑

  • 硬件: [Arduino UNO]
  • 接入方式: [BLE]
  • blinker库版本: [最新刚下的]
  • 开发环境: [Arduino]
  • 操作系统: [Windows]
  • 蓝牙: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会更新。
求大佬帮忙看看 这个搞了好几天了

代码
[mw_shl_code=arduino,true]#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);
}[/mw_shl_code]
QQ图片20190929013336.png
发表于 2019-9-29 01:58 | 显示全部楼层
你这问题和另一个帖子一模一样:
https://www.arduino.cn/thread-92281-1-1.html

你用硬串口的同时就不能和PC通信了
解决办法:按照文档,使用软串口。
 楼主| 发表于 2019-9-29 02:11 来自手机 | 显示全部楼层
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); 这一项吗
发表于 2019-9-29 02:16 | 显示全部楼层
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)这种用法。
 楼主| 发表于 2019-10-6 00:31 | 显示全部楼层
coloz 发表于 2019-9-29 02:16
我觉得文档已经非常详尽了。
复读下文档:
1.将串口BLE模块的 TXD连接到UNO的2号引脚,RXD连接到UNO的3号 ...

[mw_shl_code=arduino,true]#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);
}[/mw_shl_code]
大佬我这里,已经都按你的做了,我新买了个jdy08也不行.卖家告诉我默认波特率是9600.还是只有电脑串口可以收到数据。
2.png
12.jpg
QQ图片20191006002449.png
发表于 2019-10-6 10:21 | 显示全部楼层
liren66 发表于 2019-10-6 00:31
[mw_shl_code=arduino,true]#define BLINKER_BLE
#include
#include

8\11插的啥,是否有共地?请先严格按照文档检查硬件连接。
 楼主| 发表于 2019-10-6 16:48 | 显示全部楼层
coloz 发表于 2019-10-6 10:21
8\11插的啥,是否有共地?请先严格按照文档检查硬件连接。

大佬下午好,我刚才把8与11都拔了,我的只剩2-TXD,3-RXD,7-DTH11了。我的蓝牙模块与温湿度模块的GND和电源都是插我从arduino单口引出来在面包板上的分支。我代码里接8的dth也修改成7了。还是只有电脑串口有数据反馈。手机端还是一样的情况。
发表于 2019-10-6 17:57 | 显示全部楼层
我这边看了几家淘宝,JDY08默认波特率为115200,没有写9600的。
且我也测试了手上的JDY08,一切正常,如果还是不行,那我也不知道你哪里没对了。
 楼主| 发表于 2019-10-6 21:07 | 显示全部楼层
coloz 发表于 2019-10-6 17:57
我这边看了几家淘宝,JDY08默认波特率为115200,没有写9600的。
且我也测试了手上的JDY08,一切正常,如果 ...

大佬晚上好。那我是不是应该改成这样Blinker.begin(2,3,115200); 电脑的波特率和蓝牙的是否需要一样呢  Serial.begin(115200);就是这一项括号里面的数字
发表于 2019-10-6 22:37 | 显示全部楼层
Blinker.begin(2,3,115200);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 03:38 , Processed in 0.174365 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表