Mục lục:

Mạng trạm cảm biến để kiểm soát ánh sáng và an ninh: 5 bước (có hình ảnh)
Mạng trạm cảm biến để kiểm soát ánh sáng và an ninh: 5 bước (có hình ảnh)

Video: Mạng trạm cảm biến để kiểm soát ánh sáng và an ninh: 5 bước (có hình ảnh)

Video: Mạng trạm cảm biến để kiểm soát ánh sáng và an ninh: 5 bước (có hình ảnh)
Video: Tất tần tật về mạng INTERNET | Tri Thức Nhân Loại 2024, Tháng bảy
Anonim
Mạng lưới trạm cảm biến để kiểm soát ánh sáng và an ninh
Mạng lưới trạm cảm biến để kiểm soát ánh sáng và an ninh
Mạng lưới trạm cảm biến để kiểm soát ánh sáng và an ninh
Mạng lưới trạm cảm biến để kiểm soát ánh sáng và an ninh
Mạng lưới trạm cảm biến để kiểm soát ánh sáng và an ninh
Mạng lưới trạm cảm biến để kiểm soát ánh sáng và an ninh

Với mạng trạm cảm biến này được định cấu hình ở chế độ chính / phụ, bạn sẽ có thể thực hiện việc kiểm soát ánh sáng và an ninh trong nhà của mình. Các trạm cảm biến này (Node01, Node02 trong dự án này) được kết nối với một trạm chủ (Node00) được kết nối với mạng wifi cục bộ của bạn. Tôi đã cài đặt Node01 trong phòng lưu trữ của mình và Node02 trong ga ra điều khiển đèn và chuyển động của tôi. Trạm chính được cài đặt trong phòng bí mật của chúng tôi kết nối với bộ định tuyến wifi của chúng tôi. Tôi đã lắp đặt chuông trong nhà để xe và một chiếc còi nhỏ trong trạm chính để kêu khi một chuyển động được phát hiện bởi một số trạm cảm biến trong mạng.

Các tính năng chính của mạng là:

  • Có thể cấu hình mạng với nhiều hơn hai trạm cảm biến (trạm phụ) (Node01, Node02, Node03,….)
  • Bởi vì việc sử dụng các bộ thu phát không dây với ăng-ten, mạng có thể phủ sóng trên một khu vực rộng
  • Bạn có thể kiểm soát toàn bộ mạng từ điện thoại di động
  • Gửi email (tài khoản Gmail) khi phát hiện chuyển động và bật chế độ báo động. Vì vậy, nếu bạn bật thông báo đẩy của Gmail trong điện thoại di động của mình, bạn sẽ biết khi phát hiện thấy chuyển động trong mạng của mình

cho các mục đích domotic:

  • Bật đèn khi phát hiện một mô típ / luôn bật đèn (cho toàn mạng hoặc cho từng trạm phụ)
  • Thay đổi thời gian tính bằng phút đèn sáng sau khi phát hiện chuyển động cho mỗi trạm phụ

vì mục đích an ninh:

  • Bật và tắt chế độ báo thức
  • Mỗi trạm phụ có thể gửi tín hiệu đến một trạm chủ (Node00) khi bật chế độ cảnh báo và phát hiện chuyển động
  • Trạm chính có thể kích hoạt chuông và gửi email khi nhận được một trong những tín hiệu này từ bất kỳ trạm phụ nào và chế độ cảnh báo được bật. Trạm chủ (Node00) được kết nối internet bằng kết nối wifi để điều khiển toàn bộ hệ thống bằng điện thoại di động. Nó được cấu hình giống như một WifiWebServer

Bước 1: Danh sách nguyên liệu

Danh sách vật liệu
Danh sách vật liệu
Danh sách vật liệu
Danh sách vật liệu

Danh sách vật liệu tôi đã sử dụng để xây dựng Node01 và Node02 (các trạm phụ) như sau:

  • Bảng Mega 2560 R3
  • Hỗ trợ bằng nhựa cho MEGA 2560 R3
  • Cảm biến PIR HC-SR501
  • Giá đỡ bằng nhựa cho HC-SR501
  • Rơ le 5V
  • Mô-đun thu phát không dây 2.4G 1100m NRF24L01 + PA + LNA với Antenna LKY67
  • Bộ chuyển đổi 8Pin NRF24L01 (để cải thiện các tính năng của NRF24L01)
  • HLK-PM01 Nguồn điện AC DC 220V đến 5V Mini

Danh sách vật liệu để xây dựng Node00 (trạm chính) như sau:

  • Bảng Mega 2560 R3
  • Hỗ trợ bằng nhựa cho MEGA 2560 R3
  • Mô-đun WiFi NodeMCU Lua Amica V2 ESP8266
  • Mô-đun thu phát không dây 2.4G 1100m NRF24L01 + PA + LNA với Antenna LKY67
  • Bo mạch bộ chuyển đổi VCC 5v-3.3v cho NRF24L01 (để cải thiện các tính năng của NRF24L01)
  • Bộ chuyển đổi AC-DC, 9V, 1A (2, 1 mm x 5, 5 mm)

Hơn nữa, tôi đã sử dụng tài liệu sau:

  • Đầu nối hình nón 2 chân 5 mm PCB
  • Dây nhảy
  • Breadboard MB-102 (800 địa chỉ liên lạc)
  • Mini hàn Breadboard 170 địa chỉ liên lạc
  • Bộ đèn led và điện trở
  • Bảng PCB
  • Bộ sắt hàn thiếc
  • Súng bắn keo
  • Methacrylate trong suốt
  • chuông

Bước 2: Cách kết nối và lập trình Node01 và Node02 (Trạm Slave)

Cách kết nối và lập trình Node01 và Node02 (Trạm Slave)
Cách kết nối và lập trình Node01 và Node02 (Trạm Slave)
Cách kết nối và lập trình Node01 và Node02 (Trạm Slave)
Cách kết nối và lập trình Node01 và Node02 (Trạm Slave)

Để lập trình bản phác thảo "SlaveSation.ino", tôi cần thư viện RF24 và thư viện Mạng RF24.

Trong biểu đồ ở trên, bạn có thể thấy logic của trạm cảm biến và các thông điệp được trao đổi giữa trạm cảm biến phụ và trạm chính.

Trước khi tải bản phác thảo, bạn phải định cấu hình địa chỉ của nút phụ ở định dạng bát phân

const uint16_t this_node = 01; // Địa chỉ của nút của chúng ta ở định dạng bát phân (nô lệ): 01, 02, 03…

Ý nghĩa của các led trong mỗi trạm phụ như sau:

  • Đèn led xanh. Nó sẽ bật trong khi chân cảm biến PIR ở mức cao.
  • Đèn led xanh. Nó sẽ bật khi báo thức được kết nối.

Bước 3: Cách kết nối và lập trình Node00 (Master Station)

Cách kết nối và lập trình Node00 (Trạm chính)
Cách kết nối và lập trình Node00 (Trạm chính)
Cách kết nối và lập trình Node00 (Trạm chính)
Cách kết nối và lập trình Node00 (Trạm chính)
Cách kết nối và lập trình Node00 (Trạm chính)
Cách kết nối và lập trình Node00 (Trạm chính)

Trong trạm Node00, chúng ta có thể tìm thấy hai bảng khác nhau:

  • Bo mạch MEGA 2560 R3. Thiết bị này được sử dụng để nhận thông báo từ trạm nô lệ khi phát hiện chuyển động bằng giao tiếp không dây. Nó sẽ kích hoạt chuông khi phát hiện có chuyển động và báo động được kết nối. Để dừng chuông chỉ cần ngắt kết nối chế độ báo thức. Hơn nữa, nó gửi đến các thông báo trạm nô lệ từ NodeMCU để bật hoặc tắt tính năng phát hiện chuyển động, luôn bật đèn, luôn tắt đèn,…
  • Bo mạch NodeMCU Lua Amica V2 ESP8266. Nó hoạt động giống như một Máy chủ Web Wifi để truyền và nhận lệnh từ một nơi xa bằng cách sử dụng một trang Web trên điện thoại di động. Hơn nữa, gửi tin nhắn e-mail khi phát hiện chuyển động và chế độ báo động được bật.

Cả hai thiết bị đều được lập trình để giao tiếp với nhau trong cấu hình Master (NodeMCU) / Slave (MEGA) thông qua giao thức nối tiếp đồng bộ I2C sử dụng Thư viện dây. Giao thức I2C liên quan đến việc sử dụng hai đường để gửi và nhận dữ liệu: một chân đồng hồ nối tiếp (SCL) và một chân dữ liệu nối tiếp (SDA) mà dữ liệu được gửi giữa hai thiết bị.

Như bạn có thể thấy trong hình vẽ, hai chân cho giao tiếp I2C trong bảng MEGA 2560 R3 là:

  1. SDA -> chân 20 SDA
  2. SCL -> chân 21 SCL

và những cái khác trong NodemMCU là:

  1. SDA -> chân số 1
  2. SCL -> chân số 2

Trước khi tải bản phác thảo cho ESP8266, bạn phải cài đặt bo mạch ESP8266. Để làm điều đó, bạn phải nhập "https://arduino.esp8266.com/stable/package_esp8266com_index.json" vào "URL trình quản lý bảng bổ sung" trong cửa sổ tùy chọn trong Arduino IDE. Sau đó, bạn phải mở trình quản lý bảng và cài đặt "esp8266"

Tôi sử dụng bộ chuyển đổi nguồn điện bên ngoài (9V, 1A) cho bảng MEGA 2560 R3 (giắc cắm nguồn DC, 2, 1mm x 5, 5 mm) và tôi kết nối bảng NodeMCU với chân 3V3 trong bảng MEGA.

Bước 4: WifiWebServer (NodeMCU trong Master Station)

WifiWebServer (NodeMCU trong Master Station)
WifiWebServer (NodeMCU trong Master Station)
WifiWebServer (NodeMCU trong Master Station)
WifiWebServer (NodeMCU trong Master Station)

Bản phác thảo được tải vào NodeMCU (Node00 hoặc trạm chính) được cấu hình giống như một WebServer được kết nối với mạng wifi gia đình của bạn. Có thể truy cập từ xa nếu bạn định cấu hình chuyển tiếp cổng trong bộ định tuyến của mình.

Trước khi tải bản phác thảo WifiWebServerV3.ino vào NodeMCU, bạn phải làm như sau:

  1. Cập nhật cổng mà bạn định cấu hình trong bộ định tuyến của mình (chuyển tiếp cổng) để truy cập từ xa vào NodeMCU
  2. Cập nhật người dùng và mật khẩu để truy cập vào mạng wifi gia đình của bạn
  3. Cập nhật thông tin đăng nhập và mật khẩu của tài khoản Gmail của bạn để gửi e-mail khi phát hiện chuyển động và báo động được kết nối
  4. Cập nhật địa chỉ e-mail nơi bạn sẽ nhận được e-mail

Để cập nhật người dùng, mật khẩu và cổng mà máy chủ sẽ sử dụng để nghe, bạn phải tìm kiếm mã sau trong bản phác thảo WifiWebServerV3.ino và cập nhật nó:

const char * ssid = "*** ssid *** của bạn";

const char * password = "*** mật khẩu của bạn ***"; Máy chủ WiFiServer (80);

Để cập nhật địa chỉ e-mail nơi bạn sẽ nhận được e-mail, bạn phải tìm kiếm mã sau và cập nhật nó:

const char * to_email = "*** địa chỉ e-mail nơi bạn sẽ nhận được tin nhắn ***";

Để cập nhật người dùng và mật khẩu của tài khoản Gmail của bạn để nhận e-mail, bạn phải tìm kiếm mã sau trong tệp "Gsender.h" và cập nhật nó:

const char * EMAILBASE64_LOGIN = "*** địa chỉ e-mail của bạn mã hóa thành BASE64 ***";

const char * EMAILBASE64_PASSWORD = "*** mã hóa mật khẩu của bạn bằng BASE64 ***"; const char * FROM = "*** địa chỉ e-mail của bạn ***";

Để mã hóa hoặc giải mã dữ liệu trong BASE64, tôi đã sử dụng www.base64encode.org

Nếu bạn cần thêm thông tin về cách gửi và nhận e-mail với ESP8266, có một phần "Có thể hướng dẫn" về nó ở đây

Sau khi làm được, bạn có thể kiểm tra kết nối trong bộ định tuyến của mình. Nếu thiết bị được kết nối, bạn phải đặt trước địa chỉ IP được chỉ định cho thiết bị này. Hơn nữa, bạn nên trao đổi với nhà cung cấp dịch vụ Internet để đặt địa chỉ IP tĩnh trên bộ định tuyến của mình.

Để truy cập trang web gần bộ định tuyến wifi của bạn, chỉ cần nhập địa chỉ IP cục bộ được bộ định tuyến của bạn chỉ định theo cổng bạn đang sử dụng trong trình điều hướng web. Ví dụ: 192.168.40.15:800. Nếu bạn cố gắng truy cập từ xa, bạn phải nhập địa chỉ IP của bộ định tuyến theo cổng bạn đang sử dụng như trên.

Trang web mà tôi cho bạn thấy trong hình ảnh được lập trình để điều khiển một mạng có hai trạm phụ.

Hệ thống ban đầu được cấu hình để kiểm soát tối đa 5 trạm phụ, nhưng bạn có thể sửa đổi nó. Chỉ cần tìm kiếm mã sau trong WifiWebServerV3.ino và SlaveStation.ino

#define number_max_slaves 5

Ban đầu trang web được chia thành 4 phần:

  1. Phần "Trạng thái" nơi nó hiển thị cho bạn nếu báo thức được kết nối hay không
  2. Phần "Bộ đếm cảnh báo" nơi nó hiển thị cho bạn số lượng phát hiện chuyển động trong mỗi trạm phụ
  3. Mục "Báo thức" nơi bạn có thể kết nối hoặc ngắt kết nối (KẾT NỐI ALARM / NGẮT KẾT NỐI) báo thức và đặt lại bộ đếm báo thức (ĐẶT LẠI BỘ ĐẾM CẢM BIẾN)
  4. Mục "Chiếu sáng" nơi bạn có thể điều khiển đèn của từng trạm phụ. Bạn có thể kiểm soát những điều sau:

    • Bật đèn ở tất cả các trạm phụ / chỉ bật đèn khi phát hiện chuyển động trong tất cả các trạm phụ (MẠNG LUÔN BẬT / MẠNG KHI CHUYỂN ĐỘNG)
    • Thay đổi thời gian tính bằng phút đèn sáng cho mỗi trạm phụ (NODExx TRÊN 1 PHÚT / NODEXX TRÊN 2 PHÚT)
    • Bật đèn cho từng trạm phụ (NODExx LUÔN BẬT)
    • Chỉ bật đèn cho mỗi trạm phụ khi phát hiện thấy chuyển động (NODExx_MOV)

Bạn không phải thay đổi bất cứ điều gì vì nó sẽ hoạt động bất kể tên của các trạm nô lệ mà bạn định cấu hình. Hơn nữa nó sẽ tự động phát hiện số lượng trạm phụ được kết nối trong mạng.

Tất nhiên, bạn có thể tải xuống bản phác thảo và dễ dàng sửa đổi mã cần thiết để hiển thị trang điều khiển web của riêng bạn.

Bước 5: Từ đầu…

Dưới đây là các bước bạn phải làm theo để xây dựng mạng của mình:

  1. Mua tất cả các tài liệu theo danh sách tôi cung cấp cho bạn trong "Bước 1"
  2. Kết nối các thành phần sau bản vẽ mà bạn có thể tải xuống trong "Bước 2" và "Bước 3"
  3. Xây dựng các hộp cho mỗi trạm phụ và trạm chủ. Tôi đã xây dựng các hộp methacrylate.
  4. Định cấu hình từng trạm phụ:

    Tải xuống và tải bản phác thảo "SlaveStation.ino" trong một bảng MEGA 2560 R3. Bạn chỉ phải chỉnh sửa bản phác thảo và cập nhật địa chỉ của trạm phụ như bạn có thể thấy trong "Bước 2"

  5. Định cấu hình trạm chính:

    • Tải xuống và tải bản phác thảo "SlaveStation.ino" trong một MEGA 2560 R3. Bạn không phải thay đổi bất cứ điều gì bất kể số lượng nút nô lệ trong mạng của bạn. Ban đầu bản phác thảo được cấu hình cho tối đa 5 trạm phụ.
    • Tải xuống và tải bản phác thảo "WifiServerV3.ino" trong NodeMCU. Bạn phải cập nhật bản phác thảo theo hướng dẫn trong "Bước 4"
  6. Định cấu hình bộ định tuyến của bạn để truy cập từ xa vào NodeMCU (chuyển tiếp cổng, IP tĩnh…)

Đề xuất: