• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Небольшой "прожект" - тепловизор

702

New member
Небольшой "прожект" (альфа версия), в порядке освоения SDK от ESP8266.

Представляет собой очередной велосипед на тему "тепловизор из поделок с Алиэкспресс".

В составе :

ESP-01 - модуль Wifi
GY-MCU90640 - плата ИК сенсора 32*24.
HW-107 - зарядник для литиевого аккумулятора.

Особенность устройства : на ESP8266 организован веб-сервер, управляющий сенсором, - с минимальным функционалом, а полезная работы выполняется
в браузере программой на js. Преимущество такого подхода : все работает "искаропки", без установки какого-либо дополнительного ПО.

То есть, для использования устройства нужен смартфон или компьютер. Свой дисплей у устройства отсутствует.

Совместимость с браузерами частичная. Я сдуру запихал разметку в грид, а грид мобильными браузерами поддерживается как попало. Более-менее работают
Хром и Файрфокс новых версий. На десктопе в основном проблем нет.

Веб-сервер, умеет:
- отдавать браузеру веб-страницы, скрипты, бинарный массив с температурой, бинарный массив с настройками;
- от браузера может принимать бинарный массив с настройками, принять и записать файл в файловую систему. Последнее используется для "обновления ПО".

Частота обновления экрана: 1..2 кадра в секунду. Ограничена в основном программным I2C, а также кривой и тормозной библиотекой от Melexis(производителя

сенсора) . Если оптимизировать, будет кадра три.

Архив с "прожектом" по ссылке: https://yadi.sk/d/opU195Yg9aX0fA

В архиве схема соединений, исходники, образ файловой системы, бинарник "рабочий", бинарник "с эмуляций", в котором вместо чтения данных сенсора программно
генерируется "температурная волна". Скриншот интерфейса. Краткое описание.

Веб-дизайнер и жаба-скриптер из меня никакой, но в исходниках всё примитивно и прозрачно. Опытный человек при необходимости легко подправит.
 

enjoynering

Well-known member
А в какой среде/редакторе вы писали? Пытаюсь запустить rtos 3.3 и 3.2 под MS Visual Studio Community и никак.
 

702

New member
Среду не использовал. Просто установил SDK:
git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git

Вот мой скрипт для сборки:
---
export PATH=/home/user/prog/esp/ESP8266_RTOS_SDK:$PATH
export IDF_PATH=/home/user/prog/esp/ESP8266_RTOS_SDK
export PYTHON=python3.5
make -j4
----
Понятно, пути придется подправить для конкретной системы.
Скрипт нужно запускать в каталоге, где лежит Makefile .


Разработки подобного рода веду в linux, тексты редактирую в редакторе от Midnight Commander.
 

pvvx

Активный участник сообщества
Частота обновления экрана: 1..2 кадра в секунду. Ограничена в основном программным I2C, а также кривой и тормозной библиотекой от Melexis(производителя сенсора) . Если оптимизировать, будет кадра три.
В даташите значится:
I2C clock frequency 1 MHz
1583022893491.png
Почему бы не получить 64 кадра?
Правда увеличится шум
1583023275243.png
но всё-же?
 

702

New member
Ну дык исходник открыт.
Пробуйте.

Только нужно учесть, что :

- за один "кадр" обновляется только половина пикселей, - чересстрочно или череспиксельно, в "шахматном" порядке;

- обсчет одного "кадра" на esp8266 / 160 Мгц занимает более 100 мс, - на каждом пикселе считается масса многоэтажной
арифметики с плавающей точкой;

- при работе на повышенной частоте I2C, сенсор периодически "закидывается",- в какой то момент перестает выдавать
правильные данные. При этом ACK на I2C при обменах выставляется исправно.
Вывести из такого состояния сенсор можно только отключением питания, ноги сброса у MLX90640 нет.
Возможно это из-за несоблюдений требований по питанию сенсора у меня в макете, или сбой конкретного экземпляра сенсора.

Ну и шумы, действительно, становятся весьма заметны на изображении при частоте более 8 Гц (то есть, "реальных" 4Гц),
даже на температурном диапазоне изображения в пару десятков градусов.
 

pvvx

Активный участник сообщества
Ну дык исходник открыт.
Пробуйте.
У меня пока данного сенсора нет.

- обсчет одного "кадра" на esp8266 / 160 Мгц занимает более 100 мс, - на каждом пикселе считается масса многоэтажной
арифметики с плавающей точкой;
"полезная работы выполняется в браузере программой на js", а с сенсором справится и самый примитивный BLE чип (JDY-10 - throughput BLE/BT4.2 достаточно).
 

702

New member
"Не вижу препятствий!" - (с) пан начальник Твардыевич (к./ф. "Ва-банк - II" ).

Вам и карты в руки. Я этим точно заниматься не буду.
 

pvvx

Активный участник сообщества
"Не вижу препятствий!" - (с) пан начальник Твардыевич (к./ф. "Ва-банк - II" ).

