Цель: трейлер, размещенный в удаленном месте, нуждается в контроле доступа и видеомониторинге через точку доступа сотовой связи, сопровождаемом уведомлениями в реальном времени и изображениями активности, происходящей внутри и вокруг трейлера.

Основным приоритетом проекта была установка облачной коммерческой системы контроля доступа, а также камер IP-видеонаблюдения, которые записывают данные на ПК, расположенный в трейлере. Этого было легко добиться, но чтобы ограничить полосу пропускания, используемую для наблюдения за камерами и получения уведомлений, было реализовано специальное решение.

Пико ПЛК

Первоначально я рассматривал возможность использования стандартного ПЛК для этого проекта, но решил, что это будет слишком дорого. Вместо этого я решил попробовать использовать микроконтроллер Raspberry Pi Pico, отсюда и название, которое я выбрал для этого проекта — Pico PLC.

Я распечатал корпус пико на 3D-принтере, а также припаял соединение к плате.

Ссылку на 3D-печатный кейс я использовал. (Спасибо пользователю GrevTech на Printables.com за разработку корпуса)

Что оно делает?

Pico подключен к нескольким датчикам для обнаружения действий, происходящих внутри и вокруг прицепа, а также для отправки снимков с камеры по электронной почте.

Pico подключен к:

  • Датчик движения над столом
  • Реле, подключенное к кнопке задней двери (чувствует нажатие кнопки)
  • Реле системы контроля доступа (определяет разблокировку двери через систему контроля доступа)
  • К ПК через последовательное соединение USB

Датчик движения:

Это используется для обнаружения того, что кто-то пишет в бортовом журнале, расположенном на столе в трейлере. Над головой установлена ​​камера. Когда движение обнаруживает кого-то, снимок журнала отправляется по электронной почте.

Реле контроля доступа:

Это используется для обнаружения того, когда кто-то входит в главную дверь, с помощью системы контроля доступа. Когда он срабатывает, делается снимок экстерьера и двух внутренних камер, а затем, через 30 секунд, снимки делаются снова и отправляются по электронной почте.

Реле задней двери:

Это используется, когда кто-то нажимает кнопку, расположенную внутри прицепа. Когда он срабатывает, делается снимок экстерьера и двух внутренних камер, а затем, через 30 секунд, снимки делаются снова и отправляются по электронной почте.

Строим это

Чтобы система работала, я использовал комбинацию Node-Red, Python и сервера MQTT.

Базовый код Python на Pico выглядит примерно так.

import sys
from machine import Pin
import time


pin_button = Pin(14, Pin.IN, Pin.PULL_DOWN)


while True:
    if pin_button.value() == 1:
        print('on')
        time.sleep(1.2)
    else:
        pass

Node-Red считывает последовательное соединение с Pico и запускает различные потоки в зависимости от того, какой вход инициируется с Pico.

Когда на Pico срабатывает вход, Node-Red запускает соответствующий поток, который захватывает изображение с камеры через узел ONVIF и отправляет его на удаленный сервер Node-Red через MQTT.

Использование вторичного сервера Node-Red было решено для того, чтобы удаленному компьютеру приходилось выполнять меньше работы на его ограниченной пропускной способности, а также потому, что в конечном итоге будет развернуто несколько трейлеров.

Заключение

Впервые попытка реализации такого проекта прошла довольно хорошо. В настоящее время эта система установлена ​​на трех прицепах, планируется добавить еще.

В долгосрочной перспективе я планирую написать программу на Python, которая заменит Node Red и упростит развертывание и устранение неполадок системы для себя и всех, кто работает с системой.