ESP8266 stock ticker monitor
Тикерный монитор на основе модуля ESP-12F и e-paper экрана.
Нехитрое устройство позволяющее следить за курсом акций.
Тикер (ticker symbol) — это уникальный идентификатор биржевого инструмента.
Материалы
- Модуль ESP-12F
- Экран на основе технологий электронных чернил Waveshare 2.13in V2
- Конденсаторы 10uF и 0.1uF по две штуки каждого
- Резистор 4.7k
- Линейный стабилизатор LM1117–3.3
- Распаянный на брэйкаут разъем mini-USB
- Двусторонняя макетная плата 7х3cm
- Провод 32AWG
Для прошивки модуля потребуется USB-UART преобразователь с выходным высоким логическим уровнем 3.3V.
Схема
Далее нужно проявить свои безумные умения и соединить детали вместе по схеме.
Стабилизатор вынесен в отдельную схему, потому что он общий для почти всех моих поделок на модулях ESP8266.
Выводы GND, DIN, CLK, CS, DC, RST, BUSY
следует, всего лишь, подключить к соответствующим выводам экрана.VCC
экрана это +3.3V
на схеме.
Кнопки ESPRST
и FLASH
нужны для сброса модуля и перехода в режим прошивки.
У меня получилось вот такое месиво и мне норм:
Устройство в моем исполнении не имеет корпуса как такового. Платы закреплены на том, что я называю “микроинфостенд”.
Если вы решите не делать свой корпус, то файлы для печати можно скачать в проекте Onshape.
В слайсере желательно ориентировать модель так, чтобы каплевидные отверстия были направлены острым концом вверх.
Код
Получать информацию о текущей цене акций будем с помощью API IEXCloud.
Там нужно зарегистрироваться и создать publishable токен, который затем указать в конфиге.
Так же, в конфиге указываются имя и пароль беспроводной сети, часовой пояс и, собственно, перечень тикеров.
В директорию с проектом еще нужно скачать библиотеку для работы с дисплеем.
Прошивка
Для загрузки прошивки потребуются esptool и rshell.
Я использовал последнюю, на момент написания статьи, стабильную версию micropython 1.13
После подключения модуля через USB — UART преобразователь, с помощью esptool загружается прошивка:
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=detect -fm dio -ff 40m 0 esp8266–20200911-v1.13.bin
В моем случае потребовалось использовать режим dio и частоту flash-памяти 40MHz (
-fm dio -ff 40m
) иначе модуль отказывался стартовать, хотя прошивался успешно.
Далее необходимо загрузить в модуль python код:
rshell -p /dev/ttyUSB0 -b 115200 cp config.py boot.py epaper2in13v2.py main.py /pyboard
Примечания
IEXCloud позволяет бесплатно выполнять 50000 запросов в месяц, поэтому интервал запуска модуля можно уменьшить с одного часа до 9 минут, при условии, что количество отслеживаемых тикеров останется равным 10.
При сборке устройства следует рассмотреть возможность увеличения емкости электролитических конденсаторов до 100uF, особенно если оно будет подключаться длинным и тонким USB кабелем.