- PVSM.RU - https://www.pvsm.ru -

Raspberry pi & Азбука Морзе

Парусник “NaN” сигналит SOS (See Our Success) Raspberry Pi, азбука Морзе и MQTT: вместе веселее

Меня зовут Вова Балакин, я из московской школы на Юго-Востоке имени Маршала В.И.Чуйкова (классов “Силаэдр”: vk.com/silaedr [1]), закончил 5 класс, интересуюсь программированием и техникой. Я хочу рассказать, что я делал этой весной. У меня был парусник, он назывался “Not a Number”(“NaN”). Выходить в море без сигнализации опасно, поэтому я подумал, что ему на мачте не хватает сигнальных огней. А лучше — сигнальных огней, которыми можно управлять удаленно. А лучше — удаленно из любой точки мира! У меня был Raspberry Pi — и тогда я придумал…

Чего мне захотелось (Постановка задачи)

… что можно прикрепить к мачте светодиод, соединить его с Raspberry Pi и запрограммировать так, чтобы из Интернета было возможно отсылать паруснику любое сообщение — и оно переводилось в код Морзе — и диод на мачте мигал в соответствии с этим кодом. И на ту же мачту закрепить фоторезистор — декодер кода Морзе, чтобы другой компьютер в Интернете мог получить переданный код.

Что у меня вышло (Результат)

После двух месяцев проб и ошибок у меня получилось написать программу, которая через MQTT-брокер(http://www.hivemq.com/demos/websocket-client/) позволяет любому человеку в Интернете, знающему Topic — секретный ключ для передачи сообщения клиенту, — отправить абсолютно любое сообщение написанное латиницей — и светодиод на мачте моего промигает его азбукой Морзе!

Вот в целом как это работает: мы пишем сообщение и отправляем его MQTT-серверу, а он в свою очередь отправляет его на Raspberry pi, который переводит его в код Морзе и подмигивает светодиодом в соответствии с кодом.

Вот код на Node.js на гитхабе [2].

Как мне пришлось помучиться (Инструменты и методы)

Сначала я писал на Python3. Но подключить питон к MQTT у меня не получилось — не нашел нужной документации — и я перешёл на платформу Node.js.

Кроме того, на протяжении суток я пытался сделать дешифратор световых сигналов азбуки Морзе (с помощью фоторезистора) и установить его на ту же мачту того же парусника, но это не вышло, потому что фоторезистор (по крайней мере, тот, что был у меня) не способен различить свет даже от 5 светодиодов (разница напряжений при включенных и выключенных светодиодах была слишком мала).

Полезные советы тем, кто будет делать что-то подобное (Обсуждение).

Пишите сразу на Node.js, если хотите связывать потом код с MQTT. Законнектить Python с MQTT — задача не из легких.

Что сделано человечеством (Литобзор)

Перед тем, как начать, я погуглил, как такое сделать. Все части этого проекта по отдельности в Интернете описаны, всё вместе — не нашел.

Благодарю за ценные замечания и крутые советы моих учителей робототехники и информатики и старшеклассников моей школы!

Автор: Vladimir

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/raspberry-pi/357313

Ссылки в тексте:

[1] vk.com/silaedr: http://vk.com/silaedr

[2] Вот код на Node.js на гитхабе: https://github.com/vladimirbalakin/Raspberry

[3] habr.com/ru/company/madrobots/blog/243253: https://habr.com/ru/company/madrobots/blog/243253/

[4] https:/www.youtube.com/watch?v=p3vJxGKWDIg": http://https:/www.youtube.com/watch?v=p3vJxGKWDIg

[5] www.youtube.com/watch?v=wiciIlsS0eo: https://www.youtube.com/watch?v=wiciIlsS0eo

[6] Источник: https://habr.com/ru/post/520796/?utm_source=habrahabr&utm_medium=rss&utm_campaign=520796