Напишу управление простым устройством по последовательному интерфейсу (UART).
Управляющий модуль - микроконтроллеры stm32 или Arduino.
Например (на картинке):
В качестве "устройства" здесь плата Arduino.
На stm32 (зелёная) нажимаю кнопку и по UART идёт попытка включить систему охраны: отправляется команда "t1" на Arduino.
Если включение возможно, то от Arduino приходит ответ "OK" и систем включается (диод загорается), а иначе приходит команда "ALARM!!!".
Система охраны на Arduino построена так:
Есть геркон, присоединенный к выводам.
Замыкаем цепь геркона. Когда приходит команда "t1", то цепь проверяется на замкнутость и
Или в ответ отправляем "OK" или "ALARM!!!".
Когда ПРИ включенной системе цепь разрывается, то Arduino отправляет команду "ALARM!!!" на stm32.
(разницы на стороне Ардуино нет - он пассивно отправляет сигналы. А на стороне stm32 разница в текущем статусе охраны)
При этом на stm32 диод переключается в режим мигания.
Повторное нажатие на кнопку включения охраны снимает с охраны (на стороне Ардуино ничего не происходит).