Экспериментальная версия программного обеспечения (ПО) под любое устройство на базе Linux. Основана на базе прошивки WiFi-Iot и содержит те же возможности, но не ограничена в ресурсах железа и расширяет возможности проекта.
Ссылка на готовые приложения http://files.wifi-iot.com/linuxDev/ под разные системы. Ссылка на конструктор.
Проверено на Raspberry Pi zero, Raspberry Pi 4, Orange Pi, OpenIPC , BlackSwift, OpenWRT. Возможна работа на х86.
В сборке приложения уже содержится поддержка NTP и календаря как часть ОС. Так же сохранение настроек изначально идет в NVS формате в виде ini файла.
Обратите внимание, что опции с шифрованием SSL(Telegram и прочие) работают не на всех типах процессоров.
Расширенная математика в Interpreter на данный момент не поддерживается на ARM процессорах.
Опции, доступные в конструкторе могут содержать ошибки. Особенно это касается опций, связанных с железом(например датчики). Просьба сообщать о проблемах на канале Телеграм проекта.
Возможна в будущем поддержка работы со всеми датчиками и другие опции, аналогичные конструктору ESP32 без ограничений ресурсов (в пределах ограничений устройства). Это касается и работы с камерой и работа с аудио.
Работа с базами данных, сохранение в них сразу всех метрик (или по выбору). Возможность вывода графиков.
Работа с дисплеями HDMI (мониторами). Вывод на них всей информации (текстовой и графической).
Дальнейшее развитие программы зависит от интереса пользователей.
На данный момент ПО работает без ограничений в тестовом режиме до 31.12.2022, но для OTA требуется активация лицензии для привязки ID устройства. ID устройства можно посмотреть на вкладке debug. На данный момент идет только привязка к ID ,без получения ключа.
Поддерживается аналогичный способ обновления как у ESP с автоматической сборкой на сервере (Auto OTA).
Предыдущий файл приложения сохраняется с именем old. Если новое приложение не удалось запустить(битый файл или не тот процессор) , то происходит запуск старого приложения, не рабочее приложение сохраняется с именем bad.
1. Можно запустить практически на любом устройстве на базе Linux, если для сборки ПО имеется в наличии SDK (sysroot) с компилятором для данного устройства.
2. Достаточно скачать приложение на устройство и запустить.
3. Используются только базовые функции ОС Linux - минимум зависимостей и не требуется установка массы пакетов.
4. Может возникнуть проблема с работой опций с шифрованием и установкой для них openssl библиотеки на устройстве.
5. Малый размер программы (от 100 кб), в зависимости от количества включенных опций.
6. Свой автономный веб сервер. Не требуется его установка и настройка.
7. Полная интеграция с прошивками данного проекта через опции VGPO, VSENS, D2D.
8. Работа с стандартной периферией GPIO, I2C, SPI, UART через sysfs, если оно есть на устройстве. Есть возможность подключения конвертеров интерфейсов через USB: USB-UART, USB-I2C и т.д.
9. Быстрая работа GPIO через sysfs (виртуальную ФС) не возможна - некоторые GPIO опции работать не будут. Для этого требуется индивидуальный драйвер для каждого процессора. Драйвер доступен на данный момент только на Raspberry и Orange.
Если не один из вариантов поддерживаемых устройств не запустился:
Для поддержки OpenWRT устройства требуется найти под него SDK + компилятор по ссылкам актуальных или архивных версий.
Для поддержки других открытых прошивок требуются ссылки на SDK + компилятор для данного устройства.
Для поддержки закрытых прошивок найти подходящий компилятор и SDK затруднительно, но возможно что-то подойдет из открытых прошивок если совпадает модель процессора и версии библиотек системы.
Для каждого устройства(или нескольких устройств) требуется скачать свой файл приложения. Для MIPS процессоров имеется несколько вариантов программ и возможно какая-то из них заработает.
Загрузка приложения : wget http://files.wifi-iot.com/linuxDev/имя_файла
Посмотреть список файлов можно по ссылке http://files.wifi-iot.com/linuxDev/
Не забываем дать права запуска на файл: chmod 777 имя_файла
Запустить файл - указать полный путь к приложению, или находясь в папке с файлом набрать ./имя_файла. Для запуска в фоне достаточно указать после имени знак & или ключ -demon. Описание настройки автозапуска смотрите ниже.
Зайти на веб программы http://IP_Устройства:1081. Номер порта на данный момент можно поменять в wifiiot.ini файле, параметр httpport, требуется перезагрузка через консоль. Для использования порта ниже 1024 требуется root права или специальные настройки.
sudo setcap 'cap_net_raw,cap_net_admin+eip CAP_NET_BIND_SERVICE=+eip' 'путь_к_приложению' - эта команда позволит использовать веб порт ниже 1024 и разрешит подключиться Bluetooth не от root пользователя. После обновления приложения эту команду требуется выполнить снова.
Автозапуск приложения.
Данный способ применим для большинства Linux систем.
Требуется создать файл wifi-iot.service в папке /etc/systemd/system/ командой sudo nano /etc/systemd/system/wifi-iot.service и вставить содержимое:
[Unit] Description=Wifi-iot After=syslog.target network.target [Service] ExecStart=/home/pi/wifi-iot // путь к файлу приложения, заменить на свой WorkingDirectory=/home/pi // директория с файлом приложения, тут будут находиться файлы конфигурации User=pi // имя пользователя, от которого будет происходить запуск. [Install] WantedBy=multi-user.target
Команды:
sudo systemctl enable wifi-iot - Включить автозапуск.
sudo systemctl disable wifi-iot - Выключить автозапуск.
sudo systemctl start wifi-iot - Запустить приложение немедленно (аналогично stop, restart).
sudo systemctl enable bluetooth - Включить автозапуск Bluetooth.
Ввод sudo не требуется, если настройка происходит от root пользователя.
При несовпадении версии библиотек (версии SDK) на устройстве программа может не запуститься (файл не найден) и для анализа требуется информация:
Необходимо показать вывод команды ldd ./имя_файла
А так же вывод команд: cat /proc/cpuinfo , cat /etc/*-release , uname -a , cat /proc/versionВсе вопросы в чат Телеграм https://t.me/wifi_iot