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);
}
建议仔细阅读文档和例程 看懂了再自由发挥 教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可 coloz 发表于 2019-1-29 19:55
教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可 ...
用过了,包括Hello_BLE按键计数的那个,其他功能都正常,就是没有数据显示 qyzk1989 发表于 2019-1-30 09:35
用过了,包括Hello_BLE按键计数的那个,其他功能都正常,就是没有数据显示 ...
我已经给你发了链接了,请你看下再说,里面有使用DHT的例程。。。
DHT要读取成功,才发送,没读成功就发,就你这样了
coloz 发表于 2019-1-30 09:43
我已经给你发了链接了,请你看下再说,里面有使用DHT的例程。。。
DHT要读取成功,才发送,没读成功就发 ...
你好,我用DHT11使用这个例程还是没有读到数据,按你说先读取成功才发送,我直接剔除DHT11部分,代入一个常量给它,还是没有显示,我用的最基本的hello按键计数的那个例程,包括手机端blinker的例程也是自带的,都没有数据显示上来,只要我一让它执行TEMP/HUMI.print();这种显示的函数,手机上blinker蓝牙连接就会断开,其他功能正常。 coloz 发表于 2019-1-29 19:55
教程:
https://www.arduino.cn/thread-83176-1-1.html
其实这是DHT传感器使用问题,看DHT例程即可 ...
如图,按键和滑块控制都是正常的,开发板上的灯(接的5脚PWM控制)也能相应动作,温湿度传感器读到的值就是传不过来
qyzk1989 发表于 2019-1-30 15:03
如图,按键和滑块控制都是正常的,开发板上的灯(接的5脚PWM控制)也能相应动作,温湿度传感器读到的值就 ...
串口打印出DHT的值,确保是读出的 qyzk1989 发表于 2019-1-30 15:03
如图,按键和滑块控制都是正常的,开发板上的灯(接的5脚PWM控制)也能相应动作,温湿度传感器读到的值就 ...
看了下,是APP上蓝牙和WIFI的差异造成的,等晚上我更新下APP,再测试下 统一了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