Я уже пару статей подряд вскользь упоминаю OpenWRT, и возможно кого-то заинтересовало, что это за система. OpenWRT - это набор прошивок для самых разных устройств, но в основном для роутеров. Базируется на BusyBox и ядре Linux. Где-то с версии 17.01 прошивки стали именоваться LEDE, т.к. произошло слияние проектов OpenWRT и LEDE.
К сожалению, чтобы в первый раз поставить на какое-либо фирменное устройство прошивку OpenWRT, скорее всего вам придётся изрядно "поплясать с бубном" (сужу по собственному опыту). В худшем случае вы получите "кирпич" вместо вашего роутера. Это не означает, что устройство после этого нельзя оживить, но не у всех хватит квалификации выпаять флешку в корпусе TSOP-48, что бы перепрошить ее и заново запаять. Поэтому, если вам нужна система с OpenWRT, я не советую перепрошивать роутеры, т.к. если вы умеете это делать, то мои советы будут вам ни к чему, а если нет, то они будут только во вред.
Замечу, что согласно предупреждению 4/32 устройства с размером флеш-памяти 4МБ и менее, и размером ОЗУ 32МБ или менее, считаются устройствами с ограниченной поддержкой. Оптимальный размер ОЗУ для OpenWRT/LEDE сейчас равняется 128МБ, а приемлемый размер 64МБ. Т.е. вы хотите использовать роутер для перепрошивки под OpenWRT то он должен быть не какой-нибудь, а довольно приличный.
На самом деле существуют специальные платы для разработки под OpenWRT, где не надо совершать никаких телодвижений с бубном, и об одной из них я хочу рассказать, а именно о LinkIt™ Smart 7688 Duo. В качестве альтернативы вы также можете рассмотреть платы: Arduino Yun и Omega 2 plus.
Платы LinkIt™ Smart 7688 и LinkIt™ Smart 7688 Duo были выпущены три года назад и являются совместным проектом тайваньской компании MediaTek и китайской SeeedStudio. Проект был нацелен на быстрорастущий рынок интернет-вещей и призван упростить жизнь тех людей, что делают свои проекты из разномастных роутеров под управлением OpenWRT. В данный момент проект находится в несколько заброшенном состоянии, но платы все еще продаются в SeeedStudio (летом они были доступны только по предзаказу), а сайте MediaTek все еще доступна документация по работе платами.
Пятого мая 2011 года, компания Mediatek купила(поглотила) Realtek. И многие чипы достались Mediatek "в наследство" от Realtek. Поэтому в логах часто будет встречаться оригинальное наименование. К примеру, ветка с прошивками OpenWRT для MT7688 называется ramips.
Основой платы LinkIt™ Smart 7688 является "роутерный" чип MT7688 с архитектурой MIPS24KEc, частотой 580MHz и объёмом оперативной памяти 128MB. В довесок, LinkIt™ Smart 7688 содержит разъём microUSB 2.0 и разъём для microSD карт. Из серьёзных минусов я бы назвал отсутствие аппаратной поддержки чисел с плавающей запятой (FPU).
Концепция платы LinkIt™ Smart 7688 Duo состоит в том, что она может являться связующей платформой для разработчиков разных направлений: 1) Для разработчиков OpenWRT которые самостоятельно собирают свои сборки OpenWRT и предпочитают программировать на языках C/C++; 2) для веб-разработчиков которые предпочитают писать свои веб-приложения с использованием Python или/и Node.js®; 3) Для Arduino разработчиков которые могут писать программы в комфортной для себя среде, опираясь при этом на мощь 580МНz компьютера.
Фирменная прошивка базируется на OpenWRT 15.05 Сhaos Сalmer. Она дополнена пакетами Python 2.7.9 и NodeJS 0.12.7. Всего прошивка "весит" где-то 20МБ. Технически, вы можете обновить прошивку до последней стоковой LEDE 18.06, но там не будет NodeJS, а Python придётся устанавливать через пакетный менеджер opkg.
Я пока предлагаю не трогать фирменную прошивку, а сосредоточиться на прикладных задачах. В данной статье я постарался рассказать о основах работы с платой Linkit Smart 7688, о сложностях и путях их преодоления.
Содержание:
ESP8266 может работать в двух режимах: в режиме интерпретатора AT-команд или в режиме самостоятельного микроконтроллера с wifi модулем. Работу ESP8266 в режиме интерпретатора AT-команд я рассматривал в предыдущей статье, эта же статья рассматривает работу ESP8266 в качестве самостоятельного микроконтроллера.
Способов программирования ESP8266 опять же два, первый - это программирование с помощью ESP8266 фреймворка для Arduino IDE, второй - это программирование через esp-open-sdk. В первом случае мы можем использовать готовые библиотеки Arduino, во втором случае вы можем положиться только на функционал SDK и свой собственный код.
В этой статье мне хотелось бы рассмотреть программирование ESP8266 с помощью ESP8266 фреймворка для Arduino IDE. Данная тема решает широкий спектр задач обеспечения радиоканалом разного рода датчиков и простых устройств управления нагрузкой.
В качестве примера в статье рассматривается пошаговое написание прошивки для температурного логера на датчиках DHT11 и DS18B20. Первый датчик используется для определения комнатной температуры и влажности, второй используется для определения уличной температуры. Я статье используется плата ModeMCU ESP8266, т.к. там есть автозагузка прошивки, но в принципе может быть использована любая другая плата на модуле ESP12E/ESP12F. Данные модули оснащены флеш-памятью на 4 мегабайта, что позволяет забыть о жёсткой оптимизации размера прошивки, когда борьба идёт за каждый байт.
При работе с ESP8266 есть выбор: либо использование его совместно с "облаками", либо собственным внешним сайтом, либо собственном сервером расположенным в интросети или автономной работой ESP826, когда веб-сервер запускается на самом ESP8266.
В данном проекте используется веб-сервер uhttpd на роутере с прошивкой OpenWRT. ESP8266 передаёт на него показания датчиков, а роутер их сохраняет и виде обычных файлов, и делает их доступными для просмотра через web-интерфейс. Можно дать новую жизнь старому смартфону или планшету настроив их на отображение таких web-страниц. Web-интерфейс универсален и может отображаться на любых браузерах любых устройств.
Содержание:
I. Начало работы с ESP8266 фреймворком для Arduino IDE
II. Работа с библиотекой ESP8266WIFI
III. Добавлено позже