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

Arduino & Pi

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

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

215

Робот пылесос своими руками. Почти "финишная прямая"

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

Решено! Паяем ....

И припаиваем шлейф...

Закрепляем подложку так же пайкой...

И третий сорт не брак))))

Видео пробного заезда

Есть два режима - ручной и автопилот. В планах добавить передний бампер с кнопкой для маневра , так как пропускает маленькие препятствия. Центральный датчик отвечает за скорость приближения к препятствию - чем ближе тем медленней . А боковые за обьезд препятствий. Алгоритмов передвижения пока нет (много идей ,нужно все испробывать на практике). Скетч сыроват, но вполне пригоден, по возможности прокомментирован вот ссыль https://yadi.sk/d/XudFGtkduYveB  Не судите строго, все сделано на коленке и подручными средствами. Критика (ПО ДЕЛУ!!!) приветствуется и идеи тоже.  Всем добра!!!

Показать полностью 5 1
40

Еще одна погодная станция на ESP8266

Я решил мониторить погодные показатели у себя дома. У меня уже есть богатый опыт сборки устройств на arduino и esp8266 и на esp мне понравилось больше (из-за наличия wi-fi).

Для полноценной картины погодных условий нам необходимо знать температуру внутри и снаружи, давление воздуха, влажность и качество воздуха (количество CO и CO2). Показания буду считывать домашним сервером на Linux при помощи самописного скрипта и выводить через MRTG в виде графика.


Собственно детали были заказаны на Aliexpress: MP180 (температура и давление), MQ135 (качество воздуха), DTH11 (температура и влажность), DTH22 (уличная температура и влажность), 662k (стабилизаторы на 3.3 вольта). Доставка была быстрой, и уже через две недели все было готово к сборке.


К сожалению, на момент написания статьи DTH22 еще не пришел, но я оставил для него выведенный внешний разъем.


Я не буду выкладывать схему, так как нет принципиальной разницы к каким GPIO что цеплять (за исключением i2c шины, она необходима для датчика давления). Сборку начнем с впаивания esp8266 в плату с контактами, где кстати, сразу отпаяем перемычку и впаяем стабилизатор на 3.3 вольта. Как раз для этого были куплены десяток 662k стабилизаторов. Это нам очень упростит дальнейшее подключение, так как все датчики работают либо от 3.3 до 5 в, либо строго от 3.3. Получается питать всю схему можем любым напряжением и не париться, что что-то сгорит.

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

Далее расположил все на макетной плате, чтоб было поудобнее, все впаял, развел провода сзади (плюс на плюс, GND на минус, остальное на GPIO, сопротивления для светодиодов и аналогового входа, об этом чуь позже), вывел несколько светодиодов, чтобы понимать что происходит, поставил PC спикер для понта (пищит при включении и превышении показаний).

Кстати у ESP8266 есть один аналоговый вход, но он считывает напряжение до 1 вольта. У датчика загазованности MQ135, есть два выхода - цифровой и аналоговый. Цифровой срабатывает при превышении показаний, поэтому для мониторинга он бесполезен, а второй выгод аналоговый. Вот его то мы и подключим к ESP. Но для корректной работы нам нужно собрать простой делитель напряжения на двух сопротивлениях.

После подключения и написания скетча на Adruino оказалось, что в режиме i2c могут работать не все контакты (как я ранее упоминал). В итоге мне так и не удалось заставить работать по i2c никакие GPIO кроме дефолтных (GPIO4, GPIO5). Конечно не принципиально, но пришлось разок перепаять схему.


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

