Сообщество - Arduino & Pi

Arduino & Pi

1 493 поста 20 825 подписчиков

Популярные теги в сообществе:

Steam Link LED RGB Matrix Raspberry Pi

Для того чтобы транслировать рабочий стол Windows по интернету, на светодиодную панель, при игре в стим )

нужно:

Raspbian Buster с рабочим столом https://www.raspberrypi.org/downloads/raspbian/

Инструкция https://learn.adafruit.com/raspberry-pi-led-matrix-display

Библиотека https://github.com/hzeller/rpi-rgb-led-matrix

Steam Link для Raspberry Pi https://support.steampowered.com/kb_article.php?ref=6153-IFG...

RGB LED

Raspberry Pi

Блок питания импульсный 5В 5А

и немного волшебства

Показать полностью 4
61

Как сделать подсветку и не забыть о ее существовании

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

Развесить по квартире ленту - дело нехитрое. Клеишь ее как-нибудь, чтоб светила не в глаза, а в стену и включаешь иногда, пока не наиграешься. Через пару недель, теряешь пульт и благополучно забываешь о ней до генеральной уборки. Затем цикл повторяется.

А как сделать так, чтоб ей хотелось пользоваться чаще?

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

Сам подумай, нужно вспомнить о ней, желательно не только в Новый год, найти пульт от подсветки, понять какой цвет соответствует нынешнему настроению, установить этот цвет, выключить основной свет. Я не готов брать на себя столько обязательств, я миллениал!

Можно, конечно, купить контроллеры на Wi-fi и управлять с приложеньки. Вот такие, например. Победитель в номинации работающий дешман по моему личному мнению.

Как сделать подсветку и не забыть о ее существовании

Уже лучше. Все на свете с приложением лучше, да IQOS?)) Можно быстрее включать и настраивать, можно управлять Алисой и Сири, при должном уровне ораторского искусства, конечно. Да и выглядит это киберпанково, когда Яндекс-телка переводит дом в режим приема гостей. Но весь киберпанк разбивается о суровые реалии уставшего программиста в яндексе, который вместо того, чтобы придумать как 2м колонкам не мешать друг другу, удалял Яндекс-митинги. Не работает Алиса так как хочется, к сожалению. Сири получше, но кричать на телефон мне не нравится почему-то.


Все вышеперечисленное можно сделать и без Home Assistant, но у меня-то есть малинка и Home Assistant на ней крутится.  А он должен делать мою жизнь лучше! Работай-работай, бездушная машина, закат человечества еще не скоро.

И вот как мы договорились он будет поступать.

Я подкидываю кубик, включается режим гости, мигает подсветка секунд 10 (как бы анимация загрузки), затем устанавливается случайный цвет, отображается уведомление на телевизоре,

Так же приходит кликабельное уведомление на iPhone.

Если я его проигнорирую, останутся уже установленные цвета, а могу двумя тапами на экране блокировки смартфона сменить цветовую тему на одну из 5ти предустановленных

Но ленты на кухне и под барной стойкой отражаются в телевизоре, их нужно легко отключать. Повернуть кубик на 90 градусов, пожалуй, достаточно легко. Поэтому повторим все то же самое, но уже без зоны кухни и светильника Гайвера в спальне, для такого движения кубика. Остальное не мешает, а даже сильнее погружает в происходящее на экране. Пересмотреть матрицу с зеленой подсветкой - бесценно!

Двойным тапом этого кубика выключается свет во всей квартире (кроме ванной), если был включен хоть где-то, а если нет, то включается на кухне

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

P.S.

Если есть варианты как это сделать еще оптимальнее или красивее, то милости прошу в комментарии.

Показать полностью 1 6
87

Погодная станция Dozor meteo

Станция  «Дозор метео» предназначен для замера параметров окружающей среды (температура, давление, влажность) отображения результатов на ЖК-дисплее, передачи показаний в сеть интернет на облачный сервис Интернета вещей IoT «Народный мониторинг», управления устройсвами. 

Особенности прибора:


-  измерение температуры, влажности, давления;

- наружный блок влажности/температуры;

