Mục lục:

Phích cắm thông minh có điều khiển nhiệt độ được kích hoạt WiFi: 4 bước
Phích cắm thông minh có điều khiển nhiệt độ được kích hoạt WiFi: 4 bước

Video: Phích cắm thông minh có điều khiển nhiệt độ được kích hoạt WiFi: 4 bước

Video: Phích cắm thông minh có điều khiển nhiệt độ được kích hoạt WiFi: 4 bước
Video: Hướng Dẫn Sử Dụng Ổ Cắm WIFI Đơn Rạng Đông, Điều Khiển Bằng WIFI Rạng Đông, 0966 234 744 2024, Tháng bảy
Anonim
Ổ cắm thông minh có điều khiển nhiệt độ được kích hoạt WiFi
Ổ cắm thông minh có điều khiển nhiệt độ được kích hoạt WiFi

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

Thiết lập phích cắm thông minh TP-LINK của bạn
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

Image
Image
Các bước cuối cùng
Các bước cuối cùng
Các bước cuối cùng
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: