Мы можем использовать любой современный Android-смартфон с камерой и различными датчиками и отправлять набор данных на любую платформу Интернета вещей (IoT). Хотя это будет казаться чем-то сложным, на самом деле все это легко из-за большого количества разработок для облегчения данных процедур. Есть готовые к использованию приложения Android, которые выполняют аналогичную работу из графического интерфейса и подключаются к платформе IoT, такой как IBM Watson IoT, но в этом руководстве мы покажем способ с использованием командной строки и Node-RED.

Для начала установите приложение Termux и приложение Termux API из Google Play.

Также может быть более практично использовать физическую мышь и клавиатуру через USB OTG. Кроме того, вы можете «расшарить» экран смартфона на экран, который больше (например, ноутбук, Smart TV).
Теперь запустите Termux и введите следующие команды:
apt update
apt upgrade
apt install termux-api
apt install coreutils nano nodejs
npm install -g --unsafe-perm node-red
cd ~/.node-red
ls -al
npm install node-red-dashboard
npm install node-red-contrib-ibm-watson-iot
npm install node-red-contrib-collector
Клавиша уменьшения громкости и «c» на сенсорной клавиатуре работают как ctrl+c для выхода из любого приложения в Termux. Теперь вы можете запустить node-red.
#
node-red
#
Node-RED теперь будет работать на localhost (127.0.0.1) на телефоне Android. Он покажет IP-адрес и порт (1880), на котором он работает в Termux. Вы можете указать браузеру 127.0.0.1:1880, и он откроет редактор потоков Node-RED.

Вы можете открыть новый сеанс в Termux, проведя пальцем влево и щелкнув по опции нового сеанса. Следующая команда выведет список всех датчиков вашего телефона:
#
termux-sensor -l
#
Названия в списке будут различаться в зависимости от модели телефона. Для Samsung A50s, использованного в данном примере, есть много датчиков, которые начинаются с названия «Samsung». Существует обширная официальная документация по использованию команд, связанных с Termux-API. С помощью следующей команды мы можем получить данные одного датчика:
#
termux-sensor -s "TCS3701 Light"
#
Это дало постоянно обновляемое значение:
{
"TCS3701 Light": {
"Values": {
118
}
}
}
Датчик освещенности находится рядом с селфи камерой. Вы можете заблокировать свет, падающий на него ладонью, чтобы получить значение, близкое к нулю, чтобы проверить работоспособность датчика.
Мы можем использовать exec-узел Node-RED для запуска вышеуказанной команды и получения данных датчика в редакторе потоков Node-RED. Нам нужно преобразовать эти данные в JSON. Последний шаг – перенести это на выбранную вами платформу IoT, такую как IBM Watson IoT.
Это было общее руководство для сбора данных с датчиков смартфона, мы не будем вдаваться в детали того, как вы будете отправлять данные. Ваш логический поток в Node-RED может быть следующим:
[узел временной метки] -> [узел exec] -> [узел json] -> [узел функции для извлечения числа] -> [узел функции для форматирования для вашей любимой платформы IoT] -> [узел запроса http] -> [msg узел полезной нагрузки]В итоге любая платформа IoT будет идентифицировать ваше устройство таким же образом, как, например, в случае с Raspberry Pi.
© digitrode.ru