sonyps4.ru

Arduino будильник таймер часы термометр. LCD часы, будильник и таймер с детектором движения на Arduino

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

Михаил Чобанян, основатель bitcoin-агентства KUNA рассказал о перспективах майнинга и о том, когда закончится код биткоина.

«Сейчас майнит (от английского глагола mine — добывать), наверное, даже бабушка у себя дома, по определенному тарифу. Это уже проблема. Второй… как бы правильно ответить, чтобы политкорректно было. Спрос настолько велик на майнинг, что даже непрофильные люди, до конца не изучив тематику, инвестируют деньги в видеокарты и оборудование, а дальше по ходу будут разбираться. На фабриках, которые производят чипы для видеокарт, безумные предзаказы. Осталось месяца полтора-два, когда все эти чипы и видеокарты попадут на рынок, и, соответственно, очень резко все начнут майнить. Даже если сейчас вы захотите начать майнить, вам оборудование никто не продаст, потому что его физически нет. Нужно ждать минимум два месяца. Когда это все случится, будет очень интересное время. Сложность майнинга усилится очень быстро, и, соответственно, у кого дорогое электричество или неправильно настроено оборудование, или неправильную валюту он там выбрал, то он будет, не очень конкурентоспособным. И очень интересно будет посмотреть, как цена отразится на этом безумном всплеске. Поэтому будет веселое время, конец лета будет интересно наблюдать.

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

Также эксперт поделился своими мыслями насчет того, когда закончится код биткоина.

«Он закончиться не может, мы не доживем до того, как закончится эмиссия биткоина. Это будет 2139-2140 год. Думаю, мы с вами не доживем. Но майнинг продолжится. Сейчас майнит определенное количество видеокарт в мире. А через месяца два их будет раза в три больше. Соответственно, у всех будет такая логика — нужно их куда-то пристроить, чтобы они начали себя окупать. Они заполонят все, и произойдет выравнивание на всех рынках».

Павел Салас, генеральный директор eToro Russia&CIS, поделился с сайтом телеканала «Звезда» подробностями того, как майнинг происходит.

Сейчас это стало популярно в связи с самой популярностью криптовалют. Чем больше компьютеров появляется, тем больше мощность нужна для того, чтобы можно было запечатать этот блок… сейчас есть майнинговые фермы, то есть большое количество оборудования, и компьютеров, и видеокарт, которые используются для этого. Одни из самых больших таких ферм находятся в Китае, причем рядом с гидроэлектростанциями, то есть у них очень дешевое электричество. Это целый ангар, который оснащен всем этим оборудованием, там поддерживается специальная температура, и 24 часа в сутки компьютеры стараются подобрать код быстрее других компьютеров в сети, чтобы расшифровать блок и получить прибыль с этого. Соответственно, рядовому человеку сейчас уже пытаться майнить такие популярные криптовалюты как биткойн или эфириум достаточно сложно. Но с учетом того, что сейчас уже около трехсот разных криптовалют, если не больше, есть те, которые майнить пока еще можно, пока еще прибыльно. Люди пытаются влезть туда.

Разумеется, сейчас майнинг происходит за счет видеокарт, потому что считает быстрее, чем основной процессор компьютера. Поэтому акции компаний NVidia и AMD очень сильно подскочили. Та же NVidia планирует в конце этого года представить специальную аппаратуру для майнинга, это восемь видеокарт со специальным процессом, и это может уже самостоятельно майнить криптовалюты.

Люди, которые видят, что деньги практически ускользают у них из рук, пытаются как-то влезть и тоже получить кусочек пирога. Есть другие, более ушлые люди, которые видят, что есть большой спрос, с удовольствием сделают какое-нибудь предложение, которое может облегчить жизнь, и по дороге они получат деньги, не рискуя ничем. Потому что майнинг сопряжен с какими основными рисками? С тем, что стоимость аппаратуры просто не окупится. Минимальная стоимость криптовалют, даже если она пойдет вниз, будет стоить по большому счету стоимости аппаратуры плюс электричество».

Однако, Павел Салас предостерегает — занимаясь криптовалятами и майнингом на уровне любителя, можно легко стать жертвой мошенников:

«Когда есть спрос, будет и предложение для тех людей, которые ни за что хотят получить кусок денег еще быстрее. Эти консультанты… тут спорный вопрос. Я не могу сказать за всех, но, если конкретно выбирать, то можно понять, дурит он голову или нет. Надо понимать, чему он научит. Он научит купить компьютер, определенные видеокарты, скачать определенную программу, чтобы начать майнить? Если он будет учить этому, то в принципе здесь он не дурит голову, продает просто знания, для того чтобы человек мог сам заработать. Если же другие консультанты, которые, например, дают часть своего компьютера в лизинг или аренду, чтобы другие люди майнии

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

Такого же мнения придерживается и Сергей Лоншаков визионер Airlab, блокчейн-разработчик. Он также рассказал сайту телеканала «Звезда» о том, что будет с майнингом в ближайшее время.

«Майнинг был все годы, — технологии блокчейн и криптовалюты, прибыльным. Это всегда было прибыльно, а сейчас когда о технологии блокчейна поговорили даже Владимир Путин с Виталиком Бутериным (основателем второй по капитализации валютной сети Etherium), это стало вызывать у людей серьезную заинтересованность. Этот небывалый всплеск продолжается уже ровно последние пол года. Уже были волны, всплеск доходности майнинга, первый всплеск доходности был, когда первые айсики (ASIC — специализированное оборудование для решения задач, необходимых для майнинга) начали производиться для майнинга биткоина и тогда доходность на этом оборудовании превышала все возможные смелые ожидания людей по вложениям. Эффективность майнинга доходила до 1000 %. Но эти волны быстро гасятся большим количеством людей, которые сразу вовлекаются.

Сейчас именно это и происходит, и биткоин вырос в несколько раз за последний год с нижних плашек с 700 долларов до 2700, и Etherium с 15 долларов до 300. Сейчас люди просто заходят на сайт и по расчету прибыльности видят, что видеокарта купленная за 15 тысяч рублей им принесет за год 60 тыс. рублей дохода. Но здесь нужно учитывать, что таких людей которые зашли сейчас и посмотрели, что прибыльность прямо в этот момент у видеокарты составляет 4 раза, они должны понимать, что сейчас зашло примерно миллион людей по всему миру и когда много новых мощностей подключится к сети все равно повысится ее сложность и доходность будет не такой, как они ожидают. Я вот о чем переживаю, что люди сейчас совсем ажиотажно бросились на майнинг, не имея абсолютно никакой компетентности, а потом будут разочарованы, потому что они относятся к майнингу как к дополнительному виду дохода. Это не так, майнинг — это только для тех, кто готов профессионально этим заниматься».

Читают сейчас

Один из разработчиков криптовалюты Bitcoin Private Мануэль Асколи рассказал, что другой член команды Джейк Брутман, который контролирует финансы, Github и соцсети, покинул проект. Он удалился из групп альткоина в Discord ...read more

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

Михаил Чобанян, основатель bitcoin-агентства KUNA рассказал о перспективах майнинга и о том, когда закончится код биткоина.

«Сейчас майнит (от английского глагола mine - добывать), наверное, даже бабушка у себя дома, по определенному тарифу. Это уже проблема. Второе... как бы правильно ответить, чтобы политкорректно было. Спрос настолько велик на майнинг, что даже непрофильные люди, до конца не изучив тематику, инвестируют деньги в видеокарты и оборудование, а дальше по ходу будут разбираться. На фабриках, которые производят чипы для видеокарт, безумные предзаказы. Осталось месяца полтора-два, когда все эти чипы и видеокарты попадут на рынок, и, соответственно, очень резко все начнут майнить. Даже если сейчас вы захотите начать майнить, вам оборудование никто не продаст, потому что его физически нет. Нужно ждать минимум два месяца. Когда это все случится, будет очень интересное время. Сложность майнинга усилится очень быстро, и, соответственно, у кого дорогое электричество или неправильно настроено оборудование, или неправильную валюту он там выбрал, то он будет не очень конкурентоспособным. И очень интересно будет посмотреть, как цена отразится на этом безумном всплеске. Поэтому будет веселое время, конец лета будет интересно наблюдать.

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

Также эксперт поделился своими мыслями насчет того, когда закончится код биткоина.

«Он закончиться не может, мы не доживем до того, как закончится эмиссия биткоина. Это будет 2139-2140 год. Думаю, мы с вами не доживем. Но майнинг продолжится. Сейчас майнит определенное количество видеокарт в мире. А через месяца два их будет раза в три больше. Соответственно, у всех будет такая логика - нужно их куда-то пристроить, чтобы они начали себя окупать. Они заполонят все, и произойдет выравнивание на всех рынках».

Павел Салас, генеральный директор eToro Russia&CIS, поделился с сайтом телеканала «Звезда» подробностями того, как происходит майнинг.

Сейчас это стало популярно в связи с самой популярностью криптовалют. Чем больше компьютеров появляется, тем больше мощность нужна для того, чтобы можно было запечатать этот блок... сейчас есть майнинговые фермы, то есть большое количество оборудования, и компьютеров, и видеокарт, которые используются для этого. Одни из самых больших таких ферм находятся в Китае, причем рядом с гидроэлектростанциями, то есть у них очень дешевое электричество. Это целый ангар, который оснащен всем этим оборудованием, там поддерживается специальная температура, и 24 часа в сутки компьютеры стараются подобрать код быстрее других компьютеров в сети, чтобы расшифровать блок и получить прибыль с этого. Соответственно, рядовому человеку сейчас уже пытаться майнить такие популярные криптовалюты как биткойн или эфириум достаточно сложно. Но с учетом того, что сейчас уже около трехсот разных криптовалют, если не больше, есть те, которые майнить пока еще можно, пока еще прибыльно. Люди пытаются влезть туда.

Разумеется, сейчас майнинг происходит за счет видеокарт, потому что считает быстрее, чем основной процессор компьютера. Поэтому акции компаний NVidia и AMD очень сильно подскочили. Та же NVidia планирует в конце этого года представить специальную аппаратуру для майнинга, это восемь видеокарт со специальным процессом, и это может уже самостоятельно майнить криптовалюты.

Люди, которые видят, что деньги практически ускользают у них из рук, пытаются как-то влезть и тоже получить кусочек пирога. Есть другие, более ушлые люди, которые видят, что есть большой спрос, с удовольствием сделают какое-нибудь предложение, которое может облегчить жизнь, и по дороге они получат деньги, не рискуя ничем. Потому что майнинг сопряжен с какими основными рисками? С тем, что стоимость аппаратуры просто не окупится. Минимальная стоимость криптовалют, даже если она пойдет вниз, будет стоить по большому счету стоимости аппаратуры плюс электричество».

Однако, Павел Салас предостерегает - занимаясь криптовалятами и майнингом на уровне любителя, можно легко стать жертвой мошенников:

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

Такого же мнения придерживается и Сергей Лоншаков - визионер Airlab, блокчейн-разработчик. Он также рассказал сайту телеканала «Звезда» о том, что будет с майнингом в ближайшее время.

«Майнинг был все годы, - технологии блокчейн и криптовалюты, прибыльным. Это всегда было прибыльно, а сейчас когда о технологии блокчейна поговорили даже Владимир Путин с Виталиком Бутериным (основателем второй по капитализации валютной сети Etherium), это стало вызывать у людей серьезную заинтересованность. Этот небывалый всплеск продолжается уже ровно последние пол года. Уже были волны, всплеск доходности майнинга, первый всплеск доходности был, когда первые айсики (ASIC - специализированное оборудование для решения задач, необходимых для майнинга) начали производиться для майнинга биткоина и тогда доходность на этом оборудовании превышала все возможные смелые ожидания людей по вложениям. Эффективность майнинга доходила до 1000 %. Но эти волны быстро гасятся большим количеством людей, которые сразу вовлекаются.

Сейчас именно это и происходит, и биткоин вырос в несколько раз за последний год с нижних плашек с 700 долларов до 2700, и Etherium с 15 долларов до 300. Сейчас люди просто заходят на сайт и по расчету прибыльности видят, что видеокарта, купленная за 15 тысяч рублей, им принесет за год 60 тыс. рублей дохода. Но здесь нужно учитывать, что таких людей которые зашли сейчас и посмотрели, что прибыльность прямо в этот момент у видеокарты составляет 4 раза, они должны понимать, что сейчас зашло примерно миллион людей по всему миру и когда много новых мощностей подключится к сети все равно повысится ее сложность и доходность будет не такой, как они ожидают. Я вот о чем переживаю, что люди сейчас совсем ажиотажно бросились на майнинг, не имея абсолютно никакой компетентности, а потом будут разочарованы, потому что они относятся к майнингу как к дополнительному виду дохода. Это не так, майнинг - это только для тех, кто готов профессионально этим заниматься».

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

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