Вам и карты в руки. Я этим точно заниматься не буду.
Я с вами согласен, тем более готовое, от китайцев, с экраном и т.д., стоит одинаково по сравнению с пустым сенсором MCU90640.
И не понял зачем вы это вообще затеяли, если не для побаловаться ради спорта - выжать всё на макс.
На js куда быстрее накатать и отладить прямо в эксплорере, в Web Bluetooth, благо универсальный BLE<->I2C уже есть...
 

pvvx

Активный участник сообщества
js без разницы, что Float64Array, что Uint8Array, что перемножить одно на другое... Сократиться только поток от источника, тем более XMLHttpRequest - это не метод для передачи изображений.
ESP8266 для таких дел аутсайдер - всё время и производительность у него уйдет на I2C, мешая работать WiFi.
 

702

New member
XMLHttpRequest - это не метод для передачи изображений
У меня передается не картинка (ее рисует браузер) а массив с температурами.
Что совершенно ясно из исходников, а также прямо указано в первом сообщении темы. Размер массива чуть больше полутора килобайт.

Целями "прожекта" были освоение SDK от ESP8266 а также утилизация валявшихся без дела железок. Цели достигнуты.

Результатом стало работающее устройство. Не лозунги об устаревшем чипе, не теоретизирование о низкой производительности, а _работающее_устройство_.
Ну, то есть, включил - работает. Приносит пользу.

Интересно Вам осваивать новую аппаратуру - ну так я же Вас не унимаю. Полная свобода творчества и самовыражения.
 

pvvx

Активный участник сообщества
Результатом стало работающее устройство. Не лозунги об устаревшем чипе, не теоретизирование о низкой производительности, а _работающее_устройство_.
Оно точно _работающее_устройство_ или кое как?
Как там с TCP/IP по стандартным тестам на минимальную поддержку сетевых стандартов?
Или что там с Web - оно у вас говорит HTTP1.1, а нифига не поддерживает. Что скажет хотя-бы самый элементарный тест apache-jmeter на вашу бяку?
А что с WiFi - глушит всё или только часть вашей общей сети? Как там поживают beacon-ы у EPS если в режиме AP - они гуляют по периодам от занятости CPU псевдо I2C?
В вашем проекте ESP пропускает beacon-ы от внешней AP и нарушает координацию сети - создает колизии другим...
Как работа WiFi ESP нравится вашим устройствам находящимся в DTIM(x)? АКБ у смарта чаще меняете?
... ...
Это называется _работающее_устройство_?
Тогда вы не в ту тему написали - пишите в тему глушилки WiFi. :)
 

pvvx

Активный участник сообщества
Ну, то есть, включил - работает. Приносит пользу.

Интересно Вам осваивать новую аппаратуру - ну так я же Вас не унимаю. Полная свобода творчества и самовыражения.
Ещё искровой передатчик Попова откопайте и используйте…
Авто со старыми эк. стандартами уже и к ввозу запрещены, а вы эту бяку вытащили и ещё другим предлагаете…
 

702

New member
Вас раздражает, что я реализовал устройство на элементной базе, которую Вы в своем кондуитике записали в аутсайдеры?
Ну так сделайте свой вариант, гарантирующий соответствие всем стандартам. Сделайте, и выложите описание.
Если результат будет лучше, мы порадуемся.

Или мне нужно остановить другие, гораздо более актуальные работы, и переделывать, в общем-то, проходную вещь,
чтобы у какого-то ника в интернете не свербело?
Так себе мотивация.
 

pvvx

Активный участник сообщества
Вас раздражает, что я реализовал устройство на элементной базе, которую Вы в своем кондуитике записали в аутсайдеры?
Ну так сделайте свой вариант, гарантирующий соответствие всем стандартам. Сделайте, и выложите описание.
Если результат будет лучше, мы порадуемся.
Устройство не реализовано - пока это только игра в "реализацию" и как говорят в детсаде - в понарошку :)
ESP не может вписаться в стандарты по разного рода техническим и прочим причинам. Большая часть их была определена и указана несколько лет назад и нет никакого смыслу всё это повторять лично для вас, т.к. доступно и описано в форуме.
Или мне нужно остановить другие, гораздо более актуальные работы, и переделывать, в общем-то, проходную вещь,
чтобы у какого-то ника в интернете не свербело?
Так себе мотивация.
Вижу как у вас не свербит и мотивации повалили... :)

PS: Все китайцы наверно заболели и сенсор им не отправить... Все заказы застряли...
 

702

New member
ESP не может вписаться в стандарты по разного рода техническим и прочим причинам. Большая часть их была определена и указана несколько лет назад и нет никакого смыслу всё это повторять лично для вас, т.к. доступно и описано в форуме.
Если они определены и указаны Вами, и в стиле, как в сообщениях выше - их можно смело игнорировать.
 
Сверху Снизу