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

Arduino & Pi

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

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

85

Точный датчик температуры Si7051, делаем "с нуля".

Всем привет!

Хочу поделиться длинной историей разработки и заказа платы под данный датчик. Полный цикл DIY-проекта, на простеньком примере.

Для своей домашней пивоварни у меня собрана простенькая «метеостанция» с выкладкой данных онлайн на различные сервисы. В качестве датчиков использовались популярные DS18B20. Но вот случайно наткнулся на датчики от Silicon Labs, серии Si705X, и захотелось мне попробовать задействовать их. А конкретно Si7051 — цифровой (I2C) датчик к точностью ±0.1°C и временем конвертации данных с максимальным разрешением 14 бит всего 7 мс (сравните с 750 мс у DS18B20). Не то, чтобы мне нужна была такая точность и скорость на пивоварне, просто захотелось «пообщаться» с новым датчиком. :)

Датчик был настолько новый, что готовых сборок его обнаружено не было. Дело в том, что в отличии от DS18B20, этот датчик идет в корпусе только для поверхностного монтажа — DFN 3x3 мм. Так даже интереснее было — я получил практику сразу многих вещей, включая пайку такой мелкой детали (обычным паяльником). Сейчас кстати появилась в продаже готовая плата от ClosedCube за $8.95. Когда я начинал, их еще не было. Поэтому делал я все с нуля.

Для начала читаем даташит от Si705X. Смотрим типовую схему включения, всё довольно-таки просто, обвязка минимальна:

Помимо самого датчика надо всего пару резисторов и конденсатор:

Такие же номиналы и типоразмеры 0603 и будем использовать. «Нарисовать» всё это дело я решил на EasyEDA. Бесплатно и ничего кроме браузера не требует. Буквально за 15-20 минут набросал схему, аналогичную тому, что в даташите, только добавил коннектор, стандартный штырьковый. Ах да, еще самой микросхемы датчика в базе данных EasyEDA конечно же не было, надо было создать свой компонент. На DIYModules я нашел символы для Si70xx (там не было именно 7051, но были аналоги с точно такой же распиновкой) и Footprint (размещение контактных площадок на плате) для этого DFN-6 3x3 под Eagle. Удачно импортнул их в EasyEDA и теперь они все там есть. Вот такая схемка получилась:

Дальше разводим плату. Надо заметить, что опыта рисования плат и схем у меня особо нет. Поэтому даже на таком просто примере я больше учусь, если кто заметит ошибки — с радостью приму любую критику, только конструктивно пожалуйста, делалось для себя «на коленке» без опыта какого-либо, работа у меня с этим не связана. Сначала нарисовал плату, где все компоненты с одной стороны были (хотя плата двухслойная была всё-равно). Потом переделал вот так, вынес пассивные компоненты на другую сторону, чтобы с «лицевой» стороны был только датчик, мне его надо «приклеить» к поверхности измеряемой. Получилось вот так:

Можно было бы еще компактнее или сенсор на угол сместить.

Плата маленькая 13x12 мм. Поэтому заказать изготовить её у OSHPark получилось ооочень дешево. Смешные $1.15 за 3 платы с доставкой, сделанные в США. Да, у них просто по размеру печатают и в небольшом количестве (от 3 штук) мелкие платы у них выгодно заказывать. Я просто экспортировал Gerber из EasyEDA и загрузил его в OSHPark. Всё принялось на ура и без косяков сразу. Разве что на реальных платах шелк обводки вокруг датчика почему-то не был сделан. Хотя на превью был. Но это фигня. Вот так выглядело превью у них:

На перевернутую подпись C1 не обращайте внимания. Не помню почему так вышло ) Да и пофиг, делалось на скорую руку.

Платы обычной почтой, без трека. А по приходу ко мне получал я их как мелкий пакет с треком RBxxxxxxxxxRU — т. е. наши трек наклеили внутренний, но узнать его до получения пакета я никак не мог. Но получил их в итоге к счастью, извещение принесли. Вот так выглядели платы:

Пока платы готовились и отправлялись, я заказывал компоненты. Сначала поискал по нашим сервисам, типа ChipFind. Что-то на тот момент когда искал, датчики возило всего пару компаний и дорого. Сейчас уже возят нормально, можно найти. Я сначала заказал в Mouser (их российской версии сайта), у которых было заявлено, что в цену «включена» доставка уже. После прислали счет от российской компании, где сверху была стоимость доставки до моего города еще. Не дорого, но как-то это не хорошо говорить одно, а делать по другому. Поэтому я на них забил и заказал в американском DigiKey. С доставкой через посредника Shipito (давно пользуюсь для всякого-разного, адрес виртуальный в США есть). Датчики у них всего по $1.97 были. Еще взял сразу резисторы Panasonic и конденсаторы Murata, с такими же параметрами, как в даташите от Silicon Labs, по 10 шт (от 10 там цена копеечная получается). Добро это дома было, но нонэйм китайский с Али, решил взять «брендовые». Ну и в довесок себе еще мелочевки всякой набрал там. Датчики стоили $5.97, но со всем остальным вышло вот так:

Your total cost is $15.61 in U.S. currency, including $4.11 postage.

На следующий день мне пришло от них письмо с вопросом об адресе получателя. Я при покупке честно выбрал что платежный адрес — мой адрес в России, адрес доставки — адрес Shipito в США. Спрашивали что за компания находится по адресу получатели и является ли это компанией-пересыльщиком. Думал приехали, не станут на форвардера отправлять. Тем более при покупке было уведомление, что один или несколько позиций в заказе подлежат экспортному контролю (заказывал там демо-плату с МК еще, она «мэйд ин ЮСА»). Ответил честно, да, адрес — компания Shipito и указал их «реквизиты» с сайта. Те ответили «ок» и выслали посылку. :) Через пару дней получил на адрес в Шипито и переслал себе через Shipito Economy Airmail. Еще около $10 вышла доставка в РФ. С таможней/доставкой проблем никаких не было.

Все компоненты в посылке разложены по отдельным пакетикам, некоторые даже в двойных и т. д. Ну осталось дело за малым. Спаять это всё. Компоненты мекие. Вот для сравнения как выглядит один датчик:

Контакты у него не «выпирают» за корпус, но сбоку «заподлицо» слегка заходят, поэтому припаять я смог обычным паяльником недорогим. Центральный пад под чипом — термопад, он всё-равно должен в воздухе болтаться. Кривовато получилось, но всё работает. Вот еще для сравнения размеров фото:
А вот как это дело выглядит в сборе (флюс еще не отмыт на фото, поэтому «жирная» плата):

На последней фотке под увеличительным стеклом изображение. Слегка кривовато припаял конечно. Да и фиг с ним, главное, что работает. Это был вообще мой второй в жизни опыт пайки чего-то меньше стандартных штырей коннекторов (header pins). Потренироваться паять SMD, 0603 в т.ч., я взял на Ali вот такую платку за доллар. Не так уж сложно на самом деле, даже с недорогим паяльником с того же Али, только припой и флюс нормальный надо — китайский припой только Mechanic более-менее, остальные даже не берите, ими хрен что спаяешь в принципе. Плату с датчиком я паял Felder'ом, флюс с Китая псевдо-Kingbo RMA-218 (вполне норм). Отмывал бензином «Калоша», потом водой с мылом.

Пока все заказы пришли ко мне домой уже появилась готовая сборка от ClosedCube, о который я писал выше и их простенькая библиотека для Arduino. Я взял Arduino Mini Pro и подрубил к нему. Простенький скетч из примера библиотеки и результат с датчика выдается без проблем:

Самое главное! На плате преобразователь уровней напряжения я не разводил! Датчику нужно питание 3.3В. Не подавайте на него питание от Arduino с 5В. У меня Mini Pro питается от 3.3В источника, работает на 16MHz нормально вполне с таким питанием, поэтому уровни согласовывать мне надо, везде 3.3В.


PS: На Ali можно найти недорогие готовые платки с датчиком Si7021. У него точность температуры ±0.4°C, зато он еще и влажность измеряет в пределах ±3% RH. Распиновка у него 1 в 1.

Показать полностью 11
53

Креативный будильник на базе Arduino

Креативный будильник на базе Arduino

