
专业版
智能便携体温计
863
0
0
0
简介
基于 ESP8266 模组设计,管脚全部引出,支持 Arduino IDE 编程,支持WiFi蓝牙连接和通信,是实现物联网产品开发验证和应用设计的好帮手。
简介:基于 ESP8266 模组设计,管脚全部引出,支持 Arduino IDE 编程,支持WiFi蓝牙连接和通信,是实现物联网产品开发验证和应用设计的好帮手。复刻成本:¥100
开源协议
:GPL 3.0
创建时间:2025-03-14 17:15:59更新时间:2025-04-20 13:40:37
描述
智能便携体温计
设计功能包括
- GPIO 排针引出,
- 支持 Arduino IDE 编程,
- 支持WiFi蓝牙连接和通信,
- 实现物联网产品开发快速验证、应用设计
- ……
产品外观
3D 渲染图
外壳
3D 外壳文件见附件。
实物图片
外壳
--------- 2025年3月30日更新 -----------
1.侧边按键板框优化为微凹设计,提升美感和按压手感;
2.优化全铺铜为 45° 网格,(线宽10mil, 间隔10mil),提升手感与抗干扰性能;
========== 2025年4月11日 =================
1.新增功能描述;
采集 DHT11 温湿度数据并通过 MQTT 联网上传至 Home Assistant 智能家居平台;
----------------------------------
Arduino 代码
#include
#include
#include
#include
// WiFi Configuration
const char* ssid = "xxx";
const char* password = "xxx";
// MQTT Configuration
const char* mqtt_server = "192.168.1.121";
const int mqtt_port = 1883;
const char* mqtt_user = "admin";
const char* mqtt_password = "admin";
// Device Configuration
const char* device_name = "esp8266_dht11";
const char* device_id = "livingroom_sensor";
// Topics
const char* state_topic = "home/sensor/";
const char* temp_config_topic = "home/sensor/";
const char* hum_config_topic = "home/sensor/";
// DHT Sensor
#define DHTPIN 5
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
WiFiClient espClient;
PubSubClient client(espClient);
void setup_wifi() {
delay(10);
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void reconnect() {
while (!client.connected()) {
Serial.print("Attempting MQTT connection...");
if (client.connect(device_name, mqtt_user, mqtt_password)) {
Serial.println("connected");
// Send Home Assistant auto-discovery config
sendAutoDiscoveryConfig();
} else {
Serial.print("failed, rc=");
Serial.print(client.state());
Serial.println(" try again in 5 seconds");
delay(5000);
}
}
}
void sendAutoDiscoveryConfig() {
// Configuration for temperature sensor
DynamicJsonDocument temp_config(512);
temp_config["name"] = "Living Room Temperature";
temp_config["device_class"] = "temperature";
temp_config["state_topic"] = state_topic;
temp_config["unit_of_measurement"] = "°C";
temp_config["value_template"] = "{{ value_json.temperature }}";
temp_config["unique_id"] = String(device_id) + "_temperature";
temp_config["device"]["identifiers"] = device_id;
temp_config["device"]["name"] = "Living Room Sensor";
temp_config["device"]["manufacturer"] = "DIY";
temp_config["device"]["model"] = "ESP8266+DHT11";
char temp_config_message[512];
serializeJson(temp_config, temp_config_message);
client.publish(temp_config_topic, temp_config_message, true);
// Configuration for humidity sensor
DynamicJsonDocument hum_config(512);
hum_config["name"] = "Living Room Humidity";
hum_config["device_class"] = "humidity";
hum_config["state_topic"] = state_topic;
hum_config["unit_of_measurement"] = "%";
hum_config["value_template"] = "{{ value_json.humidity }}";
hum_config["unique_id"] = String(device_id) + "_humidity";
hum_config["device"] = temp_config["device"]; // Same device info
char hum_config_message[512];
serializeJson(hum_config, hum_config_message);
client.publish(hum_config_topic, hum_config_message, true);
}
void setup() {
Serial.begin(115200);
dht.begin();
setup_wifi();
client.setServer(mqtt_server, mqtt_port);
}
void loop() {
if (!client.connected()) {
reconnect();
}
client.loop();
delay(2000); // Wait between measurements
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Create JSON payload
DynamicJsonDocument doc(256);
doc["temperature"] = t;
doc["humidity"] = h;
char json_string[256];
serializeJson(doc, json_string);
Serial.print("Publishing: ");
Serial.println(json_string);
client.publish(state_topic, json_string, true);
}
固件烧录
- Type-C 数据线连接开发板和电脑,按住 BOOT 键的同时,短按 RST 键,进入下载模式;
- Arduino IDE 构建工程 - 选择目标串口对应的端口号 - 上传工程
YAML 文件
home assistant 配置文件添加如下代码
mqtt:
sensor:
- name: "Temperature"
state_topic: "home/sensor/"
suggested_display_precision: 2
unit_of_measurement: "C"
value_template: "{{ value_json.temperature }}"
- name: "Humidity"
state_topic: "home/sensor/"
suggested_display_precision: 2
unit_of_measurement: "%"
value_template: "{{ value_json.humidity }}"
效果
========== 2025年4月20日更新 ==============
- 新增 DS18B20 模块 IIC 四引脚接口设计;
- 固件更新,支持 MQTT 数据上传,Home Assistant实时监测,同时 OLED 显示;
代码见附件;
测试效果见视频。
设计图

BOM


添加到专辑
0
0
分享
侵权投诉
评论