- 2 удаленно управляемых выхода 12/220B;

- 1 логический/счетный вход;

- до 5 точек контроля температуры;

- автономная работа (без сети WiFi);

- WiFi-подключение к интернету;

- управление через приложение или бот Telegram


Ниже описана версия прибора для сборки из готовых модулей датчиков и МК на основе Arduino Nano. Есть версия конструкции на «рассыпухе», позволяющая получить небольшой размер и эстетичный внешний вид.


Назначение полей дисплея и кнопок

1. Канал управления (вкл./выкл.)

2. Счетно-контрольный вход.

3. Поле «Влажность» (наруж. блок)

4. Давление

5. Температура Tout (наружный блок)

6. Температура Tk (комнатная), датчик расположен внутри модуля.

7. Дополнительный датчик T1(DS18B20)

8. Дополнительный датчик T2(DS18B20)

9. Дополнительный датчик T3(DS18B20)

10. Обратный отсчет до сеанса связи с сервером.

11. Индикатор НЕ-успешности последнего сеанса связи с сервером.

12. Кнопка управления.

Схема межмодульных соединений:

Для сборки прибора Дозор meteo на основе Arduino Nano понадобятся:


- Arduino nano – «рулит» всем в конструкции;


- модуль ESP-01. Это WiFi модуль на основе ESP8266, используется для связи прибора с интернетом и отправки данных на сервер народного мониторинга. Можно заменить практически любым модулем на основе ESP8266;


- модуль GY-68 (BMP180 со встроенным стабилизатором 3,3V и конвертером уровня I2C). Измеряет давление и температуру в помещении;


- модуль HTU21D. Используется в составе внешнего модуля и «отвечает» за наружную температуру и влажность;


- МК Attiny13a. Используется в наружном модуле;


- дисплей 128Х64 COG с контроллером UC1701

На нем можно лицезреть актуальные показания датчиком. Очень удобная, но не обязательная часть прибора. Без него работает, но показания можно посмотреть либо на сайте народного мониторинга или в приложении смартфона;


-м/с стабилизатора 3,3V.Нужна для питания ESP-01  и дисплея. Можно использовать соответствующий выход Power board (модуль питания для Arduino);

- DS18B20, цифровой датчик


Если необходимо коммутировать (управлять) нагрузками, то необходим узел на оптосимисторах AHQ2223 (IC1, IC3)  в корпусе DIP-7, и транзисторные ключи для управления ими. Если коммутация не нужна- часть схемы, выделенная как switching module можно не использовать. Если же такая необходимость есть, необходимо помнить, что указанные оптосимисторы рассчитаны на максимальный ток 0,8A, что вполне достаточно коммутации нагрузки до 150Вт (220Вольт). Также следует учитывать, что симисторы- полупроводниковые приборы, используемые в цепях переменного тока. Поэтому если надо управлять нагрузкой, рассчитанной для работы в цепи постоянного тока, вместо симистора надо поставить либо реле, либо транзистор с малым сопротивлением силового перехода.


Счетно-контрольный вход устройства (X2) можно использовать, например, для контроля уровня жидкости в баке.

Также можно подключить магнитный дверной датчик или контакты ИК датчика движения. В этом случае получиться простейшая охранная система.
Датчику IN (это имя имеет ВХОД прибора в сообщении на сервер) в личном кабинете можно присвоить имя «ДВЕРЬ». При изменении состояния датчика (замыкание или размыкание ) пользователю поступит сообщение «ДВЕРЬ». На дисплее прибора отобразится изменение- иконка “IN” изменит вид. При этом датчик INC (значение тоже отсылается на сервер) покажет количество срабатываний. Можно использовать, например, для текущего расхода воды, если подключить к специальному водомеру. Максимальное значение между посылками на сервер -255. После отправки на сервер счетчик обнуляется.


Т.к. напряжение питания Arduino составляет 5V, а все модули датчиков, в том числе и дисплей, линии управления (UART, SPI) приходится подключать к модулям через резистивные делители (R2, R3; R5-R13). Исключение составляют модуль GY-68 и HTU21D. GY-68 имеет на «борту» собственный стабилизатор 3,3V, а HTU21D питается как и весь наружный модуль напряжением 3,3V. Дисплей- попадаются варианты исполнения как со встроенным стабилизатором, так и без него.


