DIY PLC для IoT, часть 1

в 7:45, , рубрики: diy или сделай сам, DYI, IoT, open source, plc, Интернет вещей

image
Начало тут: geektimes.ru/post/281474
PLC — аббревиатура, может означать:

  • Power Line Communication — коммуникация, построенная на линиях электропередачи
  • Public Limited Company — открытая публичная компания с ограниченной ответственностью
  • Private Limited Company — компания с ограниченной ответственностью
  • Programmable Logic Controller — программируемый логический контроллер
  • Packet Loss Concealment — маскирование потери пакета с медиа-данными в VoIP
  • Problem Loan Company — коллектинговая компания
  • PLC — Музыкант


Остановимся на двух значениях: Power Line и Programmable Logic Controller. Подробнее Power Line рассмотрим чуть позже, начнем с контроллеров. Т.е. получается прямо как в «звездных войнах»: начали с середины фильма, а уже потом сняли начало.

При конструировании систем «сделай сам» мониторинга/управления обычно начинают с Arduino, Raspberry, оценочных плат различных производителей. Arduino с концепцией шилдов интересное решение, однако количество подключаемых шилдов ограничено физически. Raspberry интересен как использование Linux в системах управления/мониторинга, но с периферией у него не густо.
Как старт интересен STM32F10x. ST и независимые производители предлагают достаточно богатый выбор отладочных ( Discovery ) плат с STM32F10x. После изучения основ программирования микроконтроллера появляется желание сделать нечто похожее на «устройства в коробке». Начинается поиск подходящей коробки и запихивания изобретения в нее. Тут уже кто во что горазд, кто-то подбирает корпус из того, что есть, кто-то печатает на 3D принтере, и т. п.
image

Попробуем «изобрести» нечто более-менее универсальное.

В статьях я не буду рассматривать особенности и тонкости программирования МК. Статей на эту тему хватает в различных конференциях, блогах и форумах. Будут предложены готовые «прошивки» под конкретные задачи. Акцентируем внимание на создании DIY устройств, имеющих промышленный вид.
Начать программировать STM можно имея минимум «железа»: USB-UART адаптер и любую отладочную плату. Часто USB-UART есть уже на отладочной плате. Выглядит это примерно так:
image
Потренировались моргать лампочкой, далее интересно работать с чем либо более существенным, напр. с датчиками, чем то управлять…
Компьютер может быть любым «умным» устройством управления. Напр. Raspberry:
image
Первое, с чем сталкиваемся, протокол общения управляющий компьютер — наше устройство. USB ‑ UART обычно видно как виртуальный COM-порт. Тогда для управления/отладки удобнее всего работать текстом.

Выбор корпуса: После перебора недорогих корпусов я остановился на корпусах серии DxMG компании GAINTA.
image
Можно выделить блок ( плату ), который будет присутствовать в каждом устройстве — это плата с микроконтроллером. Для более эффективного использования объема корпуса, плата будет монтироваться вертикально по отношению к нижней крышке.
При изготовлении печатных плат основные критерии: невысокая цена, возможность самостоятельного повторения, монтаж в выбранные корпуса. Разработана плата более-менее удовлетворяющая данным критериям. Данную плату можно использовать как отладочную. Проект с открытыми исходниками, как готовое устройство, так и ПО.
image
Печатная плата с микроконтроллером.

Пример использования платы как отладочной с JTAG SWD ( ST-LINK V2 ):
image
В таком варианте и начнем экспериментировать с
STM32 и DHT-22
Как упомянуто выше, начать программировать МК можно с любой отладочной платы STM32F10x.

«Прошивку» МК с 48 ножками можно выполнить двумя путями:

  • SWD
  • UART (через загрузчик)

UART не самый лучший вариант для постоянного использования, однако в серийных устройствах он удобнее. Например возникла потребность поменять ПО в готовом изделии — открыли верхнюю крышку, подключились к разъему, поменяли ПО.

Утилиту «прошивки» МК для STM можно взять с сайта производителя:
страничка — www.st.com/en/development-tools/flasher-stm32.html Загрузка *.hex файла в данной версии платы ведется через тот же COM-порт, который используется для вывода информации.
После “прошивки” микроконтроллера на экране терминала можно увидеть следующую картинку:
image
t — температура;
h — влажность

«Прошивка» (*.hex) и исходники проекта: open-plc.com/download/dht_22.zip
Материалы по печатной плате: open-plc.com/download/stm100_v2.zip

Продолжение следует.
Спасибо за внимание!

Автор: leocat33

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js