Для мониторинга температуры выбрал SimpleDHT.h, потому что с ним не глючит, а со стандартным постоянно вместо температуры "nan". Кроме того оказалось, что по одному датчику температуры и по другому (один в DHT11, другой MP180) температура отличается на 3 градуса, при этом на настольном градуснике температура равна средненму от них обоих. Я не стал заморачиваться и считаю, что верная температура, та которая средняя. Для датчика давления использовал SFE_BMP180.h. Загазованность можно просто считывать с аналогового выгода, но зависимость показаний не линейная, поэтому сложно анализировать. Для того, чтобы упростить скетч я использовал MQ135.h. Главное, после того как установите MQ135, необходимо дать ему 24 часа поработать, чтобы прогреться. Затем нужно считать нулевые значения при помощи команды:


float rzero = gasSensor.getRZero();

Как получили нулевые значения, их нужно вписать в файл MQ135.h в переменную RZERO.


Далее, давайте рассмотрим веб-страничку, которую генерит погодная станция.

Если посмотреть код страницы, в самом низу можно увидеть скрытый код. Между скрытыми элементами <!start data> и <!stop data> находятся данные для сервера.

Так проще обрабатывать.

На сервере (Linux) по крону запускается MRTG, которая стартует скрипт:


curl -s http://192.168.1.63 | sed -n '/<!start data><!/,/><!stop data>/p'|grep -v "data" > /tmp/ws.tmp
grep nvAvrIntTemp /tmp/ws.tmp -A1|tail -1
grep nvHmD1 /tmp/ws.tmp -A1|tail -1

Ну и по аналогии получаем остальные данные. То есть вместо nvAvrIntTemp может быть, например, nvMq1, тогда мы получим не среднюю температуру, а качество воздуха. Настройку MRTG я не буду расписывать, она совершенно стандартна, но если будет интересно, выложу, хотя там ничего замороченного нет.


Оригинал статьи со скетчем

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

Сигнализация для дома и квартиры. Ч.2

Не ожидал того что на меня подпишутся 32 человека, после того как заметил сразу же продолжил делать начатое.


А продолжу я с того что буду  разводить провода под модули.


Провода нужных размеров я снял со старых не работающих мышек/клавиатуры.

Дюпоны "мама" были изъяты из нескольких системных блоков и выпрошенных у знакомого человека.

Примерно вот что у меня получилось

Далее взял приготовленный корпус для MFRC522, продел через отверстие провода и припаял 2 светодиода(синий и красный), клеил их на термоклей, на контакты со светодиодами были припаяны резисторы номиналом 220ом(под конец поста вы их увидите).

Дюпоны "папа" делал из: медной проволоки 0.8мм и термоусадки.

После припайки самопальных дюпонов, подсоединил модуль к arduino для проверки передачи данных по длинному проводу(до этого проверял, сигнал не доходил после чего провод укоротил до нужных размеров).


Для проверки модуля использовал готовый скетч.

Все работает, идём дальше.


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

При приклеивании углов у меня случился казус, приклеил пальцы к пластику. Если у вас такое случалось/случится не старайтесь отодрать пальцы от приклеиваемого места, вы так отдерёте себе кусок кожи. Склеившийся палец(ы) можно снять с помощью полу горячей/тёплой воды.

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

Дабы не оставлять провода в безобразном виде, было куплено несколько термоусадок.

Термоусадку пришлось усаживать газовой горелкой, т.к усаживание зажигалкой займёт больше времени.

Усадил, соединил и приступил к написанию скетча, после написания скетча начал проверять.

Вся основа готова, теперь необходимо сделать питание для всего этого.


Запитывать все это буду от ИБП аккумулятора на 12в. 7ah(не реклама).

Так же для питания развёл провода. Для защиты от короткого замыкания было решено припаять предохранитель на 1ампер.

На один из конец провода был припаян штекер питания для arduino(тут схема, может кому пригодится).

Так же от резкого перепада напряжения был припаян конденсатор на 16вольт 2000мф(желательно больше, напряжение заметно проседает при включении сигнала).


На обратной стороне кабеля припаял наклемники для подключению к аккумулятору.

Осталось все это собрать воедино и окончательно проверить на работоспособность.

На 6-7 контакте видно как припаяны резисторы к самодельным дюпонам.