Подробнее о проекте можно прочитать вот здесь, на случай ,если кому интересно (http://www.instructables.com/id/Retro-Pac-Man-Clock/)

P.S. этот источник мне скинули в комментариях, так что это не реклама

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

Теплица на Ардуино-Мега. Часть 5.

Поскольку прошлые рассказы о постройке умной теплицы вызвали интерес,

Теплица на Ардуино-Мега. Часть 4.

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

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

Кроме того, 15 апреля я включил автопроветривание, чтобы понаблюдать за его работой.

Посмотреть как работает система автопроветривания и регулирования температуры можно на Youtube.

Попробовал следующие настройки:

открывание окон 25 градусов

закрывание окон 21 градус

включение обогревателя 18 градусов

выключение обогревателя 20 градусов

Нстройки оказались неоптимальными. То есть на улице темпратура 8 градусов и ветер. Примерно каждые 20 минут температура в теплице достигала 25 градусов, окна открывались, теплица быстро проветривалась, окна при 21 градусе начинали закрываться, пока закрывались, температура падала еще ниже, поэтому сразу после закрытия окон на 5 мин. включался обогреватель. Изменил настройки:

открывание окон 28 градусов

закрывание окон 22 градус

включение обогревателя 16 градусов

выключение обогревателя 19 градусов

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

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

Когда переделывал окно, увидел ошибку в программе. Там есть защита от несработки концевика, то есть если концевик не сработал, то мотор работает какое-то время и отключается. Но счетчик попыток я не сделал и мотор, отработав положенные секунды отключается, но затем включается вновь, пытаясь закрыть окно и замкнуть концевик. Допилю код - выложу обновленную версию.

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

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

Простое управление освещением курятника на arduino

Интересная штука эта arduino, но просто сидеть выдумывать безделушки не интересно, решил я в помощь родителям автоматизировать включение выключение света в курятнике с закатом/рассветом. Для реализации мне понадобилось ардуино нано 1шт., реле -2шт. часы реального времени -1шт., светодиодная лента 1м т.б. и 2м х.б., старый БП ATX на 250w -1шт. Повторюсь освещение делал ПРОСТОЕ без ШИМ и димирования т.к. не было под рукой мосфетов. Работает так, утро- включается лента с мягким белым светом, через 20 минут включается лента с холодным белым, все вместе горит 14 часов и выключается лента хол.белого, мягкий продолжает гореть еще 20 мин. чтобы куры успели подготовится ко сну. Получилось очень бюджетно и без наворотов, в общем родители довольны тем, что не нужно контролировать включение и выключение, а куры просто довольны, продолжают нести яйца))) На яйценоскости данная доработка освещения не отразилась, как неслись раньше 1курица - 1 яйцо в день так и продолжают.

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


Проработала такая конструкция пол года, за это время один раз пылесосил БП.


Вот сам скетч https://yadi.sk/d/-5qvlwQezomYk


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

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

Передача звука на Arduino + NRF24L01

Авторское описание:

"Оцифровка аудио сигнала - передача модулями NRF24L01 - и вывод обратно в аналог!

И это все на микроконтроллере ATmega328 (то есть стандартном мк большинства плат Arduino)

Библиотека и скетчи тут - https://yadi.sk/d/75ju8G723EgKUz "

За видео благодарим автора канала VirF Live Productions
https://www.youtube.com/channel/UCjKle2nUQyBIkOJx5ZkpKdQ

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

OrangePi Zero, start!

Сегодня я расскажу как настроить OrangePi Zero с нуля

OrangePi Zero был создан как аналог RaspberryPi Zero, у него есть как и свои плюсы

*встроенный Wifi,

*порт Ethernet,

*нормальное гнездо Usb а не microusb otg

Так и минусы

*Нет HDMI,

*по размеру она толще чем RaspberryPi Zero


Технические характеристики я сравнивать не буду, но у OrangePi Zero есть:

* 4 ядерный Cortex A7 @ 1.2 GHz

* видеокарта(?) Mali-400MP2 GPU @ 600 MHz

* ОП: DDR3 256MB или 512MB (в моей версии было 500MB)

* Сеть 10/100M Ethernet + 802.11 b/g/n WiFi (Allwinner XR819 )

* USB: 1x USB 2.0 host ports, 1x micro USB OTG port

* Аудио выход 3.5мм

* Прочие вкусняшки (приемник IR, TVout, Usb итд)

* Питается Orangepi от 5 вольт через пины или гнездо microusb (ток 1.2-1.5A)

* Размер 52 x 46 mm

* Порт Microsd

* Вес 26 грамм


Купил я Orangepi на алиекпресс за 8 долларов + 3 доллара за доставку.


Установка всего что нужно делится на несколько пунктов:

1. Скачать образ системы и залить его на microsd

2. Включить Orangepi, настроить и подключиться к ней

3. Настроить автоматическое подключение к сети через роутер



Для этого нам понадобятся:

Orangepi, роутер, кабель или два Ethernet, MicroSd карта (у меня карта на 4GB)


