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

qyzk1989 发表于 2019-1-29 14:22

blinker手机上没有显示数据

哪位大侠帮我看看,我东拼西凑的程序,手机上下了个blinker,设置了两个按钮,一个滑块,两个温湿度的显示窗口
现在开关按钮能控制外接arduion板的LED,滑块也能控制LED的亮度,但是外接的温湿度传感器一直没有数据显示,不知道是哪里的问题
#define BLINKER_BLE
#include <SHT1x.h>
#include <Blinker.h>

#define dataPinA1
#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);
}

三水 发表于 2019-1-29 14:32

建议仔细阅读文档和例程 看懂了再自由发挥

coloz 发表于 2019-1-29 19:55

教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可

qyzk1989 发表于 2019-1-30 09:35

coloz 发表于 2019-1-29 19:55
教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可 ...

用过了,包括Hello_BLE按键计数的那个,其他功能都正常,就是没有数据显示

coloz 发表于 2019-1-30 09:43

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

我已经给你发了链接了,请你看下再说,里面有使用DHT的例程。。。
DHT要读取成功,才发送,没读成功就发,就你这样了

qyzk1989 发表于 2019-1-30 13:28

coloz 发表于 2019-1-30 09:43
我已经给你发了链接了,请你看下再说,里面有使用DHT的例程。。。
DHT要读取成功,才发送,没读成功就发 ...

你好,我用DHT11使用这个例程还是没有读到数据,按你说先读取成功才发送,我直接剔除DHT11部分,代入一个常量给它,还是没有显示,我用的最基本的hello按键计数的那个例程,包括手机端blinker的例程也是自带的,都没有数据显示上来,只要我一让它执行TEMP/HUMI.print();这种显示的函数,手机上blinker蓝牙连接就会断开,其他功能正常。

qyzk1989 发表于 2019-1-30 15:03

coloz 发表于 2019-1-29 19:55
教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可 ...

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

三水 发表于 2019-1-30 15:09

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

奈何col 发表于 2019-1-30 17:23

qyzk1989 发表于 2019-1-30 15:03
如图,按键和滑块控制都是正常的,开发板上的灯(接的5脚PWM控制)也能相应动作,温湿度传感器读到的值就 ...

看了下,是APP上蓝牙和WIFI的差异造成的,等晚上我更新下APP,再测试下

奈何col 发表于 2019-1-30 21:56

统一了wifi和ble接入,更新下app应该就可以了
测试用的示例程序
#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);
}
页: [1] 2
查看完整版本: blinker手机上没有显示数据