Плюсы

Показаны сообщения с ярлыком Arduino. Показать все сообщения
Показаны сообщения с ярлыком Arduino. Показать все сообщения

понедельник, 2 января 2017 г.

Проект онлайн-радио Karadio на базе ESP8266 и VS1053



Хочу познакомить русскоязычных пользователей интернета с очень интересным проектом под названием Karadio. Данное устройство позволяет проигрывать потоки интернет-радиостанций, которых огромное множество на сегодня. Устройство полностью автономно и способно воспроизводить потоки без участия компьютера. Устройству необходим только выход в интернет посредством Wifi (например, с помощью роутера).
Для самого минимума постройки этого проекта необходимо две платы ESP8266 и VS1053. Можно добавить дополнительно усилитель для вывода звука на динамики и различного рода дисплеи для отображения информации о потоке. Понадобится еще блок питания на 5В и 3,3В или преобразователи напряжения DC-DC. При подключении дисплея необходима плата Arduino mini или nano.
На данный момент этот проект является самым прогрессивным на территории интернета (как мне кажется).

 С руссификацией дисплея уже разобрался, нашел в интернете шрифт кириллический на ЭТОЙ странице и просто скопировал его числовой массив в один из ненужных шрифтов. Править нужно файл u8g_font_data.c по пути "C:\Users\Andrew\Documents\Arduino\libraries\U8glib_Arduino-master\src\clib" у вас может быть чуть иной путь.
Теперь все нормально отображается, стало удобнее пользоваться радио, потому что я слушаю преимущественно русскоязычные радиостанции.
Более подробно об этом проекте можно узнать на страницах сайтов:

По этим ссылкам вы можете найти схему устройства, прошивку для ESP8266 и Arduino Pro mini, а также связаться с автором проекта, написать ему сообщение. Если вам понравится эта разработка, то есть возможность поддержать автора материально.

А пока можно посмотреть на то, как получилось повторить эту конструкцию мне. Онлайн-радио сделано на базе готовой mp3 колонки (кубика) Atlanfa, которую можно найти сейчас почти везде. Отсеком для дополнительных аккумуляторов я пожертвовал и разместил в нем дисплей и Arduino nano. Слева ручка потенциометра усилителя (громкость). Справа гнездо блока питания 5В. Позже я добавил гнездо для наушников. Динамики при подключении наушников не отключаются, просто убавляю громкость усилителя на ноль. Дисплей очень маленький, но его хватает для отображения минимальной информации, тем более практика показала, что и она не нужна. В будущем автор планирует добавить управление воспроизведением с помощью IR пульта. А пока есть возможность переключать каналы через Web-интерфейс в браузере смартфона или компьютера. Правда, есть еще возможность подключить несколько обыкновенных кнопок к радио, но я не стал этого делать, потому что они тоже требуют свободного места.
После включения радио начинает играть спустя несколько секунд. Web-интерфейс немного подтормаживает и долго не появляется в браузере. А в остальном все очень здорово. Качество звука хорошее, на уровне колонки Atlanfa примерно. Слышны тихие щелчки, видимо, их дает ESP8266 своей деятельностью. Возможно, кое-где стоит проложить экранированные провода (до усилителя).
При воспроизведении потребление тока около 500мА, а в момент запуска больше одного ампера. Без усилителя потребление было меньше. А сейчас со слабым блоком питания будут циклические перезапуски. Блок питания на 5В 3А позволяет без проблем пользоваться устройством, но это с запасом (другого не было у меня).



среда, 17 декабря 2014 г.

Прошивка роутера через консоль с помощью Arduino UNO

Сегодня я хотел бы немного рассказать о том, как использовать Arduino Uno вместо адаптера USB-UART. Иногда так бывает, что нет в наличии переходника для прошивки роутера через Serial порт с помощью Putty. А вот Arduino совершенно случайно оказывается под рукой. Пробовал с помощью Arduini nano это сделать, но видимо на ней неудачный встроенный адаптер с USB на UART на чипе CH340 (китайская Arduino). Но есть еще UNO в наличии.
Если в роутере консоль уже распаяна, то останется только выяснить где какой контакт GND, RX, TX. Вот только я не смог конкретно выяснить, где TX и RX именно, поэтому в случае ошибки просто поменял их местами.

