Mục lục:

Điều khiển từ xa và giám sát hình ảnh qua MQTT: 8 bước
Điều khiển từ xa và giám sát hình ảnh qua MQTT: 8 bước

Video: Điều khiển từ xa và giám sát hình ảnh qua MQTT: 8 bước

Video: Điều khiển từ xa và giám sát hình ảnh qua MQTT: 8 bước
Video: KẾT NỐI VỚI MQTT SỬ DỤNG ESP8266/ESP32 - P1 2024, Tháng mười một
Anonim
Điều khiển từ xa và giám sát hình ảnh qua MQTT
Điều khiển từ xa và giám sát hình ảnh qua MQTT

Xin chào.

Hôm nay tôi muốn nói về cách tạo ra một hệ thống điều khiển và giám sát từ xa có thể được sử dụng, ví dụ, để điều khiển cửa ga ra, hệ thống chiếu sáng, hệ thống sưởi, điều khiển áp suất, nhiệt độ và nhiều thông số khác. Nhưng tính năng chính của hệ thống này là bạn có thể nhận ảnh từ xa từ một đối tượng từ xa. Trước khi bạn bắt đầu câu chuyện, một lời nói đầu ngắn Một khi tôi muốn tạo một hệ thống giám sát hình ảnh bằng cách sử dụng bảng Arduino M0-SD tương thích, một máy ảnh VC0706 và một tấm chắn 3G / GPRS / GSM / GPS cho Arduino. Bo mạch tương thích Arduino M0-SD được chọn từ các điều kiện rất dễ lập trình (giống như Arduino UNO), điện áp hoạt động là 3.3V - điều này rất thuận tiện để làm việc với máy ảnh VC0706, một lượng lớn ROM và RAM, một số cổng UART, một cổng ảo riêng biệt của USB, nhưng ưu điểm chính là sự hiện diện của đầu nối micro SD trực tiếp trên bo mạch (Rất thuận tiện để lưu trữ lượng lớn dữ liệu, chẳng hạn như hình ảnh).

Tấm chắn 3G / GPRS / GSM / GPS cho Arduino rất thuận tiện để sử dụng với bo mạch Arduino M0-SD tương thích. Có một số thư viện trên Internet, cũng như nhiều ví dụ để làm việc với lá chắn này. Tốc độ truyền dữ liệu (3G) cao hơn nhiều so với các tấm chắn GPRS thông thường (đặc biệt thuận tiện cho việc truyền hình ảnh). Tính sẵn có của mô-đun GPS là một lợi thế bổ sung.

Tôi đã chọn giá cước thấp từ một nhà khai thác mạng di động để truyền dữ liệu (ảnh) qua Internet. Nhưng câu hỏi đặt ra: làm thế nào để chuyển dữ liệu? MMS? FTP? Làm thế nào để nhận được thông báo về việc nhận được dữ liệu (ảnh)? Kết quả là tôi đã đi đến quyết định gửi dữ liệu (ảnh) đến e-mail và xem thư thông qua ứng dụng được cài đặt trên điện thoại di động. Hóa ra là rất tiện lợi!:-) Dự án đã hoàn thành có thể được xem tại liên kết này.

Cũng có một dự án tương tự cho Arduino UNO bằng cách tham khảo.

Sau đó, tôi quyết định mở rộng chức năng của thiết bị của mình. Ví dụ, thêm khả năng điều khiển đèn LED (mặc dù trong thực tế, khả năng còn rộng hơn nhiều). E-mail cho điều này không phải là rất phù hợp. Tùy chọn SMS là tốn kém và không thoải mái. Và sau đó tôi biết đến MQTT. Tôi sẽ không mô tả anh ta là gì. Hãy để tôi chỉ nói: Đây là một điều thực sự tuyệt vời!:-) Với sự trợ giúp của MQTT, bạn không chỉ có thể trao đổi tin nhắn mà còn có thể trao đổi tệp nhị phân (hình ảnh). Trong ứng dụng dành cho điện thoại, bạn có thể dễ dàng tạo giao diện cho riêng mình.