Многие будильники на Ардуино стараются воспроизвести спектр солнечного света при помощи специальных лампочек, повторяющих оттенок и температуру цвета утреннего солнца. Тем не менее, в нашем варианте будут использоваться обычные RGB диоды, которые могут примерно воссоздать ощущение естественного освещения и, кроме того, могут создать различные уникальные цветовые комбинации и эффекты. Сборка будет базироваться на Ардуино Уно с модулем Real Time Clock (RTC) и 7 сегментным экраном часов.

Шаг 1: Список материалов

  • Деревянная шкатулка (корпус) (Amazon)
  • Ардуино Уно или его эквивалент
  • Регулятор вольтажа LM7805 5V
  • Модуль Real Time Clock (RTC) (Amazon)
  • 7-сегментный светодиодный дисплей для часов (Amazon)
  • Потенциометр (Amazon)
  • Датчик угла поворота (крутилка) (Amazon)
  • Кнопки для крутилок. Можно использовать кнопки для электрогитары
  • Кнопочный выключатель со светодиодом (Amazon)
  • Акриловые стержни (Amazon)
  • RGB светодиоды WS2812B – 8 штук (Amazon)
  • Винты и гайки
  • Небольшие магниты
  • Печатная или макетная плата + провода
  • Морилка для дерева

Шаг 2: Дизайн

Схему сборки вы найдёте по ссылке. Ключевым элементом часов будет модуль RTC. Он обеспечивает надежную сохранность заданного времени и у него есть небольшая батарейка, на случай, если весь будильник будет выключен. Модуль RTC и 7сегментный дисплей взаимодействуют с Ардуино через протокол I2C.

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

Я использовал адаптер питания на 9V со встроенным джеком 5,5*2,5 мм. Регулятор LM7805 нужен для понижения вольтажа до 5V. Мой показывал 0,75A на 9V и меня всё устраивало, потому что диодам WS2812B вполне хватало этого питания на максимуме их яркости. На полной яркости весь прибор потреблял около 450mA.

Всё железо вместилось в деревянную шкатулку (вы можете покрасить её для более приятного вида). Используемые восемь светодиодов WS2812B можно программировать, чтобы получать разные световые эффекты. Их свет рассеивается через акриловые стержни, установленные в верхней части шкатулки. Для установки стержней, на 3D принтере была напечатана пластина, о которой будет написано позже.

Файлы

Шаг 3: Проводка и изоляция





Для своего проекта я создал печатную плату, основанную на схеме «голого» Ардуино Уно с регулятором LM7805, заглушками и зонами для соединения с RTC и 7сегментным дисплеем. Всё лишнее было просто срезано с платы, чтобы она могла поместиться в шкатулку. Если у вас нет подходящей платы, то просто припаяйте модули, переключатели и светодиоды к Ардуино Уно.

У потенциометра один конец идет на землю (GND), другой на 5V, а средний на аналоговый вход. Крутилки нужно припаять к земле и к двум пинам прерывания (2 и 3) на Ардуино. Кнопка на крутилке и верхняя кнопка припаиваются к земле и к соответствующим пинам цифрового ввода. Также не забудьте соединить питание со светодиодом на верхней кнопке (если у вас такая же кнопка, как у меня). Дисплей и модуль RTC соединяем проводами с 5V, GND и соответствующими пинами SDA и SCL на Ардуино. Я использовал конденсаторы 1uF на входе и выходе LM7805 и еще один на 5V дорожке для поддержки светодиодов.

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

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

При сверлении отверстий нужно учесть, что вам, скорее всего, будет удобней сверлить снаружи внутрь и использовать острое сверло и лезвия, чтобы свести к минимуму сколы на дереве. По этой же причине была сделана основа для акриловых стержней — сверление дырок в дереве под каждый стержень наделало бы много «грязи».

Файлы

Шаг 4: Светодиоды и окрашивание





Показать еще 5 изображений






Соедините провода 5V, GND и линию данных с полоской из восьми диодов WS2812B. Я подстраховался, смазав соединения эпоксидкой, поскольку они часто разрываются при нагрузке и их потом очень сложно восстановить. Далее я просто приклеил их к внутренней части шкатулки.

