LinkIt 7688 Smart Duo: одноплатный микрокомпюьтер на OpenWRT содержащий микроконтроллер ATmega32U4

разделы: Интернет вещей, дата: 22 декабря 2018г.

Я уже пару статей подряд вскользь упоминаю 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, о сложностях и путях их преодоления.

Содержание:

  1. Характеристики LinkIt™ Smart 7688 Duo
  2. Вопрос цены. Сравнение LinkIt™ Smart 7688 Duo c аналогами
  3. Подключение и обновление прошивки LinkIt™ Smart 7688 Duo. Способ первый, стандартный, но долгий
  4. Подключение к LinkIt™ Smart 7688 Duo через последовательный порт
  5. Консоль восстановления Failsafe
  6. Баг при подключении по последовательному порту
  7. Первоначальная настройка LinkIt™ Smart 7688 Duo. Способ второй, быстрый
  8. Подключение Ethernet порта
  9. Перенос файловой системы на карту MicroSD
  10. Безопасность: создание непривилегированного пользователя и защита паролем входа через последовательный интерфейс

Читать дальше

ESP8266 + Arduino + OpenWRT: проект температурного логера на датчиках DHT11 и DS18B20, пошаговое руководство

разделы: Интернет вещей, Arduino, дата: 19 декабря 2018г.

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-интерфейс универсален и может отображаться на любых браузерах любых устройств.

    Ссылки на полезные ресурсы и документацию:
  1. ESP8266 фреймворк для Arduino IDE
  2. Документация на библиотеку ESP8266WIFI
  3. Документация на Arduino библиотеку WiFi library
  4. Руководство на датчик AM2320: "Digital Temperature and Humidity Sensor AM2320 Product Manual"
  5. Руководство на датчик DS18B20: "DS18B20 Programmable Resolution 1-Wire Digital Thermometer"
  6. Руководство на датчик DHT11: "DHT11 Humidity & Temperature Sensor"

Содержание:

I. Начало работы с ESP8266 фреймворком для Arduino IDE

  1. Установка ESP8266 фреймворка для Arduino IDE
  2. Подключение датчика DHT11 к ESP8266
  3. Подключение датчика DS18B20 к ESP8266

II. Работа с библиотекой ESP8266WIFI

  1. Установка WiFi соединения
  2. Использование режима энергосбережения DeepSleep
  3. Класс WiFiClient, получение web-страницы от сервера на OpenWRT и отправка данных через GET запрос
  4. Отправка на web-сервер данных с датчика DHT11 через GET запрос
  5. Добавление датчика DS18B20
  6. Вывод показаний датчиков через веб-интерфейс

III. Добавлено позже

  1. Второй WiFi термометр на датчике AM2320 (добавлено 26.05.19г)

Читать дальше