Tôi đã tìm kiếm các ví dụ về việc triển khai giao thức MQTT cho tấm chắn 3G / GPRS / GSM / GPS (SIM5320) của mình và rất tiếc, không tìm thấy cách triển khai mà tôi cần. Nhưng điều đó không để tôi yên. Tôi quyết định triển khai độc lập các chức năng cần thiết. Do đó, tôi đã quản lý để tạo một thiết bị được điều khiển (được chỉ báo bằng ba đèn LED) qua MQTT từ một ứng dụng được cài đặt trên điện thoại di động và cũng gửi ảnh đến điện thoại theo lệnh từ điện thoại. (Tôi sẽ cho bạn biết một bí mật mà tôi chưa từng thấy bất kỳ ví dụ nào về việc gửi hình ảnh thông qua nhà môi giới MQTT trước đây và đã làm điều đó lần đầu tiên. Và khi tôi chuyển được bức ảnh đầu tiên, tôi vô cùng hạnh phúc!:-)) Và vì vậy, tôi đề xuất đi thẳng đến bước đầu tiên - một danh sách các thành phần cần thiết.

Bước 1: Danh sách các thành phần

Danh sách các thành phần
Danh sách các thành phần
Danh sách các thành phần
Danh sách các thành phần
Danh sách các thành phần
Danh sách các thành phần
Danh sách các thành phần
Danh sách các thành phần

Chúng tôi cần các thành phần tiếp theo:

1) Tương thích với Arduino M0-SD.

2) TTL-camera VC0706.

3) Tấm chắn 3G / GPRS / GSM / GPS cho Arduino.

4) Đèn LED đỏ, xanh lá cây, vàng, 3 điện trở (100-500 Ohm), dây dẫn, đầu nối góc chân cắm với bước sóng 2,54 mm.

5) Bộ đổi nguồn AC-DC (6V 1A), ăng ten 3G, v.v.

Bước 2: Chuẩn bị máy ảnh

Chuẩn bị máy ảnh
Chuẩn bị máy ảnh
Chuẩn bị máy ảnh
Chuẩn bị máy ảnh
Chuẩn bị máy ảnh
Chuẩn bị máy ảnh

Máy ảnh có đầu ra RS-232 để kết nối trực tiếp với PC. Cần phải tháo MAX232 (bộ chuyển đổi RS-232) và đóng các miếng đệm tiếp xúc giữa các chân tương ứng 7-10 (TX), 8-9 (RX).

Cáp sáu dây đi kèm với máy ảnh cần được làm lại một chút:

  • Tháo hai dây ra khỏi đầu nối.
  • Sắp xếp lại dây màu đỏ (+ 5V) và màu đen (GND) như trong hình.

Trên các đầu trần của dây phải được hàn các khuyên giống như "cái".

Bước 3: Chuẩn bị Arduino M0-SD tương thích

Chuẩn bị Arduino M0-SD tương thích
Chuẩn bị Arduino M0-SD tương thích
Chuẩn bị Arduino M0-SD tương thích
Chuẩn bị Arduino M0-SD tương thích
Chuẩn bị Arduino M0-SD tương thích
Chuẩn bị Arduino M0-SD tương thích

Như đã đề cập, Arduino M0-SD tương thích là phần cứng và phần mềm tương thích với Arduino M0 gốc, nhưng nó cũng có đầu nối microSD tích hợp để kết nối thẻ nhớ.

Để kết nối máy ảnh với Arduino M0-SD tương thích trên bo mạch, cần hàn đầu nối góc với các đầu cuối TXD, RXD (đầu nối X6) như trong hình. Cổng này khớp với "Serial".

Dây màu trắng (Máy ảnh RX) và màu vàng (Máy ảnh TX) từ máy ảnh phải được kết nối tương ứng với các đầu nối của TXD và RXD (đầu nối X6) như trong hình.

Bước 4: Chuẩn bị 3G / GPRS / GSM / GPS Shield SIM5320

Chuẩn bị 3G / GPRS / GSM / GPS Shield SIM5320
Chuẩn bị 3G / GPRS / GSM / GPS Shield SIM5320
Chuẩn bị 3G / GPRS / GSM / GPS Shield SIM5320
Chuẩn bị 3G / GPRS / GSM / GPS Shield SIM5320
Chuẩn bị 3G / GPRS / GSM / GPS Shield SIM5320
Chuẩn bị 3G / GPRS / GSM / GPS Shield SIM5320

Trước khi lắp thẻ sim vào khe cắm, bạn phải tắt yêu cầu mã PIN. Sau đó, lắp thẻ SIM vào khe ở phía dưới cùng của bo mạch như trong hình. Hai jumper phải được lắp ở vị trí RX-1 (D1), TX-0 (D0).

Bước 5: Lắp ráp phần cứng

Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng

Lắp ráp phần cứng bao gồm một số hoạt động đơn giản:

  • Để điều khiển đèn LED, trước tiên bạn cần hàn một thiết kế nhỏ của đèn LED và điện trở hạn chế dòng điện (100-500 Ohm) như trong hình. Chú ý đến cực của đèn LED - cực dương phải được hàn vào các điện trở (+). Để giảm độ phơi sáng ký sinh của đèn LED, tôi đã tạo một màn hình đen từ các tấm bìa cứng thông thường.
  • СKết nối các đèn LED và máy ảnh với bảng Arduino M0-SD tương thích như trong sơ đồ. Nguồn điện của máy ảnh (dây đỏ "+ 5V" và dây đen "GND") phải được lấy từ các đầu nối "+ 5V" và "GND" từ khe cắm. Bạn cũng có thể sử dụng một đầu nối góc cho việc này.
  • Sau đó, kết nối tấm chắn 3G / GPRS / GSM / GPS với bo mạch Arduino M0-SD tương thích. Đừng quên kết nối một ăng-ten 3G.

Bước 6: Thiết lập MQTT Broker

Đặt nhà môi giới MQTT
Đặt nhà môi giới MQTT
Đặt nhà môi giới MQTT
Đặt nhà môi giới MQTT
Đặt nhà môi giới MQTT
Đặt nhà môi giới MQTT

Tôi đã chọn một www.cloudmqtt.com rất tiện lợi và rõ ràng làm nhà môi giới MQTT. Nó cung cấp thử nghiệm miễn phí. Nó cũng có thể nhận và gửi tin nhắn trực tiếp trên trang web.

Quy trình thiết lập như sau:

  1. Đăng ký trực tuyến.
  2. Nhấn nút "Tạo phiên bản mới".
  3. Đặt tên, ví dụ "MqttCamera".
  4. Nhấn nút "Chọn khu vực". Ví dụ: chọn "US-East-1 (Northern Virginia)".
  5. Nhấn nút "Xem lại".
  6. Nhấn nút "Tạo phiên bản". Xem thông báo "Phiên bản được tạo thành công".
  7. Nhấp vào "MqttCamera".
  8. Ghi nhớ thông tin: Máy chủ, Người dùng, Mật khẩu, Cổng, Khóa API (Chúng ta sẽ cần ở bước thứ 7 và 8).
  9. Sau đó, bạn có thể chuyển đến cửa sổ "WEBSOCKET UI", nơi bạn có thể kiểm tra và gỡ lỗi, xem và gửi tin nhắn (Chúng tôi sẽ cần cửa sổ này trong bước tiếp theo).

Bước 7: Ứng dụng MQTT Dash

Ứng dụng Dash MQTT
Ứng dụng Dash MQTT
Ứng dụng Dash MQTT
Ứng dụng Dash MQTT
Ứng dụng Dash MQTT
Ứng dụng Dash MQTT

Để tạo bảng điều khiển trong điện thoại di động, tôi đã chọn một ứng dụng MQTT Dash rất thân thiện và rõ ràng.

Cài đặt ứng dụng MQTT Dash trên điện thoại của bạn và thực hiện các cài đặt sau:

  1. Mở ứng dụng.
  2. Trong cửa sổ gạch ngang MQTT, nhấp vào (+) để thêm bảng điều khiển mới.
  3. Trong cửa sổ xuất hiện, điền vào các trường bắt buộc, chẳng hạn như: Tên (ví dụ: MqttCamera), Địa chỉ, Cổng, Tên người dùng, Mật khẩu người dùng (Lấy dữ liệu từ bước 6).
  4. Sau khi điền vào các trường, nhấp vào biểu tượng đĩa (thao tác "Lưu").
  5. Trong cửa sổ có danh sách bảng điều khiển, nhấp vào dòng xuất hiện "MqttCamera".
  6. Trong cửa sổ bảng điều khiển mở ra, hãy nhấp vào biểu tượng mũi tên để tải các chỉ số.
  7. Sau đó, trong cửa sổ bật lên, nhấp vào nút "ĐĂNG KÝ VÀ CHỜ ĐỢT KIM LOẠI".
  8. Trên máy tính cá nhân, mở tài khoản trong nhà môi giới MQTT (xem bước trước), mở cửa sổ "Giao diện người dùng WEBSOCKET", đặt chủ đề "số liệu / trao đổi" trong cửa sổ "Gửi tin nhắn" và ghi lại văn bản từ đính kèm tệp metrics.txt trong cửa sổ "Tin nhắn", nhấp vào nút "Gửi".
  9. Chờ 10 giây, đảm bảo rằng số liệu được nhận trong điện thoại và bảng điều khiển được cập nhật.

