Mục lục:
- Bước 1: Thêm mã vào ESP8266
- Bước 2: Thiết lập phích cắm thông minh TP-LINK của bạn
- Bước 3: Thiết lập Trợ lý Trang chủ
- Bước 4: Các bước cuối cùng
Video: Phích cắm thông minh có điều khiển nhiệt độ được kích hoạt WiFi: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:35
Trong tập hướng dẫn này, chúng ta sẽ xem xét cách tạo một đầu dò nhiệt độ hỗ trợ WiFi bằng cách sử dụng ESP8266 đơn giản cho việc nâng vật nặng và cảm biến nhiệt độ / độ ẩm DHT11. Chúng tôi cũng sẽ sử dụng bảng mạch mà tôi đã tạo và hiện cũng đang được bán trong cửa hàng tindie của kênh nếu bạn muốn mua.
Hãy bắt đầu với hóa đơn tài liệu bạn sẽ cần:
Mô-đun WiFi ESP8266
amzn.to/2pkGPoa
Cảm biến DHT11
amzn.to/2phwfhO
TP-Link Smart Plug
amzn.to/2GElQUz
Bạn cũng có thể lấy toàn bộ mô-đun tại cửa hàng tindie cho kênh:
www.tindie.com/products/misperry/wifi-enab…
Ngoài ra, hãy xem JLCPCB cho PCB Chế tạo. Họ là những người tôi đã từng làm PCB:
Giao hàng miễn phí cho đơn hàng đầu tiên & 2 đô la PCB Prototyping trên
Bước 1: Thêm mã vào ESP8266
Bây giờ chúng ta sẽ cần phải flash đoạn mã sau vào ESP8266. Bạn có thể tìm thấy mã này tại kho lưu trữ github sau:
Trong đoạn mã dưới đây, bạn sẽ chỉ phải thiết lập một số phần định nghĩa hàng đầu:
Máy chủ MQTT:
Người dùng MQTT:
Mật khẩu MQTT:
MQTT_sensor_topic:
-Wifi
Đã nói: mạng wifi bạn đang kết nối
Mật khẩu: mật khẩu WiFi.
Khi bạn đã điền thông tin này vào mã bên dưới, sau đó bạn có thể biên dịch và kiểm tra lỗi và nếu 0 lỗi, bạn có thể flash nó vào ESP8266.
/ * * Tên tệp: TempHumSensor.ino * * Ứng dụng: HomeAssistant Space Heater Thermostat * * Mô tả: Mã này dành cho thiết bị tương thích arduino * có hỗ trợ WiFi ESP8266. Thao tác này sẽ chuyển tiếp thông tin nhiệt độ * của thiết bị DHT11 tới giao diện người dùng HASS để xử lý. * * Tác giả: M. Sperry - https://www.youtube.com/misperry * Ngày: 03 / * Bản sửa đổi: 1.0 * * * /
#bao gồm
#include #include #include #include #include
#define CON_TIME_OUT 20 // Hết thời gian chờ không có kết nối với Wi-Fi
#define MQTT_TIME_OUT 10 // Hết thời gian chờ không có kết nối với máy chủ MQTT
#define DHTPIN 0 // Pin được kết nối với cảm biến DHT
#define DHTTYPE DHT11 // Loại cảm biến là DHT11, bạn có thể thay đổi thành DHT22 (AM2302), DHT21 (AM2301)
#define mqtt_server "" // Nhập IP hoặc trình bổ sung máy chủ MQTT của bạn. Tôi sử dụng địa chỉ DuckDNS của mình (yourname.duckdns.org) trong trường này
#define mqtt_user "" // nhập tên người dùng MQTT của bạn #define mqtt_password "" // nhập mật khẩu của bạn #define MQTT_SENSOR_TOPIC "ha / bed_temp" // Nhập chủ đề cho MQTT của bạn
// Wifi: SSID và mật khẩu
const char * ssid = ""; const char * password = "";
// DHT SEtup
DHT_Unified dht (DHTPIN, DHTTYPE); uint32_t delayMS;
WiFiClient wifiClient;
Máy khách PubSubClient (wifiClient);
// hàm được gọi để xuất bản nhiệt độ và độ ẩm
void xuất bảnData (float p_tempeosystem) {// tạo một đối tượng JSON // doc: https://github.com/bblanchon/ArduinoJson/wiki/API%20Reference StaticJsonBuffer jsonBuffer; JsonObject & root = jsonBuffer.createObject (); // THÔNG TIN: dữ liệu phải được chuyển đổi thành một chuỗi; sự cố xảy ra khi sử dụng float… // chuyển đổi thành fahrenheit p_tempether = (p_tempether * 1.8) + 32; // chuyển thành fahrenheit root ["nhiệt độ"] = (Chuỗi) p_tempether; root.prettyPrintTo (Nối tiếp); Serial.println ("");
dữ liệu char [200];
root.printTo (data, root.measureLength () + 1); client.publish (MQTT_SENSOR_TOPIC, data, true); }
// hàm được gọi khi có tin nhắn MQTT
void callback (char * p_topic, byte * p_payload, unsigned int p_length) {}
void kết nối lại () {
// Lặp lại cho đến khi chúng ta kết nối lại while (! Client.connected ()) {Serial.print ("INFO: Đang thử kết nối MQTT…"); // Cố gắng kết nối if (client.connect ("ESPBlindstl", mqtt_user, mqtt_password)) {Serial.println ("INFO: connect"); } else {Serial.print ("ERROR: fail, rc ="); Serial.print (client.state ()); Serial.println ("GỢI Ý: thử lại sau 5 giây"); // Chờ 5 giây trước khi thử lại delay (5000); }}}
thiết lập void (void) {
Serial.begin (9600);
// Chúng tôi bắt đầu bằng cách kết nối với mạng WiFi
Serial.println (); Serial.println (); Serial.print ("Đang kết nối với"); Serial.println (ssid);
WiFi.begin (ssid, mật khẩu);
trong khi (WiFi.status ()! = WL_CONNECTED) {
chậm trễ (800); Serial.print ("."); }
Serial.println ("");
Serial.println ("Đã kết nối WiFi"); Serial.println ("Địa chỉ IP:"); Serial.println (WiFi.localIP ()); // init kết nối MQTT client.setServer (mqtt_server, 1883); client.setCallback (gọi lại);
// Khởi tạo cảm biến DHT
dht.begin (); Serial.println ("Dữ liệu cảm biến hợp nhất DHT11");
// In chi tiết cảm biến nhiệt độ
cảm biến sensor_t; dht.tempentic (). getSensor (& cảm biến); Serial.println ("------------------------------------"); Serial.println ("Nhiệt độ"); Serial.print ("Cảm biến:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("ID duy nhất:"); Serial.println (sensor.sensor_id); Serial.print ("Giá trị tối đa:"); Serial.print (sensor.max_value); Serial.println ("* C"); Serial.print ("Giá trị nhỏ nhất:"); Serial.print (sensor.min_value); Serial.println ("* C"); Serial.print ("Độ phân giải:"); Serial.print (sensor.resolution); Serial.println ("* C"); Serial.println ("------------------------------------"); // In chi tiết cảm biến độ ẩm. dht.humidity (). getSensor (& cảm biến); Serial.println ("------------------------------------"); Serial.println ("Độ ẩm"); Serial.print ("Cảm biến:"); Serial.println (sensor.name); Serial.print ("Driver Ver:"); Serial.println (sensor.version); Serial.print ("ID duy nhất:"); Serial.println (sensor.sensor_id); Serial.print ("Giá trị tối đa:"); Serial.print (sensor.max_value); Serial.println ("%"); Serial.print ("Giá trị nhỏ nhất:"); Serial.print (sensor.min_value); Serial.println ("%"); Serial.print ("Độ phân giải:"); Serial.print (sensor.resolution); Serial.println ("%"); Serial.println ("------------------------------------");
// Đặt độ trễ giữa các lần đọc cảm biến dựa trên chi tiết cảm biến
delayMS = sensor.min_delay / 1000; }
vòng lặp void (void) {
nhiệt độ phao;
if (! client.connected ())
{kết nối lại (); }
sự chậm trễ (delayMS);
// Lấy sự kiện nhiệt độ và in giá trị của nó.
sự_kiện cảm_tác; dht.tempentic (). getEvent (& event); if (isnan (event.tempeosystem)) {Serial.println ("Lỗi khi đọc nhiệt độ!"); nhiệt độ = 0,00; } else {nhiệt độ = event.tempether; Serial.print ("Nhiệt độ:"); Serial.print (nhiệt độ); Serial.println ("* C"); } // xuất bản lên MQTT PublishingData (nhiệt độ); }
Bước 2: Thiết lập phích cắm thông minh TP-LINK của bạn
Bạn sẽ cần cài đặt phích cắm thông minh TP-LINK của mình hoặc bất kỳ phích cắm thông minh nào cho loại phích cắm đó theo cách mà nhà sản xuất đề xuất.
Đảm bảo ghi chú địa chỉ MAC trên thiết bị. Nếu thiết bị của bạn giống thiết bị TP-LINK của tôi, bạn không thể đặt địa chỉ IP tĩnh. Do đó, bạn sẽ cần phải cấu hình bộ định tuyến của mình cho DHCP Reservation. Thao tác này sẽ lấy địa chỉ MAC của thiết bị của bạn và khi thiết bị đó yêu cầu địa chỉ, bộ định tuyến sẽ cung cấp cho nó cùng một địa chỉ mọi lúc.
Đây là liên kết đến cách thiết lập điều này với Linksys
www.linksys.com/us/support-article?article…
Bước 3: Thiết lập Trợ lý Trang chủ
Bây giờ để thiết lập Trợ lý nhà. Đối với điều này, bạn sẽ cần thêm các cấu hình sau vào tệp config.yaml nằm trong cấu trúc thư mục /home/homeassistant/.homeassistant trên thiết bị bạn đã cài đặt nó.
Sau khi hoàn tất việc thêm phần mềm này vào cấu hình trợ lý tại nhà, bạn sẽ cần khởi động lại phần mềm trợ lý tại nhà để các thay đổi có hiệu lực.
Ngoài ra, tôi sẽ sử dụng phích cắm thông minh TP-LINK cho thiết bị chuyển mạch và định nghĩa ở bên dưới trong tệp cấu hình. Địa chỉ IP được sử dụng cho thiết bị là địa chỉ mà bạn đã thiết lập để đặt trước DHCP ở bước trước.
Bạn cũng có thể tìm thấy cấu hình này tại repo github sau:
mqtt: switch: - platform: tplink name: Phòng ngủ Máy sưởi chủ: 192.168.2.11
cảm biến 1:
platform: mqtt state_topic: 'ha / clinic_temp' name: Phòng ngủ Nhiệt độ unit_of_measurement: '° F' value_template: '{{value_json.tempeosystem}}'
tự động hóa:
- bí danh: _Mẫu phòng ngủ Nhiệt độ cao kích hoạt: - platform: numeric_state entity_id: sensor. Bedroom_Temp ở trên: 73
hoạt động:
service: homeassistant.turn_off entity_id: switch. Bedroom_Heater
- bí danh: _Nhiệt độ phòng ngủ thấp
trigger: - platform: numeric_state entity_id: sensor. Bedroom_Temp bên dưới: 73 action: service: homeassistant.turn_on entity_id: switch. Bedroom_Heater
Bước 4: Các bước cuối cùng
Bây giờ với cấu hình trợ lý tại nhà và mã Arduino của bạn đã được thiết lập, bạn sẽ sẵn sàng kích hoạt toàn bộ hệ thống. Do đó, hãy đặt phích cắm của lò sưởi / quạt / bộ làm mát vào phích cắm thông minh và cắm vào phích cắm thông minh. Khi nó đã sẵn sàng, bạn sẽ cần cắm một bộ sạc USB nhỏ và sau đó là đầu dò Nhiệt độ đã kích hoạt WiFi. Sau khi tất cả trực tuyến, bạn sẽ có thể nhìn vào bảng điều khiển trợ lý chính của mình và xem nhiệt độ mới được báo cáo.
Cảm ơn bạn rất nhiều vì tất cả sự giúp đỡ và hỗ trợ của bạn. hãy nhớ để lại một lượt thích và ghé thăm kênh tại https://www.youbue.com/misperry và xem tất cả những gì chúng tôi có cho bạn. Hãy nhớ đăng ký và chia sẻ với bạn bè để giúp ích cho kênh.
Đề xuất:
Ống LED bằng đá thủy tinh (WiFi được điều khiển thông qua ứng dụng điện thoại thông minh): 6 bước (có hình ảnh)
Ống LED bằng đá thủy tinh (Điều khiển WiFi thông qua ứng dụng điện thoại thông minh): Xin chào các nhà sản xuất! Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo một ống LED điều khiển bằng WiFi chứa đầy đá thủy tinh để có hiệu ứng khuếch tán đẹp mắt. Các đèn LED có thể định địa chỉ riêng và do đó có thể có một số hiệu ứng đẹp mắt trong
Treo tường cho IPad làm bảng điều khiển tự động hóa tại nhà, sử dụng nam châm điều khiển Servo để kích hoạt màn hình: 4 bước (có hình ảnh)
Giá treo tường cho iPad làm Bảng điều khiển tự động hóa tại nhà, Sử dụng Nam châm điều khiển Servo để Kích hoạt màn hình: Gần đây, tôi đã dành khá nhiều thời gian để tự động hóa mọi thứ trong và xung quanh nhà mình. Tôi đang sử dụng Domoticz làm ứng dụng Tự động hóa tại nhà của mình, hãy xem www.domoticz.com để biết thêm chi tiết. Trong tìm kiếm của tôi cho một ứng dụng bảng điều khiển hiển thị tất cả thông tin Domoticz
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: 5 bước
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: Đây là các hướng dẫn để tạo ô tô được điều khiển từ xa của riêng bạn, được điều khiển bằng bộ điều khiển Xbox 360 không dây
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước
ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Bộ điều khiển kỹ thuật số cho hệ thống treo khí bằng Arduino và Điều khiển từ xa trên điện thoại thông minh: 7 bước (có hình ảnh)
Bộ điều khiển kỹ thuật số cho hệ thống treo khí bằng Arduino và Điều khiển từ xa trên điện thoại thông minh: Xin chào tất cả mọi người. đây cũng là lần hướng dẫn đầu tiên của tôi nên gấu w