blinker手机上没有显示数据-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6722|回复: 10

[已解答] blinker手机上没有显示数据

[复制链接]
发表于 2019-1-29 14:22 | 显示全部楼层 |阅读模式
哪位大侠帮我看看,我东拼西凑的程序,手机上下了个blinker,设置了两个按钮,一个滑块,两个温湿度的显示窗口
现在开关按钮能控制外接arduion板的LED,滑块也能控制LED的亮度,但是外接的温湿度传感器一直没有数据显示,不知道是哪里的问题
#define BLINKER_BLE
#include <SHT1x.h>
#include <Blinker.h>

#define dataPin  A1
#define clockPin A0

SHT1x sht1x(dataPin, clockPin);

BlinkerButton Button1("btn-led");
BlinkerSlider Slider1("sli-pwm");
BlinkerNumber TEMP("temp");
BlinkerNumber HUMI("humi");

float humi_read=20,temp_read=20;

int counter = 0;
uint32_t read_time = 0;

void button1_callback(const String & state)
{
    BLINKER_LOG("get button state: ", state);
    if(state=="on"){
    digitalWrite(13, HIGH);
    analogWrite(5, 255);
    Serial.println("开灯");}//串口打印
    else if(state=="off"){
    digitalWrite(13, LOW);
    analogWrite(5, 0);
    Serial.println("关灯");}
}
void slider1_callback(int32_t value)
{
  BLINKER_LOG("get slider data: ", value);
  analogWrite(5, value*255/100);
  Serial.print("duty:");
  Serial.print(value);
  Serial.println("%");
}
void heartbeat()
{
    TEMP.print(temp_read);
    HUMI.print(humi_read);
}
void setup()
{
    Serial.begin(9600);
    BLINKER_DEBUG.stream(Serial);
    pinMode(13, OUTPUT);
    digitalWrite(13, LOW);
    Blinker.begin(2,3,9600);
    Button1.attach(button1_callback);
    Slider1.attach(slider1_callback);
    Blinker.attachHeartbeat(heartbeat);

}

void loop()
{
    Blinker.run();
    if (read_time == 0 || (millis() - read_time) >= 2000)
    {
       read_time = millis();
    temp_read=sht1x.readTemperatureC();
    humi_read=sht1x.readHumidity();

    BLINKER_LOG("Humidity: ",h," %");
    BLINKER_LOG("Temperature: ",t,"*C");
    Blinker.print(temp_read,humi_read);
    }
//    Blinker.delay(1000);
}

123.jpg
发表于 2019-1-29 14:32 | 显示全部楼层
建议仔细阅读文档和例程 看懂了再自由发挥
发表于 2019-1-29 19:55 | 显示全部楼层
教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可
 楼主| 发表于 2019-1-30 09:35 | 显示全部楼层
coloz 发表于 2019-1-29 19:55
教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可 ...

用过了,包括Hello_BLE按键计数的那个,其他功能都正常,就是没有数据显示
发表于 2019-1-30 09:43 | 显示全部楼层
qyzk1989 发表于 2019-1-30 09:35
用过了,包括Hello_BLE按键计数的那个,其他功能都正常,就是没有数据显示 ...

我已经给你发了链接了,请你看下再说,里面有使用DHT的例程。。。
DHT要读取成功,才发送,没读成功就发,就你这样了
 楼主| 发表于 2019-1-30 13:28 | 显示全部楼层
coloz 发表于 2019-1-30 09:43
我已经给你发了链接了,请你看下再说,里面有使用DHT的例程。。。
DHT要读取成功,才发送,没读成功就发 ...

你好,我用DHT11使用这个例程还是没有读到数据,按你说先读取成功才发送,我直接剔除DHT11部分,代入一个常量给它,还是没有显示,我用的最基本的hello按键计数的那个例程,包括手机端blinker的例程也是自带的,都没有数据显示上来,只要我一让它执行TEMP/HUMI.print();这种显示的函数,手机上blinker蓝牙连接就会断开,其他功能正常。
 楼主| 发表于 2019-1-30 15:03 | 显示全部楼层
coloz 发表于 2019-1-29 19:55
教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可 ...

如图,按键和滑块控制都是正常的,开发板上的灯(接的5脚PWM控制)也能相应动作,温湿度传感器读到的值就是传不过来

控制按键和滑块都能正常使用,数据显示不了

控制按键和滑块都能正常使用,数据显示不了
123222.jpg

点评

看了下,是APP上蓝牙和WIFI的差异造成的,等晚上我更新下APP,再测试下  详情 回复 发表于 2019-1-30 17:23
发表于 2019-1-30 15:09 | 显示全部楼层
qyzk1989 发表于 2019-1-30 15:03
如图,按键和滑块控制都是正常的,开发板上的灯(接的5脚PWM控制)也能相应动作,温湿度传感器读到的值就 ...

串口打印出DHT的值,确保是读出的
发表于 2019-1-30 17:23 | 显示全部楼层
qyzk1989 发表于 2019-1-30 15:03
如图,按键和滑块控制都是正常的,开发板上的灯(接的5脚PWM控制)也能相应动作,温湿度传感器读到的值就 ...

看了下,是APP上蓝牙和WIFI的差异造成的,等晚上我更新下APP,再测试下
发表于 2019-1-30 21:56 | 显示全部楼层
统一了wifi和ble接入,更新下app应该就可以了
测试用的示例程序
[mw_shl_code=arduino,true]#define BLINKER_BLE
#include <Blinker.h>
#include <DHT.h>


BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");

#define DHTPIN 7

//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

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(auth, ssid, pswd);
    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]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 14:37 , Processed in 0.083952 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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