Sau đó, bạn có thể tiến hành lập trình Arduino M0-SD tương thích.

Bước 8: Lập trình và làm việc

Lập trình và Công việc
Lập trình và Công việc
Lập trình và Công việc
Lập trình và Công việc
Lập trình và Công việc
Lập trình và Công việc
Lập trình và Công việc
Lập trình và Công việc

Trước khi lập trình Arduino M0-SD tương thích, bạn cần cài đặt trên máy tính tất cả các thư viện cần thiết (pubsubclient-master, TinyGSM-master) mà tôi đã trích dẫn bên dưới. Các thư viện này đã được sửa đổi một chút để hoạt động với bo mạch Arduino M0-SD tương thích, máy ảnh VC0706 và tấm chắn 3G / GPRS / GSM / GPS SIM5320.

Bạn cần kết nối cáp và nguồn điện (6V 1A để cấp nguồn cho tấm chắn 3G / GPRS / GSM / GPS) với Arduino M0-SD tương thích.

Khởi động Arduino IDE. Trong Arduino IDE cần chọn: Công cụ-> Bảng: Arduino M0 Pro (Cổng USB gốc).

Mở MqttCamera.ino phác thảo. Điền vào các trường: Tên người dùng, Mật khẩu người dùng, Khóa API, Cổng, Máy chủ (Lấy dữ liệu từ bước 6).

Mở cửa sổ Serial Monitor.

Tải lên bản phác thảo. Tôi không mô tả chi tiết quy trình lập trình (có đủ hướng dẫn trên Internet).

Sau khi tải thành công và lắp ráp đúng cách, thông tin sau sẽ xuất hiện trong cửa sổ Serial Monitor:

Máy ảnh VC0706 + Arduino M0 + SIM5320 + MQTT

Máy ảnh init… phiên bản: ----------------- VC0703 1.00 Thông báo Ctrl tồn tại Cảm biến do người dùng xác định 525 ----------------- thành công ! Đang khởi tạo modem… Modem: AT + CGMM SIMCOM_SIM5320E Đang chờ mạng… OK Kết nối với internet OK Kết nối với 3.83.68.228 không thành công Kết nối với 3.83.68.228 OK Ping: 0

Dòng "Ping: XX" là thông báo định kỳ từ Arduino M0-SD tương thích tới máy chủ. Thay vì thông tin này, bạn có thể gửi các phép đo ADC, trạng thái đầu vào, v.v.

Trong ứng dụng MQTT Dash, nhấp vào biểu tượng của bóng đèn (LED_YELLOW, LED_GREEN, LED_RED) - bật / tắt. Nhìn vào cửa sổ của màn hình nối tiếp - sẽ có thông tin về một cái gì đó như sau:

LED_YELLOW Bật

LED_YELLOW_Off LED_GREEN Bật LED_GREEN tắt LED_RED Bật LED_RED Tắt

Bấm vào biểu tượng máy ảnh - gửi lệnh "CHỤP" và đợi một lúc. Thông tin sau sẽ xuất hiện trong cửa sổ Serial Monitor:

Bắt đầu bắn!

Hình ảnh đã chụp! tạo IMAGE332.jpg đợi để tìm nạp hình ảnh 3488 byte… Xong! Mất 1456 ms Gửi ảnh (3488 byte)… xong!

Và sau một lúc (5-10 giây) trong cửa sổ "XEM ẢNH" sẽ hiển thị ảnh.

Đối với phần trình diễn, tôi đã hướng camera VC0706 đến các đèn LED để bạn có thể thấy trạng thái của chúng sau khi tôi chuyển đổi chúng theo cách tùy ý. Nhưng khi sử dụng thực tế, bạn có thể hướng camera vào phòng, cửa ra vào, đường phố, cổng, xe hơi, v.v. (Tất nhiên, bạn phải tính đến các yêu cầu của luật). điện thoại di động, nơi hiển thị trạng thái thực tế và cài đặt của đèn LED.

Tôi hy vọng hướng dẫn của tôi là thú vị và hữu ích cho bạn. Tôi sẽ rất vui trước phản hồi và nhận xét của bạn. Trong kế hoạch phát triển thiết bị của tôi và chia sẻ với bạn những cải tiến mới. Cảm ơn đã xem!

Đề xuất: