Делаем часы с погодой на MAX7219 и Node MCU (ESP8266).

Что умеют часы:

Синхронизация погоды и времени по WiFi

Большие цифры

Бегущая строка

Два дисплея

Отображение времени независимо от показа бегущей строки

Погода:

Температура

Влажность

Давление

Ветер

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

Итак. Сначала устанавливаем софт. Ардуино. arduino-1.8.5. Ничего особенного и сложного. Устанавливается как любой другой софт. Поэтому, думаю описывать, как ставить, этот софт не стоит.

Едем дальше.

Arduino установлена, теперь её нужно минимально настроить. Запускаем Arduino.

Дальше откроется примерно вот такое окно:

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

Заходим в Файл и выбираем пункт Настройки.

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


 

Поставив нужные вам галочки, в нужных клеточках, так же необходимо вставить ссылку для Менеджера плат:   http://arduino.esp8266.com/stable/package_esp8266com_index.json

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

Итак, здесь мы всё настроили. Нажимаем кнопочку ОК. и продолжаем…

Выбираем:

Инструменты > Плата > Менеджер плат….

 

И нажав : Менеджер плат….

В открывшемся окне, спускаемся в самый низ и выбираем:

Выбираем ESP8266. Нажимаем кнопку Установка. (в моём случае Обновление, так как у меня уже всё установлено).

Итак, нажимаем нужную кнопочку и ждём окончания установки библиотеки ESP8266…

При этом необходим интернет.!!!

Всё скачалось? Установилось? Превосходно. Продолжаем:

Закрываем окно Менеджер плат..

И снова открываем:

Инструменты > Плата > и тут в списке новых плат выбираем Node MCU 1.0 (ESP-12…)

Ну вот. Теперь почти всё настроено. Но всё же, не всё.

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

По уму и по правилам это делается так:

Русификация данной библиотеки подробно рассмотрена здесь. Суть сводится к тому, что нужно скачать по ссылке архив, взять оттуда русский фонт и положить его в папку AdafruitGFX-master. Остальные файлы, это примеры, как перекодировать константы, введенные в среде Arduino в UTF-8 в кодировку фонта 1251.
Но честно говоря, я в этом смысле немного торможу, и мне сложно понять ,найти и запомнить, куда и что скопировать… Поэтому я поступаю немного иначе. Хотя это и не правильно, но это работает. Значит, имеет право жить.

Берем скаченный файлик glcdfont.c и копируем (вставляем) его по адресу

C:\Program Files\Arduino\libraries\Adafruit_GFX_Library

Всё.

Либо.

Заходим в установленную папку Arduino и заменяем в ней все файлы на мои… (тоже будут в конце статьи.)

Всё.

Мне кажется это прощё.

Теперь устанавливаем драйверы для Node MCU. После чего подключаем Node MCU, смотрим на каком СОМ порту он появился, затем запускаем скетч в Arduino тот, что для прошивки Node MCU, для часов. Выбираем в Arduino нужный СОМ порт и прошиваем Node MCU. (не забыв, перед этим, сделать в скетче, нужные вам изменения)

Как прошить готовый скетч , можно посмотреть тут. (видео не моё).

https://www.youtube.com/watch?v=Rio3kFRf3Jk&t=264s

Но прежде чем нам окончательно зашить скетч в Node MCU, скетч нам необходимо настроить под себя..

Итак, открываем скетч, часов который будим записывать в Node MCU и настраиваем его.

Параметры доступа к WiFi

 

В строке 45

const char W_SSID[] = «Kulibin»;     //Ваш WiFi

вписываем имя вашей WiFi сети. ( в моем случае это Kulibin) Кавычки не трогаем.

 

В строке 46

const char W_PASS[] = «11111111»; //Пароль WiFi

вписываем пароль вашей WiFi сети ( в моем случае это 11111111) Кавычки не трогаем.

 

В строке 50

String     W_API    = «0d95d60df98e84ec2b4070be53c4d580»;

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

( в моем случае это 0d95d60df98e84ec2b4070be53c4d580) Кавычки не трогаем.

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

Но все, же если этот API окажется уже нерабочим, вот вам ещё несколько API

 