1. Скачать образ системы и залить его на microsd

Идем сюда и качаем нужный образ (я выбрал Lubuntu)

Идем сюда, скачиваем себе программу Rufus и запускаем ее



Настраиваем как показано на картинке:

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

Тут главное выбрать нашу microsd и выставить галочки в нужных местах и ключевые свойства

FAT32, MBR для BIOS и UEFI, создать диск запуска используя Образ DD

И выбрать скачанный образ системы.

Когда все настроено надо нажать Start и дождаться конца работы программы.

После этого вставляем Microsd в гнездо на OrangePi.



Включить Orangepi, настроить и подключиться к ней

Подсоединяем OrangePi к роутеру кабелем

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

Пока OrangePi включается, заходим на роутер и открыавем список клиентов в сети роутера

Пока мы занимались роутером, OrangePi должна засветиться красным, так же порт Ethernet должен заморгать(индикация траффика)

Обновляем список клиентов на роутере и ищем новых клиентов

Находим клиента OrangePiZero и смотрим его Ip (192.168.1.111)

Запускаем Putty, вводим в ней этот Ip адресс и нажимаем кнопку Open

Если все сделали правильно, в окне терминала появится запрос логина и пароля

Логин и пароль orangepi

Все! можем работать:)


3. Настроить автоматическое подключение к сети через роутер

Путем гугления я нашел простую команду, которая подсоединяет Orangepi к сети Wifi


sudo nmcli d wifi connect название_сети password пароль_к_WIFi


скорее всего эта команда будет работать только на Ubuntu версии!

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


После этого в терминале должны выписаться все подключения, если этого не произошло, просто вводим в коноль ifconfig и нажимаем ентер

Нас интересует секция WLAN3, она может называться по разному но всегда должна состоять из префикса WLAN(, я думаю это значит что данная сеть есть wifi сетью)
Ищем там адрес IP и запоминаем его.

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


От себя хочу сказать что мне очень помогли эти гайды и если данная тема будет востребована, я сделаю еще постов о том как запустить удаленный рабочий стол с графическим интерфейсом на orangepi, как управлять пинами GPIO и работать с разными датчиками и как запустить простой вебсайт с графиком температуры.

Показать полностью 10
95

Высокоскоростная фотография с помощью Arduino

Высокоскоростная фотография с помощью Arduino

Фотограф Bryan Rolfe использовал Ардуино для скоростного фотографирования лопающихся мыльных пузырей. Исследования показали, что оптимальным способом детектирования разрыва мыльной плёнки является включение пузыря в электрическую цепь вместо одного из плеч резистивного делителя. Плата Arduino Leonardo измеряет напряжение на делителе и при обнаружении разрыва мыльной плёнки отмеряет заданный промежуток времени и активирует фотовспышку.


Изменяя этот промежуток времени, можно получить фотографии различных этапов разрыва мыльной плёнки. Фотоаппарат при этом настроен на длительную экспозицию, а съёмка проводится в затемнённом помещении.


Мануал есть вот тут: http://www.instructables.com/id/High-Speed-Droplet-Photograp...

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

Управление обогревом на даче через GSM

Ну, собственно,  никогда не писал на сях, ни разу не видел ардуину.

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

Решили поставить 2 электрообогревателя, один на 2 киловатта, один, соответственно, на 1КВт. Чтобы ими управлять пошел в "мегафон" чтобы купить gsm розетку. От цены офигел.

Пошел тогда на aliexpress и купил там: neoway m590e в разобранном виде, ардуину, блок реле и i2c экранчик (в принципе он не нужен).

Блок питания взял от дохлого коммутатора (5В 1А). Поскольку мощности БП явно недостаточно на модем, экранчик и реле (ток иногда подскакивает до 2А) было добавлено пару конденсаторов.

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

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

Ну и еще - вот чего я тут писькой навилял - чтобы если кто будет начинать - им было от чего отталкиваться:

https://drive.google.com/open?id=0B9aiJLHzktRhMVpvX3RGTUtNZm...


Постарался все распихать по функциям, щедро разбавив комментариями.


Все удовольствие, включая экранчик, щиток и начинку щитка обошлось в 2 тысячи.

Экранчик для работы не нужен, вообще-то.



А теперь вопрос сообществу:

Есть ардуина, есть блок питания на 5 вольт. Нужно подключить дымовой извещатель:

Подскажите, как это сделать с наименьшим геморроем?

Показать полностью 3
Отличная работа, все прочитано!