Если будет встроенный стабилизатор, то дисплей можно запитать от 5V, но резистивные делители всё равно желательны. Были случаи, когда на дисплей на управляющие контакты поступало напряжение 5V, и дисплей оставался жив. Но скорее всего это не полезно для дисплея. Документация на контроллер UC1701, установленный в данном дисплее по вопросу толерантности цифровых входов к напряжению 5V теряет нить разговора молчит.

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


Часть схемы, выделенная как OUTDOOR MODULE (внешний модуль) используется для измерений наружных (на улице) температуры и влажности.

Наружный и внутренний модуля соединены трёхпроводной линией – «земля», «+» и сигнальный провод. Микроконтроллеры модулей общаются по протоколу 1-wire, где внутренний модуль- ведущий. Это конечно несколько усложнило конструкцию внешнего модуля, но результат налицо. В результате такого решения удалось отнести внешний модуль на десятки метров от внутреннего. С «чистой» шиной I2C такой результат недостижим- буквально на 5 метрах начинались «глюки». В результате дополнительных экспериментов по применению 2-х транзисторного «драйвера» шины 1-Wire удалось получить расстояние в 80м! Кабель, как ни странно, желательно использовать не экранированный-меньше погонная емкость.


Ведущий посылает в линию 1-wire запрос «запустить преобразование всех датчиков», который совпадает со стандартным запросом для датчиков DS18B20 ($CC+$44), что удобно с точки зрения программной реализации- одним запросом «запускаются» все 1-wire устройства. Ведомый МК принимает этот запрос, и инициирует преобразование влажности и температуры(МС HTU21D)по «своей» шине I2C. После окончания преобразования полученный результат считывается внутренним модулем. При этом наружный модуль не мешает работе датчиков DS18B20(которые можно подключить в линию в любом месте), независимо от режима работы- будь то замер температуры или считывание ROM. Если наружный модуль не подключать, устройство сохраняет работоспособность, но данные будут искажены.


После сборки устройства (или до)необходимо запрограммировать микроконтроллеры устройства- саму Arduino и МК ATtiny13a наружного модуля. ПО написано в среде Algorithm Builder ( почти ассемблер ), поэтому прошивки публикуются «как есть», полнофункциональные, в виде готовых «хексов».

В архиве есть 2 файла – DM_indoor_V1_nano.hex (для Arduino Nano 16 MHz) и DM_outdoor_V1_tiny13a.hex (для наружного модуля). Для «заливки» в Arduino готового «хекса» есть несколько программ, например X-loader и GC-uploader.

На странице автора программы GC-uploader хорошо описана процедура загрузки при использовании этих программ. После «заливки» «хекса» Arduino останется Arduino-й, т.е. при необходимости в неё можно при помощи Arduino IDE «пролить» какой-нить скэтч.


С программированием Arduino проблем быть не должно(если прочитать указанную выше ссылку на help)- выбрал «хекс», выбрал порт, нажал «программ» и вуаля.


«Тиньку» же придется «прошивать» при помощи программатора и одной из множества программ, например, ProgISp. Последняя кстати, замечательно работает с дешевым программатором USB ISP с родины Мао.

Известный сайт с тех же краёв на запрос «AVR USB ISP» предложит несметное количество этих программаторов по цене 2-3х «Эскимо».

Конечно, "заливка" чего-либо не из Arduino IDE- это несомненно «два», но кто сказал, что будет легко? иначе никак… Можно конечно было использовать ещё одну Arduino, но она великовата для конструкции наружного модуля, описанного далее. Хотя, возможно…


В общем, для ATtiny13a надо запрограммировать fuse-биты и "залить" прошивку.

Состояние Fuse-bit для ATtiny13a  в данной конструкции должно быть такое

Написал небольшой ликбез процесса программирования МК ATtiny13a  c картинками.

Если возникнут проблеммы при программировании  - пишите.


После правильной сборки и программирования  настроек "железа" не требуется. Перед включением необходимо пройтись по соединениям, включить устройство. Причем  во время работы желательно не подключать кабель USB ПК-Arduino, т.к. в схеме используется интерфейс UART- могут быть конфликты. Используйте плату Power board.


После подключения проверить наличие напряжения 3,3V на выходе стабилизатора (C2). На дисплее должна появиться заставка. Если всё ок- входим в режим настроек. Для этого выключаем питание, нажимаем кнопку S1 и её удерживая включаем питание (кнопку продолжаем удерживать). Примерно через 2-3 сек. На дисплее появится надпись «SETUP MODE». Так же будет выведена информация о SSID и пароле WiFi, периоде отправке данных, которая хранится в памяти прибора.

Кнопку отпустиь.

Для изменения настроек (П.2) необходимо нажать кнопку еще раз. Появится надпись WEB SETUP.

Кнопку отпустить.

В WI-FI сети появится точка доступа Dozor_meteo. Необходимо подключится к ней и зайти (набрать в окне любого браузера) на адрес 192.168.4.1.

Откроется окно

Тут необходимо ввести название и пароль домашней точки доступа( первые 2 поля), и 3-е поле –период отправки данных на сервер.. Тут рекомендуется установить значение Т>300 сек. Доступный диапазон – 60- 999 сек. Но для установки периода Т< 300сек. необходимо ознакомится с условиями на сайте narodmon.com . Кратко- если у пользователя нет бонусов, период отправки не может быть меньше 300 сек. Иначе при рецидивном нарушении данного требования устройство может быть заблокировано.

Нижнее поле- MAC устройства. Это значение MAC необходимо указать при регистрации своего устройства на сайте narodmon.com .

SEND- сохранить введённые значения. Если поле «AND EXIT» отметить, то после нажатия на SEND устройство будет перезагружено и войдет в основной режим работы.


Регистрация дополнительных датчиков температуры.


В устройстве прибора по схеме, приведенной выше, есть датчик давления BMP180. В нем есть встроенный датчик температуры, он используется для измерения температуры внутри помещения. Температура на улице измеряется при помощи датчика температуры, входящего в состав датчика влажности HTU21D. Дополнительно, при необходимости, можно подключить до 3х датчиков температуры DS18B20. Датчики подключаются к разъему SV1, можно параллельно линии, идущей к наружному модулю. Можно в любом месте линии.


Процесс регистрации.


При выключенном устройстве нажать кнопку S1. Удерживая кнопку нажатой включить устройство. Через 2 секунды на экране появится надпись SETUP MODE.

Кнопку отпустить.

Нажать кнопку. Появиться надпись WEB SETUP. Кнопку не отпускать. Через 3 сек появится надпись DS SETUP.

Кнопку отпустить.

Далее необходимо (правильно!) подключить датчик DS18B20 к разъему SV1 и коротко нажать на кнопку. Если процедура выполнена верно - на экране будет отображен серийный номер датчика . Датчик Т1 зарегистрирован в приборе.

Далее необходимо отключить датчик Т1 и подключить датчик Т2 (если он необходим), и коротко нажать на кнопку. Очередной датчик (Т2) занесен в память устройства. Далее регистрируется датчик Т3. Т.е. получается такой алгоритм:


- войти в режим регистрации DS SETUP, отпустить кнопку;

- подключить датчик Т1, коротко нажать на кнопку;

- отключить датчик Т1, подключить Т2, короткое нажатие;

- отключить датчик Т2, подключить Т3, короткое нажатие;

Следующее нажатие инициирует выход из режима настойки.


Если необходимо удалить какой либо из зарегистрированных датчиков (или все), то при программировании достаточно не подключить соответствующий датчик. В соответствующей строке появится сообщение о ошибке и датчик будет удален из памяти прибора.


Подробно о эксплуатации, подключении назрузок,  регистрации устройства на сайте narodmon.com,  управлении со смартфона можно прочитать в полном руководстве.


1. Файлы проекта (схема, прошивки, ликбез по прошивке МК ATtiny)

2. Прошивка любого HEX-файла в ARDUINO


Конструкция наружного модуля станции  ДОЗОР meteo


Если есть желающие повторить конструкцию, опишу один из вариантов устройства наружного модуля.

Задача- конструкция модуля должна обеспечивать защиту датчиков от дождя, но при этом он не должен быть герметичным. Для верности показаний необходимо обеспечить естественную конвекцию воздуха внутри модуля. При этом избежать дополнительных токарно-фрезеровальных работ, и выполнить все из материалов, доступных в любом в магазине. В результате изысканий получилась такая конструкция.

Для изготовления необходимы

1. Пластиковая труба D25mm 25-30 см. Можно использовать водопроводную «под пайку» либо трубу для кабелей.

2. Заглушка сантехническая под систему D32mm. 1 шт

3. Хомут крепления для трубы D25mm -2шт.

4. Клеевой состав ( герметик, «эпоксидка», клей «Титан»)


На одном конце трубы необходимо с отступом от края 5-8мм (до края отверстия) просверлить отверстия D4-6мм 4-8 шт.

Обработать край крупным наждаком либо поцарапать, например ножом. Также желательно обработать внутреннюю поверхность заглушки.
Необходимо изготовить центрирующую гильзу, например из картона. Лучше взять картон не толстый, отформовать его «гармошкой».
Затем его надо зафиксировать примерно так. Так как внутренний диаметр заглушку больше наружного диаметра трубы, щель между ними с отверстиями в трубе образуют канал естественной вентиляции (тяги).

На внутреннюю грань заглушки нанести валик клея или герметика. С клеем усерствовать не надо- до отверсий в трубке клей не должен "добраться".

Одеть на трубку и оставить сохнуть, в зависимости от клея- до 24 часов.
После полимеризации клея узел должен выглядень примерно  так
Затем в трубку вставляется плата внешнего модуля, так чтобы плата оказалась дальше (выше) середины трубки. И фиксируется. Самый простой вариант- стяжкой. Можно двумя .

При вертикальной установке такая конструкция обеспечивает хорошую дождезащиту, но при этом за счет естественной вентиляции внутри плата датчика постоянно обдувается восходящим потоком, обеспечивая верность показаний температуры и влажности. Был проведен эксперимент- на корпусе модуля с наружной стороны примерно посередине расположил доп. датчик температуры DS18B20 (тоже в тени), который фиксировал температуру на улице вместе с наружным модулем. При этом показания доп. датчика в светлое время суток были всегда на 0,5 – 0,8 град. больше, чем внутри модуля. Ночью же показания практически сравнивались. Объяснением (один из вариантов) этого может быть тот факт, что доп. датчик дополнительно нагревался ИК-излучением от посторонних объектов.


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

Будтобы все...


Материалы:


1. Файлы проекта (схема, прошивки, ликбез по прошивке МК ATtiny)

2. Прошивка любого HEX-файла в ARDUINO

Показать полностью 22
163

Часы на ВЛИ и ESP8266

Случайно наткнулся на сайте местного магазина радиодеталей на интересный индикатор ИЛЦ2-12/8Л-Р, а интересен он тем что он новой ревизии с мелкой сеткой и хорошим качеством стекла.

Для обычных часов слишком много разрядов и делать часы на простом микроконтроллере не имело бы смысла. Решил использовать ESP8266, тут уже простора для фантазии гораздо больше: можно и погоду брать из сети, синхронизация времени с NTP сервером, курс рубля можно выводить на крайняк. У ESP8266 естественно не хватило портов и пришлось использовать в качестве драйвера PT6311B-LQ. Преобразователь собран на КФ1211ЕУ1, в первичной обмотке 6+6 витков, во вторичных 4+4 и 40+40. В качестве часов реального времени стоит DS3231.

Прошивку писал в Arduino IDE. По нажатии кнопки показывается ip и происходит синхронизация часов с NTP сервером. Kicad проект и код: https://drive.google.com/open?id=1bMOyu-rSj_86YrU9L5B8LAYyoM...
Прошивка конечно мало что умеет, больше для примера. Думаю, кому что надо - допишут
Ps: пишу первый раз, не пинайте сильно. По вопросам в комментах отвечу. На оригинальность всех решений не претендую

Показать полностью 2
99

GSM модуль управления ворот

Добрый день. Хотел поделиться опытом создания модуля управления воротами через мобильную сеть. Нам понадобиться:

1. Arduino UNO - ссылка

2. GSM SIM900 - ссылка

3. Реле 5В - ссылка

Для начала перемычки RX/TX на GSM модуле ставим в положение D7/D8.

Переключатель питания переключаем на питание от внешнего источника, т.к. GSM модуль очень требователен к качеству питания. Для нормальной работу нужен источник питания не менее 2А.

Можно разъемы питания запараллелить (как это сделал я) и подключать питание лишь к одному разъему.

Питание для реле берем с ардуины. Сигнал управления с аналогового выхода А2.

Собираем бутерброд из ардуины и GSM модуля.


Должно получиться примерно так:

GSM модуль управления ворот

В прошивке все достаточно подробно прокомментировано. Для отладки можно раскомментировать строчки Serial.println и мониторить через терминал.

Ссылка на прошивку. Текст необходимо скопировать и вставить в Arduino IDE.

Подключаем к компьютеру через USB и заливаем прошивку.

Данный модуль управления работает как часики уже более 4 лет.
Показать полностью 1
171

Лазерный проектор из старых HDD

Всем привет!

Эта история о том, как я из старых жестких дисков собирал лазерный проектор

Если Вам интересно, что из этого получилось, смотрите на видео или читайте статью

===========================> Посмотреть видео на YouTube <==========================

Сначала я разбираю жесткий диск

Далее, снимаю с него механизм перемещения головок и удаляю  паковочный, магнитный штырь.

Припаиваю к электромагнитной катушке два провода

Распиливаю корпус жесткого диска на две части

Из двух латунных стоек и алюминиевого лепестка, собираю держатель зеркала

Выпиливаю зеркало из алюминиевого диска от этого же HDD и приклеиваю его цианакрилатным клеем к гальванометру

Проделываем все тоже самое со вторым HDD и соединяем оба гальванометра между собой под углом 90°

Проектор собран, теперь подключаем его электромагниты к любому двухканальному усилителю мощностью не менее 3 Ватт и  подаем на вход музыку.

Мы видим классную, лазерную светомузыку. Она рисует невероятные картинки в такт с аудио треками, на которые можно смотреть не отрываясь. Что самое удивительное , а то что изображения как живые и не повторяются от трека к треку.

Теперь пробую включить с бесплатным софтом в режиме проектора и тут меня ждало разочарование. Без постоянной составлявшей с выхода звуковой карты невозможно отобразить хороших изображений или анимацию. Так как через разделительные конденсаторы не возможно удерживать гальванометр в одном положении и он сразу стремится вернуться в среднее положение. Также ему требуется обратная связь. И еще нужно обеспечивать гашения луча, то есть отключать лазер на момент возврата в начальное положение. Для переделки нужна USB звуковая карта как минимум на 4 канала.  Внешней звуковой карты у меня нет и я решил продолжать свои эксперименты после того как она ко мне приедет.


На этом я временно приостанавливаю проект, до получения нужных компонентов.

Так как в лазерных проекторах я не специалист, то жду от Вас помощи и консультаций.

Показать полностью 8
26

Помогите сделать контроль платного пользования душем1

Есть необходимость в ограничении пользования горячей водой в душевой хостела, поскольку счета за электричество, которое греет бойлер, стали просто космическими.

Пытался найти в интернете что-то на arduino, чтобы была возможность одноразового посещения душа по qr или штрих коду, либо же однократный пропуск по rfid, что в свою очередь активировало бы электроклапан на 20 минут, после истечения которых, он перекрывал бы воду. И, чтобы оставшееся время отображалось на дисплее.

Ничего толкового не нашел, как бы не гуглил, может подскажет кто-то, как бы это можно было бы реализовать, или возможно есть готовые решения за небольшие деньги?

Отличная работа, все прочитано!