Акриловые стержни были нарезаны по две штуки на каждую длину: 6, 8, 10, 12см. Затем я прошелся по срезам наждачкой и отполировал. Самым простым способом установки акриловых стержней будет аккуратно просверлить дырки в дереве. Я не справился с задачей, повредив древесину, поэтому я напечатал на 3D принтере простую основу, которая позволяла бы также поместить внутрь себя светодиоды. В целом эта деталь получилась аккуратной. Она надёжно держала стрежни на одном уровне со светодиодами, так что даже не пришлось ничего клеить, а еще эта основа добавляет немного контраста эстетике часов. Чтобы шкатулка не открывалась, я приклеил к корпусу и крышке небольшие магниты.

Всё что осталось сделать — покрасить корпус, закрыв те части, которые вы хотите оставить неокрашенными (лучше окрасить весь корпус перед тем, как вы будете устанавливать в него железо)

Файлы

Шаг 5: Код и итоговый вид


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

  • RTClib.h — библиотека Real Time Clock
  • Adafruit_Neopixel.h — использовалась для диодов WS2812B
  • Adafruit_GFX.h и Adafruit_LEDBackpack.h — для 7сегментного дисплея часов
  • Wire.h — для I2C-связи с дисплеем и RTC
  • TimerOne.h и EEPROM.h

Однократное нажатие кнопки на крутилке позволяет включить\выключить и настроить будильник, используя крутилку. Долгое нажатие на кнопку крутилки позволяет задать настройки времени, используя крутилку. Нажатие на верхнюю кнопку включает светодиоды. Когда они включены, кнопка крутилки меняет режимы свечения, а поворачивая крутилку можно менять яркость свечения. Режимы и яркость сохранены в EEPROM. Настройки таковы, что при установке будильника на определённое время, диоды загорятся на минимальной яркости в последнем установленном режиме свечения. Через 20 минут, яркость постепенно увеличится до максимально возможной. Еще через 20 минут свет погаснет (нажав на верхнюю кнопку можно выключить его раньше).

Данная сборка будильника не включает в себя звуковые сигналы. Я просто использую будильник на телефоне в дополнение к будильнику-восходу, чтобы подстраховать себя от того, что просплю. Например, я установил будильник на 5 утра, максимально ярко он будет гореть в 5:20. На случай, если я не проснусь, также на 5:20 установлен звуковой будильник на телефоне. Затем я точно просыпаюсь, занимаюсь утренними делами и в 5:40 будильник сам выключается.

Режимы свечения включают:

  • Сплошное свечение желтым\оранжевым, настроенное примерно на цветовую температуру восхода
  • Несколько разных оттенков желтого\оранжевого, оранжевого\красного — эффект меняющихся цветов восхода солнца
  • Эффект радуги. Изменяется через настройки RGB, посылаемые на светодиоды
  • Несколько различных двуцветных эффектов, которые медленно переходят один в другой через светодиоды.

Теперь и у вас будет стильный будильник-восход на светодиодах, который поможет вам приятно вставать по утрам!

Во многих проектах Ардуино требуется отслеживать и фиксировать время наступления тех или иных событий. Модуль часов реального времени, оснащенный дополнительной батарей, позволяет хранить текущую дату, не завися от наличия питания на самом устройстве. В этой статье мы поговорим о наиболее часто встречающихся модулях RTC DS1307, DS1302, DS3231, которые можно использовать с платой Arduino.

Модуль часов представляет собой небольшую плату, содержащей, как правило, одну из микросхем DS1307, DS1302, DS3231.Кроме этого, на плате практически можно найти механизм установки батарейки питания. Такие платы часто применяется для учета времени, даты, дня недели и других хронометрических параметров. Модули работают от автономного питания – батареек, аккумуляторов, и продолжают проводить отсчет, даже если на Ардуино отключилось питание. Наиболее распространенными моделями часов являются DS1302, DS1307, DS3231. Они основаны на подключаемом к Arduino модуле RTC (часы реального времени).

Часы ведут отсчет в единицах, которые удобны обычному человеку – минуты, часы, дни недели и другие, в отличие от обычных счетчиков и тактовых генераторов, которые считывают «тики». В Ардуино имеется специальная функция millis(), которая также может считывать различные временные интервалы. Но основным недостатком этой функции является сбрасывание в ноль при включении таймера. С ее помощью можно считать только время, установить дату или день недели невозможно. Для решения этой проблемы и используются модули часов реального времени.

Электронная схема включает в себя микросхему, источник питания, кварцевый резонатор и резисторы. Кварцевый резонатор работает на частоте 32768 Гц, которая является удобной для обычного двоичного счетчика. В схеме DS3231 имеется встроенный кварц и термостабилизация, которые позволяют получить значения высокой точности.

Сравнение популярных модулей RTC DS1302, DS1307, DS3231

В этой таблице мы привели список наиболее популярных модулей и их основные характеристики.

Название Частота Точность Поддерживаемые протоколы
DS1307 1 Гц, 4.096 кГц, 8.192 кГц, 32.768 кГц Зависит от кварца – обычно значение достигает 2,5 секунды в сутки, добиться точности выше 1 секунды в сутки невозможно. Также точность зависит от температуры. I2C
DS1302 32.768 кГц 5 секунд в сутки I2C, SPI
DS3231 Два выхода – первый на 32.768 кГц, второй – программируемый от 1 Гц до 8.192 кГц ±2 ppm при температурах от 0С до 40С.

±3,5 ppm при температурах от -40С до 85С.

Точность измерения температуры – ±3С

I2C

Модуль DS1307

DS1307 – это модуль, который используется для отсчета времени. Он собран на основе микросхемы DS1307ZN, питание поступает от литиевой батарейки для реализации автономной работы в течение длительного промежутка времени. Батарея на плате крепится на обратной стороне. На модуле имеется микросхема AT24C32 – это энергонезависимая память EEPROM на 32 Кбайт. Обе микросхемы связаны между собой шиной I2C. DS1307 обладает низким энергопотреблением и содержит часы и календарь по 2100 год.

Модуль обладает следующими параметрами:

  • Питание – 5В;
  • Диапазон рабочих температур от -40С до 85С;
  • 56 байт памяти;
  • Литиевая батарейка LIR2032;
  • Реализует 12-ти и 24-х часовые режимы;
  • Поддержка интерфейса I2C.

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

Взаимодействие с другими устройствами и обмен с ними информацией производится с помощью интерфейса I2C с контактов SCL и SDA. В схеме установлены резисторы, которые позволяют обеспечивать необходимый уровень сигнала. Также на плате имеется специальное место для крепления датчика температуры DS18B20.Контакты распределены в 2 группы, шаг 2,54 мм. В первой группе контактов находятся следующие выводы:

  • DS – вывод для датчика DS18B20;
  • SCL – линия тактирования;
  • SDA – линия данных;
  • VCC – 5В;

Во второй группе контактов находятся:

  • SQ – 1 МГц;
  • BAT – вход для литиевой батареи.

Для подключения к плате Ардуино нужны сама плата (в данном случае рассматривается Arduino Uno), модуль часов реального времени RTC DS1307, провода и USB кабель.

Чтобы подключить контроллер к Ардуино, используются 4 пина – VCC, земля, SCL, SDA.. VCC с часов подключается к 5В на Ардуино, земля с часов – к земле с Ардуино, SDA – А4, SCL – А5.

Для начала работы с модулем часов нужно установить библиотеки DS1307RTC, TimeLib и Wire. Можно использовать для работы и RTCLib.

Проверка RTC модуля

При запуске первого кода программа будет считывать данные с модуля раз в секунду. Сначала можно посмотреть, как поведет себя программа, если достать из модуля батарейку и заменить на другую, пока плата Ардуино не присоединена к компьютеру. Нужно подождать несколько секунд и вытащить батарею, в итоге часы перезагрузятся. Затем нужно выбрать пример в меню Examples→RTClib→ds1307. Важно правильно поставить скорость передачи на 57600 bps.

При открытии окна серийного монитора должны появиться следующие строки:

Будет показывать время 0:0:0. Это связано с тем, что в часах пропадает питание, и отсчет времени прекратится. По этой причине нельзя вытаскивать батарею во время работы модуля.

Чтобы провести настройку времени на модуле, нужно в скетче найти строку

RTC.adjust(DateTime(__DATE__, __TIME__));

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

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