ab1f93e58657308028621e57e243e2b7

71622f9296508ab7ad5ea85e8a541afb

af062fbgdgbtyrrtyd269317d

 

В строке 54

String     W_ID     = «2014022»;   //Код города

Тут вписывается, код города, по которому будет вычисляется местонахождение вашего города, для определения точной погоды вашего города

Код для вашего города, можно узнать на этом сайте

http://openweathermap.org/help/city_list.txt

( в моем случае это 2014022) Кавычки не трогаем.

 

В строке 55

String     W_NAME   = «В Усолье-Сибирском»;

Заполняется имя вашего города.

(в моем случае это ,В Усолье-Сибирском) Кавычки не трогаем.

 

В строке 61

int TZ                   = 8;//Таймзона для Иркутска

Тут вписывается часовой пояс вашего города, для синхронизации точного времени вашего города с интернетом.

(в моем случае это , Иркутск +8)

 

В строке 76

int wait = 45; // In milliseconds

выставляем скорость бегущей строки

(в моем случае это 45)

 

В строке 92

matrix.setIntensity(2); // Use a value between 0 and 15 for brightness

выставляем яркость свечения матриц. Выставляем от 0 до 15. Чем больше цифра, тем ярче светятся матрицы.

(в моем случае это 2)

 

В строке 391

tape = «В Усолье-Сибирском «;

Бегущая строка .

Вписываем имя вашего города, села)

(в моем случае это В Усолье-Сибирском) Кавычки не трогаем.

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

Итак.

Скетч настроен, осталось его вшить в Node MCU. Драйвер для Node MCU уже установлен. Подключаем Node MCU к компьютеру, через провод USB. Идем в Диспетчер устройств и смотрим, на каком номере СОМ порта появилось наше устройство.

Вы подключили к компьютеру Node MCU и новый порт (новое устройство) при этом не появилась в Диспетчере устройств? Не пугайтесь.

Подключаем Node MCU , нажимаем Reset, не отпуская кнопки Reset, нажимаем Flash. Затем отпускаем кнопку Reset и потом отпускаем кнопку Flash.

После этого в Диспетчер устройств появится новое устройство и новый СОМ порт с новым номером.

Если вдруг, с первого раза не получилось, не отчаивайтесь. Повторите операцию с нажатием кнопок, до тех пор, пока в Диспетчере устройств не появится новое устройство с новым СОМ портом.

Теперь, запускаем ,тот скетч, который мы до этого правили, и сейчас будем его зашивать в Node MCU.

 

Заходим в Инструменты > Порт «СОМ» и выбираем, нужный нам порт, тот на котором у нас сейчас определилась Node MCU в Диспетчере устройств, сейчас это Порт СОМ4. Всё настройка завершена. Можно, всё зашивать в Node MCU.

Нажимаем кнопочку Загрузка, и ждём завершения процесса прошивки Node MCU.

Идёт Компеляция.

Загрузка.

Завершение загрузки.

Поздравляю. Node MCU, успешно запрограммирован.

Теперь нужно, правильно подключить все модули и подать питание.

 

Размеры индикатора 3.2 см Х 3.2 см. Подключение к микроконтроллеру по SPI «в один конец» по трем проводам. Модули подключаются каскадно — DIN->DOUT. Все остальные выводы запаралелены.

 

К ESP8266 подключение такое:

  • DIN -> GPIO13 (MOSI)
  • SCK -> GPIO14 (SCK)
  • CS -> GPIO16 (к любому свободному)

Остается взять любой стабилизатор на 3,3В. Например DC/DC Step-Down на базе LM2596S и выставить на нём выходное напряжение 3,3В

Теперь. Если всё верно подключено, и напряжение питания для Node MCU и матриц не превышает 3,3В, можно всё включить и проверить.

Теперь, осталось, самое сложное. Сделать корпус.

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

 

 

 

Ссылка на первоисточник статьи

http://samopal.pro/led-matrix1/

Мой полный архив.

P/S. К сожалению архив C:\Program Files\Arduino с файлами для Arduino, выложить тут не получается, по причине его большого размера. Приношу свои извинения.

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

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

Получайте новости на почту