Соединяем так:
Arduino ------- Router
GND                GND
TX                   RX
RX                   TX

Но для начала зальем на Arduino такой скетч:
void setup() 
{    
  pinMode(0, INPUT); //RX 
  pinMode(1, INPUT);//TX  
} 
void loop()  
{ 
} 
А потом можно поискать инструкции по восстановлению роутера через консоль, например Тут
 Правда, у меня было немного не так, как в инструкции. В пункте 3.2 tpl набирать не надо было, просто надо было успеть нажать 2, а потом уже не торопясь Y. Нужно читать то, что пишут в окне Putty, там будут подсказки какие IP вводить. И прошивка сразу зальется на Flash.

вторник, 25 ноября 2014 г.

Прогноз погоды на Arduino

Озадачился я выводом прогноза погоды на LCD 128X64 с помощью Arduino и Ethernet shield.
Так как я начинающий Ардуинист, то пришлось читать много форумов и статей. Местами что-то понял, а кое-что так и осталось для меня непостижимым.
Конечно же прогноз погоды решил брать с сайта, который предоставляет данные о погоде бесплатно. Очень хотелось использовать для снятия данных о погоде сайт rp5.ru, так как довольно часто там приходится смотреть прогноз в браузере. Но данные в формате xml этот сайт предоставляет платно.
Итак, я получаю данные с http://openweathermap.org
Скетч для Arduino был собран из кусков кода в интернете, кое-то придумал свое.
Данные выводимые на экран LCD:
1.  Дата, для которой выводится прогноз;
2. В виде иконки вывожу данные об осадках, облаках и солнце;
3. Вывожу температуру на дневное время и ночное;
4. Давление, скорость ветра, влажность.
Количество дней прогноза от 1 до 7 в скетче можно менять (включается текущая дата).
Иконки сам рисовал, затем использовал программу Image2Code для получения кода картинки.
Дополнительно подключил к Arduino часы RTC DS1307. Когда нет возможности получить данные о погоде с интернета, то на весь экран выводится время.

Код скетча можно скачать с облака.
Проблемы в скетче присутствуют. Перестают выводится данные с интернета. Вывод прогноза должен быть цикличным на пять дней, но бывает так, что прогноз застревает на последнем дне. Причем данные выводятся разное время, а потом перестают. Однако, на вывод текущего времени скетч тоже не переключается, значит соединение с сервером есть.
Самая главная проблема - это корпус для устройства. Его пока нет, хотя уже было несколько претендентов. И Arduino UNO вместе с Ethernet shield довольно громоздкая конструкция.

воскресенье, 16 ноября 2014 г.

Подключение дисплея 12864ZW на ST7920

Замыслил я создать устройство на основе Arduino, которое будет брать прогноз погоды с какого-либо сайта и выводить данные на дисплей. В наличии была Arduino Uno, Ethernet shield и дисплей на чипе ST7920 (видимо, это чип такой, я плохо понимаю).
Ethernet shield просто насаживается на Arduino Uno и проблем с подключением нет никаких.
А вот дисплей можно подключать разными способами. Я выбрал подключение по SPI, потому что требуется меньшее число проводов: два питания и три для обмена данными.



Вот хороший ресурс по дисплею и библиотеке.
VSS - минус питания;
VDD - плюс питания дисплея;
PSB - соединяем с минусом;
BLK - тоже с минусом соединяем (катод подсветки);
BLA - анод подсветки через резистор соединяем с плюсом (подбираем экспериментально (у меня от 94 Ом; Можете подключить переменный резистор как написано по ссылке выше.
RS, R/W, E - выводы передачи данных, можно менять номера пинов Arduino в скетче.
По ссылке выше все подробно расписано, но хотелось бы только сказать про контрастность дисплея. Уменьшив яркость дисплея резистором, удалось получить контрастность на удовлетворительном уровне. Но все равно на дисплей было смотреть противно. Потенциометра сзади дисплея для регулировки контрастности нет и вообще это не предусмотрено изготовителем.
Я поступил так, как изображено на фото
Подпаял резистор параллельно существующему  Это уменьшило сопротивление и дало нужную контрастность. SMD резистор 330 Ом, подпаял 57 Ом.