查看: 846|回复: 2

[分享] SHTC3基于BLINKER的高精度温湿度记录

[复制链接]

该用户从未签到

发表于 2020-4-19 15:25 | 显示全部楼层 |阅读模式
首先我们要有温湿度模块SHTC3(数据是比DHT22精确而且便宜),然后有一块物联网开发板CH-340(8266的一种)一共20块吧
Arduino IDE(建议此论坛搜索最新版或者在Arduino官网下载最新版本:https://www.arduino.cc/)
1.2  安装blinker Arduino库(https://doc.blinker.app/?file=001-快速开始/02-esp8266-WiFi接入)
       下载.zip文件,解压缩到ARDUINO安装目录的“libraries”文件夹中。
1.3  安装SHTC3库(见附件
       下载.zip文件,解压缩到ARDUINO安装目录的“libraries”文件夹中。
1.4  安装ESP8266支持包(https://github.com/esp8266/Arduino/releases)
       下载.exe文件,双击自动安装就可以。
1.5  安装blinker APP(https://doc.blinker.app/?file=001-快速开始/02-esp8266-WiFi接入)

四、具体制作过程
1.连接
ch-340数据线插入电脑USB口(d1接scl,d2接sda,+接3v,—接G)
2.打开手机APP,添加DIY设备  arduino,WiFi接入,复制key,点开右上角的一个圈三个点点开界面配置删除里面的并复制下面界面配置进去储存
3.打开ide,将key复制到程序里替换
4打开附件文件夹SHTC3
5点击上传等待上传完成。

程序
#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR   //小爱同学定义为传感器设备
#include <Blinker.h>
#include "SparkFun_SHTC3.h"
char auth[] = "72290821bdd3";    //设备key
char ssid[] = "CMCC-QR9a";         //wifi ssid
char pswd[] = "un98pchd";     //wifi 密码

BlinkerNumber HUMI("humi");    //定义湿度数据键名
BlinkerNumber TEMP("temp");    //定义温度数据键名
SHTC3 mySHTC3;
float humi_read = 0, temp_read = 0;
void dataStorage()
{
    Blinker.dataStorage("temp", temp_read);
    Blinker.dataStorage("humi", humi_read);
}
void heartbeat()
{
    HUMI.print(humi_read);        //给blinkerapp回传湿度数据
    TEMP.print(temp_read);        //给blinkerapp回传温度数据
}

void miotQuery(int32_t queryCode)      //小爱同学语音命令反馈
{
    BLINKER_LOG("MIOT Query codes: ", queryCode);

            int humi_read_int=humi_read;     //去掉湿度浮点
            BlinkerMIOT.humi(humi_read_int);     //小爱接收湿度
            BlinkerMIOT.temp(temp_read);      //小爱接收温度
            BlinkerMIOT.print();

}
void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
    Blinker.begin(auth, ssid, pswd);   
    Blinker.attachHeartbeat(heartbeat);//数据上传
    Blinker.attachDataStorage(dataStorage);//图表上传
    Wire.begin();
    errorDecoder(mySHTC3.begin());
    BlinkerMIOT.attachQuery(miotQuery);//小爱
}

void loop()
{
    Blinker.run();
    float h = mySHTC3.toPercent();
    float t = mySHTC3.toDegC();
    if (isnan(h) || isnan(t))
    {
        BLINKER_LOG("无法读取DHT数据!");
    }
    else
    {
        BLINKER_LOG("Humidity: ", h, " %");
        BLINKER_LOG("Temperature: ", t, " *C");
        humi_read = h;
        temp_read = t;
    }
    SHTC3_Status_TypeDef result = mySHTC3.update();                                             
    Blinker.delay(2000);
}

void errorDecoder(SHTC3_Status_TypeDef message)                             
{
  switch(message)
  {
    case SHTC3_Status_Nominal : Serial.print("Nominal"); break;
    case SHTC3_Status_Error : Serial.print("Error"); break;
    case SHTC3_Status_CRC_Fail : Serial.print("CRC Fail"); break;
    default : Serial.print("Unknown return code"); break;
  }
}
配置文件
{¨config¨{¨headerColor¨¨transparent¨¨headerStyle¨¨light¨¨background¨{¨img¨¨assets/img/bg/2.jpg¨}}¨dashboard¨|{¨type¨¨num¨¨t0¨¨湿度¨¨ico¨¨fal fa-question¨¨clr¨¨#389BEE¨¨min¨É¨max¨¢1c¨uni¨´%´¨bg¨É¨cols¨Í¨rows¨Í¨key¨¨humi¨´x´É´y´Ð¨speech¨|÷¨lstyle¨Ë}{ß9ßAßB¨温度¨ßDßEßF¨#EA0909¨ßHÉßIº0ßJ´℃´ßKÉßLÍßMÍßN¨temp¨´x´Í´y´ÐßP|÷ßQË}{ß9¨deb¨¨mode¨ÉßKÉßLÑßMÍßN¨debug¨´x´É´y´¤CßP|÷ßQÊ}{ß9¨cha¨ßKɨsty¨¨line¨ßF¨#076EEF¨¨sty1¨ßZ¨clr1¨ßS¨sty2¨ßZ¨clr2¨ßGßLÑßMÍßNßO´x´É´y´ËßP|÷ßQÊßBßC¨key1¨ßT¨t1¨ßR}÷¨actions¨|¦¨cmd¨¦¨switch¨‡¨text¨‡¨on¨¨打开?name¨¨off¨¨关闭?name¨—÷¨triggers¨|{¨source¨ßj¨source_zh¨¨开关状态¨¨state¨|ßlßn÷¨state_zh¨|¨打开¨¨关闭¨÷}÷}

点这个

点这个

这个是界面

这个是界面
Screenshot_20200419_150343_iot.clz.me.jpg

这个是模块

这个是模块

这儿

这儿

这是模块接线方法看颜色

这是模块接线方法看颜色

这是传感器接线方法

这是传感器接线方法

SparkFun_SHTC3_Arduino_Library-master (1).zip

18.58 KB, 下载次数: 12

这个是库

SHTC3DIANDENG.zip

1.29 KB, 下载次数: 10

这个是程序解压到桌面运行

该用户从未签到

发表于 2020-10-25 16:42 | 显示全部楼层
按你的配置,点灯界面温度湿度显示整数,不带小数,咋回事呢?

该用户从未签到

发表于 2020-10-26 09:49 | 显示全部楼层
管脚怎么改,只能接D1,D2吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
arduino pid麦克纳姆轮小车程序详解
arduino pid麦克纳姆轮小
之前发过几个帖子,大家可以参考,但经过多次尝试,整套系统升级了,优化了很多地方目录:
稚晖大佬给抄袭了??
稚晖大佬给抄袭了??
今天逛淘宝突然看见个小板子叫夸克,夸克???开源的就是容易抄袭啊!下面贴上这家店
步进电机的frizing模块
步进电机的frizing模块
请问哪位大佬有frizing中步进电机的驱动器和限位开关,求带
关于给esp8266编程和给arduino编程的一些疑问
关于给esp8266编程和给ard
本人大一学生,目前正在做创新作业,已经进行到了最后一步:arduino从onenet上调取数
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表