Считывание времени. Как только модуль настроен, можно отправлять запросы на получение времени. Для этого используется функция now(), возвращающая объект DateTime, который содержит информацию о времени и дате. Существует ряд библиотек, которые используются для считывания времени. Например, RTC.year() и RTC.hour() – они отдельно получают информацию о годе и часе. При работе с ними может возникнуть проблема: например, запрос на вывод времени будет сделан в 1:19:59. Прежде чем показать время 1:20:00, часы выведут время 1:19:00, то есть, по сути, будет потеряна одна минута. Поэтому эти библиотеки целесообразно использовать в случаях, когда считывание происходит нечасто – раз в несколько дней. Существуют и другие функции для вызова времени, но если нужно уменьшить или избежать погрешностей, лучше использовать now() и из нее уже вытаскивать необходимые показания.

Пример проекта с i2C модулем часов и дисплеем

Проект представляет собой обычные часы, на индикатор будет выведено точное время, а двоеточие между цифрами будет мигать с интервалом раз в одну секунду. Для реализации проекта потребуются плата Arduino Uno, цифровой индикатор, часы реального времени (в данном случае вышеописанный модуль ds1307), шилд для подключения (в данном случае используется Troyka Shield), батарейка для часов и провода.

В проекте используется простой четырехразрядный индикатор на микросхеме TM1637. Устройство обладает двухпроводным интерфейсом и обеспечивает 8 уровней яркости монитора. Используется только для показа времени в формате часы:минуты. Индикатор прост в использовании и легко подключается. Его выгодно применять для проектов, когда не требуется поминутная или почасовая проверка данных. Для получения более полной информации о времени и дате используются жидкокристаллические мониторы.

Модуль часов подключается к контактам SCL/SDA, которые относятся к шине I2C. Также нужно подключить землю и питание. К Ардуино подключается так же, как описан выше: SDA – A4, SCL – A5, земля с модуля к земле с Ардуино, VCC -5V.

Индикатор подключается просто – выводы с него CLK и DIO подключаются к любым цифровым пинам на плате.

Скетч. Для написания кода используется функция setup, которая позволяет инициализировать часы и индикатор, записать время компиляции. Вывод времени на экран будет выполнен с помощью loop.

#include #include "TM1637.h" #include "DS1307.h" //нужно включить все необходимые библиотеки для работы с часами и дисплеем. char compileTime = __TIME__; //время компиляции. #define DISPLAY_CLK_PIN 10 #define DISPLAY_DIO_PIN 11 //номера с выходов Ардуино, к которым присоединяется экран; void setup() { display.set(); display.init(); //подключение и настройка экрана. clock.begin(); //включение часов. byte hour = getInt(compileTime, 0); byte minute = getInt(compileTime, 2); byte second = getInt(compileTime, 4); //получение времени. clock.fillByHMS(hour, minute, second); //подготовка для записывания в модуль времени. clock.setTime(); //происходит запись полученной информации во внутреннюю память, начало считывания времени. } void loop() { int8_t timeDisp; //отображение на каждом из четырех разрядов. clock.getTime();//запрос на получение времени. timeDisp = clock.hour / 10; timeDisp = clock.hour % 10; timeDisp = clock.minute / 10; timeDisp = clock.minute % 10; //различные операции для получения десятков, единиц часов, минут и так далее. display.display(timeDisp); //вывод времени на индикатор display.point(clock.second % 2 ? POINT_ON: POINT_OFF);//включение и выключение двоеточия через секунду. } char getInt(const char* string, int startIndex) { return int(string - "0") * 10 + int(string) - "0"; //действия для корректной записи времени в двухзначное целое число. В ином случае на экране будет отображена просто пара символов. }

После этого скетч нужно загрузить и на мониторе будет показано время.

Программу можно немного модернизировать. При отключении питания выше написанный скетч приведет к тому, что после включения на дисплее будет указано время, которое было установлено при компиляции. В функции setup каждый раз будет рассчитываться время, которое прошло с 00:00:00 до начала компиляции. Этот хэш будет сравниваться с тем, что хранятся в EEPROM, которые сохраняются при отключении питания.

Для записи и чтения времени в энергонезависимую память или из нее нужно добавить функции EEPROMWriteInt и EEPROMReadInt. Они нужны для проверки совпадения/несовпадения хэша с хэшем, записанным в EEPROM.

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

В результате в коде нужно будет указать новую библиотеку (для жидкокристаллических экранов это LiquidCrystal), и добавить в функцию loop() строки для получения даты.

