[Arduino物联网开发实战2]数据反馈-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 奈何col

[使用文档] [Arduino物联网开发实战2]数据反馈

  [复制链接]
发表于 2022-3-17 10:18 | 显示全部楼层
奈何col 发表于 2021-3-11 00:27
DHT11/22的话,任意IO口均可

按照以下程序上传完成后手机端总是显示设备离线,这是什么原因呀?试了开关灯的例程都没有问题。
#define BLINKER_WIFI

#include <Blinker.h>
#include <DHT.h>

char auth[] = "5bc0f4d4e1be";
char ssid[] = "360_2804";
char pswd[] = "JIANG18292463412";

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.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);
}
发表于 2022-3-26 16:51 | 显示全部楼层
oscarangustin 发表于 2019-7-22 05:59
请问大佬,如果要用的传感器没有库那应该怎么写呢,谢谢大佬

你可以参照这篇文章,我百度到的
https://copyfuture.com/blogs-details/20210721193036916t
发表于 2022-3-29 12:00 | 显示全部楼层
[329825] add.
[329826] print: {"temp":{"date":1648526172,"val":24.10},"humi":{"date":1648526172,"val":41.70}}
[329835] Proto print...
[329837] Freeheap: 36240
[329839] WS response:
[329841] {"temp":{"date":1648526172,"val":24.10},"humi":{"date":1648526172,"val":41.70}}
[329849] Success...
[329852] Freeheap: 36600
当前温度: 24.00 °C     当前湿度: 41.60 %
[330827] autoFormatData key: temp, json: "temp":{"date":1648526173,"val":24.00}
[330828] new.
[330828] autoFormatData key: humi, json: "humi":{"date":1648526173,"val":41.60}
[330832] add.
[330833] print: {"temp":{"date":1648526173,"val":24.00},"humi":{"date":1648526173,"val":41.60}}
[330841] Proto print...
[330844] Freeheap: 36240
[330846] WS response:
[330848] {"temp":{"date":1648526173,"val":24.00},"humi":{"date":1648526173,"val":41.60}}
[330856] Success...
[330859] Freeheap: 36600
实时数据上传终于摸索出来了,之前的blinker库删了,下载安装blinker-library-dev_3.0,根据例程修改代码,APP修改控件为实时的,就OK了,DHT22烧录代码以后要 重新上电才能读出来数值,跟手机APP实时同步了
发表于 2022-3-30 20:10 | 显示全部楼层
完美解决,6块买了个8266,上周末研究了一下午(中间经历了一箩筐困难)准备放弃时候,换了个DCDC供电完美解决下载问题,当初还一度怀疑时买了水货模块,测试一下范例程序摸索了两天,接着就想着用小度,天猫,小爱控制一下,就跑了的点灯科技这里来了,发现这里太多有用资料了,研究了两晚终于摸索出了点名目来了,今天刚刚做了个PCB,准备用手机控制8266然后通过串口发送给51实现控制多路灯光。现在blink基本研究出了点眉目了,完美实现要的功能。
QQ图片20220330200210.jpg
QQ图片20220330200229.jpg
QQ截图20220330201013.png
发表于 2022-4-5 20:06 | 显示全部楼层
返回不了“on”,“off”是为什么呀 指点要怎么做  APP这边要怎么设置  用的是下边这个程序
跳包与初始化UI
在blinker app上,点击设备图标进入设备控制页面时,app会向设备发送一个状态查询指令(心跳查询)
此后,WiFi设备,每59秒会返回一次心跳包;Ble设备,每29秒返回一次心跳包
状态查询指令,如下:

{"get":"state"}
默认状态下,WiFi接入设备会返回:

{"state":"online"}
BLE接入设备会返回:

{"state":"connected"}
blinker提供了改写心跳包内容的方法,使用此方法可将一些数据放置在心跳包中返回,该方法可用于数据同步、状态查询。

blinker设备设计原则之一:设备端不主动发送数据,一切反馈都是由客户端(APP)发起。这样设计可以节约服务器资源,避免浪费。

示例程序:

#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "Your Device Secret Key";
char ssid[] = "Your WiFi network SSID or name";
char pswd[] = "Your WiFi network WPA password or WEP key";
// 新建组件对象
BlinkerButton Button1("btn-abc");

// 按下按键即会执行该函数
void button1_callback(const String & state) {
    BLINKER_LOG("get button state: ", state);
}

// 心跳包函数
void heartbeat() {
    Button1.icon("fas fa-lightbulb");
    Button1.color("#fddb00");
    Button1.text("关灯","打开啦");
    Button1.print("on");
}

void setup() {
    // 初始化串口
    Serial.begin(115200);
    // 初始化有LED的IO
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, HIGH);
    // 初始化blinker
    Blinker.begin(auth, ssid, pswd);
    Button1.attach(button1_callback);
    //注册一个心跳包
    Blinker.attachHeartbeat(heartbeat);
}

void loop() {
    Blinker.run();
}

点评

认真阅读下本教程,写的有  详情 回复 发表于 2022-4-5 21:56
 楼主| 发表于 2022-4-5 21:56 | 显示全部楼层
阿飞7812 发表于 2022-4-5 20:06
返回不了“on”,“off”是为什么呀 指点要怎么做  APP这边要怎么设置  用的是下边这个程序
跳包与初始化UI ...

认真阅读下本教程,写的有
发表于 2022-4-14 11:17 | 显示全部楼层
使用esp8266+blinker显示MQ-2的烟雾浓度,但是数值一直是1023
发表于 2022-6-5 10:28 | 显示全部楼层
那个温湿度的一定要传感模块吗
发表于 2022-7-9 18:35 | 显示全部楼层
Arduino:1.8.19 (Windows 10), 开发板:"ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 115200, Core 1, Core 1, None"





















"WiFi.h" 对应多个库

已使用: C:\Users\木榆慕鱼\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.3\libraries\WiFi

未使用:C:\Users\木榆慕鱼\Downloads\arduino-1.8.19-windows\arduino-1.8.19\libraries\WiFi

In file included from C:\Users\ľ��Ľ��\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.cpp:15:

C:\Users\ľ��Ľ��\Documents\Arduino\libraries\DHT-sensor-library-master\DHT_U.h:36:10: fatal error: Adafruit_Sensor.h: No such file or directory

#include <Adafruit_Sensor.h>

          ^~~~~~~~~~~~~~~~~~~

compilation terminated.

exit status 1

为开发板 ESP32 Dev Module 编译时出错。



在文件 -> 首选项开启
“编译过程中显示详细输出”选项
这份报告会包含更多信息。
请问这个情况怎么解决
发表于 2022-7-10 00:08 | 显示全部楼层
奈何col 发表于 2021-3-11 00:27
DHT11/22的话,任意IO口均可

实测不能任意IO口,ESP32-WROOM-32E型号,其34-39号GPIO口都不能读取DHT11的数据

点评

我“任意”的意思是,不需要特殊功能支持。 esp8266、32不是每一个引脚都能直接使用,请看esp官方手册确认原因  详情 回复 发表于 2022-7-10 22:16
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 05:46 , Processed in 0.111698 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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