Начало тут: 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 принтере, и т. п.
Попробуем «изобрести» нечто более-менее универсальное.
В статьях я не буду рассматривать особенности и тонкости программирования МК. Статей на эту тему хватает в различных конференциях, блогах и форумах. Будут предложены готовые «прошивки» под конкретные задачи. Акцентируем внимание на создании DIY устройств, имеющих промышленный вид.
Начать программировать STM можно имея минимум «железа»: USB-UART адаптер и любую отладочную плату. Часто USB-UART есть уже на отладочной плате. Выглядит это примерно так:
Потренировались моргать лампочкой, далее интересно работать с чем либо более существенным, напр. с датчиками, чем то управлять…
Компьютер может быть любым «умным» устройством управления. Напр. Raspberry:
Первое, с чем сталкиваемся, протокол общения управляющий компьютер — наше устройство. USB ‑ UART обычно видно как виртуальный COM-порт. Тогда для управления/отладки удобнее всего работать текстом.
Выбор корпуса: После перебора недорогих корпусов я остановился на корпусах серии DxMG компании GAINTA.
Можно выделить блок ( плату ), который будет присутствовать в каждом устройстве — это плата с микроконтроллером. Для более эффективного использования объема корпуса, плата будет монтироваться вертикально по отношению к нижней крышке.
При изготовлении печатных плат основные критерии: невысокая цена, возможность самостоятельного повторения, монтаж в выбранные корпуса. Разработана плата более-менее удовлетворяющая данным критериям. Данную плату можно использовать как отладочную. Проект с открытыми исходниками, как готовое устройство, так и ПО.
Печатная плата с микроконтроллером.
Пример использования платы как отладочной с JTAG SWD ( ST-LINK V2 ):
В таком варианте и начнем экспериментировать с
STM32 и DHT-22
Как упомянуто выше, начать программировать МК можно с любой отладочной платы STM32F10x.
«Прошивку» МК с 48 ножками можно выполнить двумя путями:
- SWD
- UART (через загрузчик)
UART не самый лучший вариант для постоянного использования, однако в серийных устройствах он удобнее. Например возникла потребность поменять ПО в готовом изделии — открыли верхнюю крышку, подключились к разъему, поменяли ПО.
Утилиту «прошивки» МК для STM можно взять с сайта производителя:
страничка — www.st.com/en/development-tools/flasher-stm32.html Загрузка *.hex файла в данной версии платы ведется через тот же COM-порт, который используется для вывода информации.
После “прошивки” микроконтроллера на экране терминала можно увидеть следующую картинку:
t — температура;
h — влажность
«Прошивка» (*.hex) и исходники проекта: open-plc.com/download/dht_22.zip
Материалы по печатной плате: open-plc.com/download/stm100_v2.zip
Продолжение следует.
Спасибо за внимание!
Автор: leocat33