Все уложено, утрамбовано , впилен сигнализационный клаксон.

После того как все окончательно прикрутил начал проверять.


По началу MFRC отказывался принимать ключ карту(не понял почему, позже все заработало).


Собсно вот последнее видео.

Под комментариями прошлого поста просили писать/добавлять больше информации но в этом особо не смог разгуляться(ограничение на 25 блоков), поэтому пришлось пару фотографий удалить.


Будет ли продолжения?

-Пока что сам не знаю, в планах докупить еще один датчик движения и gsm модуль.


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

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

Звуковая сигнализация от датчика воды

Металлопласт - зло.

(Любителям "проще купить" не посвещается)

Потому что, если его пробивает, то утечки даже не слышно, а из образовавшейся трещинки вода брызжет как пулеверизатор. Решил смастерить примитивную звуковую сигнализацию на Arduino. Работает следующим образом: при попадании капли воды на датчик зумер начинает пищать двухтоновым сигналом частотой 1000 и 800 Hz.

Сам датчик. Гуглится как mh-rd arduino. У него существуют два выхода: аналоговый - для измерения уровня воды и цифровой - получаем просто сигнал высокого уровня, либо низкого, то есть всего два состояния. Потенциометром можно регулировать чувствительность.

Плата, если кому надо в формате SprintLayout

Ссылка на проект https://cloud.mail.ru/public/96E3/XLmmp7XRD , в котором содержатся плата (.lay) и код (.ino)

Основная задача моих самоделок - это саморазвитие. Если Вы считаете, что такое проще купить или зачем изобретать велосипед, то статья безусловно не для Вас. Прошу не писать такого в комментариях. Статьи на данную тематику предназначены исключительно для электронщиков. Таких как я.

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

Сигнализация для дома и квартиры. Ч.1

В написании текста я не мастак, но все же решил я с вами поделится.


При сборке сигнализации мне понадобились след. модули.

Arduiono Uno R3 - основной микроконтроллер.

HC-SR501 - датчик движения.

MFRC522 - считыватель радио карт.

1 канальный реле модуль.


Еще из мелочей нам понадобиться:

Звуковой сигнал на 12v

Длинные/короткие провода(много проводов).

Аккумулятор/блок питания(можно все в месте).

Дюпонты.

Термоусадка.


Сборку начал с подготовки корпуса.


Корпус был взят от разобранного компьютерного блока питания.

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

Прикрутил пластиковую планку на болты с внутренней резьбой.

Предварительно прикрутил arduiono, примерно прикинул местоположение реле.

После того как раскрутил arduino, заметил царапины на плате. Места повреждения покрыл спец. лаком для покрытия плат.

Так же вырезал вторую планку пластика.

Опять же прикрутил плату, но в этот раз вырезал резиновые подкладки, чтобы не больше не царапать плату(позже я их округлил).

Позже все окончательно прикрутил и приклеил реле модуль на двухсторонний скотч.

С этим закончил. Далее начал делать корпус для MFRC522 модуль.

Корпус вырезал из кабельного канала(40мм в ширину), все как раз сходилось по размером с MFRC модулем.

После нескольких манипуляций с канцелярским ножом и зажигалкой, придал окончательную форму корпусу

На этом пост я закончу.

В след. посту расскажу про подготовку проводов и корпуса для PIR датчика.


Можете задавать вопросы в комментарии.


p.s След пост будет подлиннее.

Показать полностью 12
27

Робот пылесос своими руками. Часть 3

Поставил ардуино мега и двухстрочный экран. Сделал пробный заезд.  Заменил короб пылесборник на обьем 0.6л . Хочу добиться модульности, чтобы при модернизации или ремонте не приходилось его полностью разбирать. Критику по делу и идеи приветствуются!

Пучки проводов торчащие повсюду - это временно пока идет полная отладка. Скетч сырой ,и кидать его сюда нет пока смысла.

Сильно не пинайте)))) Всем добра!!!

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