基于Home Assistant 和ESP8266 arduino的实时室温检测

这篇博客介绍了如何利用ESP8266 arduino D1和s17021温湿度传感器创建一个实时室温检测系统。作者通过硬件连接,软件安装(包括HomeAssistant和mqtt),编写arduino代码,并在HomeAssistant的configuration.yaml中进行配置,实现了将数据展示在Home Assistant上。文章包含详细步骤、代码示例和最终效果的视频链接。
摘要由CSDN通过智能技术生成

前言

最近是真的热!

写完论文宅在家,想要做点什么缓解一些焦虑的心情。从之前大学寄回家至今没有拆开过的元件箱中找到了一个ESP8266 的arduino D1的板子以及一个s17021温湿度传感器,遂萌发做一个实时记录自己卧室温湿度的小作品,来记录家里是究竟多热~。

实验准备

ESP8266 arduino D1

s17021温湿度传感器

ubuntu一台(树莓派低功耗更好)

步骤

硬件连接

D15----SCL

D14---SDA

软件安装

ubuntu1604 + Homeassistant + mqtt

Homeassistant 安装

https://www.hachina.io/docs/355.html

注:安装Homeassistant的时候提示缺少什么就去sudo apt install 什么~

mqtt安装

https://www.jianshu.com/p/a13e888c93fb

代码与脚本

arduino 代码

/**
 * 订阅mqtt/cmd可以从hass获取指令控制板子上的led灯
 * 向mqtt/state发布on、off上传led等的状态
 * 向mqtt/temp发布环境温度
 * 向mqtt/humi发布环境湿度
 */
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include <Wire.h>

#define ADDRESS_SI7021 0x40

#define MEASURE_RH_HOLD 0xE5
#define READ_T_FROM_PRE_RH_MEASUREMENT 0xE0
byte buffer[] = {0, 0, 0};
byte crcHumi;
word outHumi = 0;
word outTemp = 0;
float valueHumi = 0;
float valueTemp = 0;

const char* ssid = "SSID";//你要让板子链接的WiFi的名字
const char* password = "..XXXXX..";//该WiFi的密码
const char* mqtt_server = "192.168.31.175";//mqtt服务器地址

WiFiClient espClient;
PubSubClient client(espClient);
long lastMsg = 0;
char msg[50];
int value = 0;

void setup_wifi() {

  delay(10);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, passw
  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值