Алгоритм работы следующий:

  • Подключение всех компонентов;
  • Проверка – на экране монитора должны меняться ежесекундно время и дата. Если на экране указано неправильное время, нужно добавить в скетч функцию RTC.write (tmElements_t tm). Проблемы с неправильно указанным временем связаны с тем, что модуль часов сбрасывает дату и время на 00:00:00 01/01/2000 при выключении.
  • Функция write позволяет получить дату и время с компьютера, после чего на экране будут указаны верные параметры.

Заключение

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

12 октября 2011 в 12:10

Простые бинарные часы с будильником на Arduino

  • Разработка под Arduino

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

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

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

Первые шаги

Саму плату Arduino проще всего купить, но зачем в очередной раз тратиться, если можно и изготовить вручную. Поэтому я попросил человека, для которого это пустяк, помочь мне. Благо инструкций и примеров в интернете предостаточно.
И уже через пару дней платка была у меня.

Еще понадобится breadboard и провода для соединения, вот их, пришлось заказать. Доставка много времени не заняла.

Также мелочевка, в виде резисторов, светодиодов, кнопочек, пьезопищалок и то, что можно найти, разобрав старый модем или привод CD-ROM. У меня еще были запасы старых советских радиодеталей.

Для начала этого более чем достаточно. Теперь можно начать тренироваться, для начала поморгать светодиодами, разобраться как работать с аналоговыми разъемами и с ШИМ.

Возврат к первоначальной идее. Подготовка

Разобравшись с основными принципами работы arduino и средой разработки, возвращаемся к идее сделать бинарные часы. Только мне уже захотелось немножко большего, не просто сделать отображение часов и минут, а еще хоть простенький будильник добавить.
Таким образом, для всего этого нам понадобится:
  • arduino;
  • breadboard (не обязательно, можно сразу припаивать все на макетную плату);
  • провода. Для перемычек я вообще использовал из витой пары, они там медные, замечательно паяются, а для подключения к arduino из корпусов старых системников, т.к. на самодельной arduino у меня штырьки, а не разъемы, в отличие от заводской;
  • 13 светодиодов;
  • 4 кнопочки (одна с фиксацией);
  • 14 резисторов 220 Ом, можно и 360 Ом (для светодиодов и пищалки);
  • 4 резистора примерно по 2.2 кОм (для кнопок);
  • пьезопишалка.

Как они будут работать


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

Схемы

Светодиоды подключаются очень просто, только их обязательно через резисторы надо втыкать, одну ногу на землю, другую в arduino, к пинам от 0 до 8 и от 10 до 13. Резистор можно подключать хоть со стороны земли, хоть со стороны платы.

Все как на следующей схеме, все выводы расписаны.

Для подключения пищалки как раз и оставил свободный 9 пин, так как нам нужен пин поддерживающий ШИМ. Резистор к пищалке я прицепил на 220 Ом, но можно и поменьше, громче будет пищать. Что такое ШИМ можно прочитать .

Так как на arduino моего типа больше нет свободных цифровых пинов(если приобрести Arduino Mega, то там их еще много), под кнопки придется использовать аналоговые. Один выход выводим на землю, другой через резистор к arduino. Разница подключения к аналоговым пинам в том, что мы уже будем считывать не цифровой сигнал HIGH или LOW, а уровень входного напряжения, преобразованный в целочисленное значение. Поэтому определять нажата кнопка или нет, придется путем проверки значения с АЦП. Займут они аналоговые пины с 0 по 3.

Две кнопки для задания минут и часов. Одна для переключения режимов. И еще одна, которая с фиксацией, для включения/выключения подсветки светодиодов.

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

Общий вид:

Ее можно легко собрать на breadboard. Но хочется же законченное устройство, хоть и подключенное к arduino.

Прикинем, как будет работать и выглядеть

Поэтому, сначала все – таки набросаем наш скетч, в которой пока сделаем переключение минут, и соберем все это на breadboard, для проверки.

Собрали, подключили:

Работает. Отлично.

Теперь посмотрим, как это будет выглядеть уже на плате.

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

Будем паять

Прежде всего, надо проверить то, что у нас работало на breadboard.

И убедившись, что я еще на что-то способен, в плане припаять и не спалить, можно продолжать.

В итоге получается следующая конструкция, которая хоть и выглядит достаточно топорно, но работает вполне стабильно.

Код

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

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

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



Загрузка...