RSS блога
Подписка
Платформа для разработки Heltec Cube cell - Arduino+LoRaWAN. Как сделать беспроводной датчик температуры с расстоянием связи в несколько километров.
- Цена: $11.86 + доставка $2.89
- Перейти в магазин
С появлением у меня собственного LoRaWAN-шлюза, мне захотелось немного глубже окунуться в данную технологию и расширить свою коллекцию устройств с поддержкой LoRa. На рынке представлено большое число платформ для разработки с поддержкой LoRa, как в виде отдельных плат расширения форм-фактора Arduino, так и с интегрированными на одной плате трансивером и управляющим микроконтроллером. Я активно слежу за развитием подобных платформ. Несколько моделей подобных устройств разработаны компанией Heltec Automation. У меня уже давно в корзине лежала плата Heltec Lora node (HTCC-AB01) из линейки Cube Cell, наконец я её приобрел и спешу поделиться своими впечатлениями.
Производитель выделяет следующие особенности серии Cube cell:
— Идеальная совместимость с Arduino!
— Сертификация CE и FCC;
— Основаны на микросхемах ASR605x (ASR6501, ASR6502), в которые уже интегрированы MCU серии PSoC® 4000 (ARM® Cortex® M0 + Core) и трансивер SX1262;
— Поддержка LoRaWAN 1.0.2;
— Конструкция со сверхнизким энергопотреблением, 3,5 мкА в глубоком сне;
— Бортовая система управления солнечной энергией, может напрямую подключаться к солнечной панели 5,5 ~ 7 В;
— Встроенный интерфейс батареи SH1.25-2, интегрированная система управления литиевой батареей (управление зарядкой и разрядкой, защита от перезарядки, определение заряда батареи, автоматическое переключение питания USB / батареи);
— Интерфейс Micro USB с полной защитой от электростатического разряда, защитой от короткого замыкания, радиочастотным экраном и другими мерами защиты;
— Встроенный чип CP2102 USB для последовательного порта, удобный для загрузки программ, печати отладочной информации;
— Хорошее соответствие зависимости и большое расстояние связи.
Технические характеристики
Характеристики энергопотребления
Распиновка платы HTCC-AB01
Ключевым моментом в выборе данной платформы для меня стала поддержка средой Arduino IDE. Документацию по добавлению поддержки в Arduino IDE и большое количество примеров можно найти на официальном github.
На Aliexpress есть официальный магазин компании Heltec, но цены там несколько выше, чем в сторонних магазинах. В линейке Cube Cell ещё есть платформы с интегрированным Oled-дисплеем и с GPS-модулем. Можно приобрести отдельно модуль Cube cell и интегрировать его в собственную разработку. Есть варианты на 433, или на 868/915 МГц.
Плата поставляется в пластиковом боксе.
В комплекте сама плата и пара штырьковых гребенок. К сожалению в комплекте нет антенны, хотя у других продавцов она была.
Плата действительно миниатюрная, её размеры всего 40x23 мм.
При подключении к ПК, драйвера для USB-UART конвертера устанавливаются автоматически.
Для добавления поддержки данной платформы в Arduino IDE нужно всего пара действий: добавить источник загрузки пакетов поддержки и в менеджере плат непосредственно найти и установить пакет поддержки для Cube Cell. После выбора нужной платы в менеджере, можно открыть соответствующие примеры программ. Здесь может возникнуть небольшая проблема: у меня были установлены библиотеки «Lora» и «Onewire» и одноименные разделы примеров для Cube Cell не были добавлены. Решение проблемы: удалить библиотеки «Lora» и «Onewire» и переустановить поддержку платформы Cube Cell.
Для подключения узла к Thethingsnetwork необходимо в первую очередь зарегистрировать учетную запись.
Далее необходимо в консоли добавить приложение и зарегистрировать в нем устройство. Необходимо выбрать метод активации устройства OTAA или ABR. В моем случае выбран ОТАА. Будут сгенерированы 3 ключа: devEui, appEui, appKey, доступные в описании устройства, необходимые для подключения устройства к сети.
После корректной установки поддержки можно проверять работу платформы. Для работы в сети LoRaWAN нужно задать несколько параметров в разделе «Инструменты». Настройки должны соответствовать настройкам устройства на TheThingsNetwork и региональным настройкам сети LoRaWAN. В моем случае настройки выглядят следующим образом:
В скетче необходимо изменить ключи devEui, appEui, appKey по-умолчанию на полученные при регистрации устройства в Thethingsnetwork. После компиляции скетча и прошивки устройства данные с устройства должны появиться в консоли на сайте Thethingsnetwork. Тут я столкнулся с небольшой проблемой: при работе от USB-порта данные успешно передавались, при попытке проверить передачу данных на небольшом удалении при питании самой платы от повербанка я наблюдал лишь попытки устройства зарегистрироваться в сети. Я грешил на настройки программы, но оказалось все куда проще: насколько я понимаю, повербанк отключает питание, если ток потребления очень низкий. При пробуждении устройства оно пытается зарегистрироваться в сети, далее отправляет пакет и переходит в режим сна, в этот момент повербанк отключает питание и цикл повторяется.
В этом обзоре не будет как такового теста дальности связи. Лишь отмечу, что прямая видимость решает, подробнее здесь. Большее внимание хотелось бы уделить практическому использованию технологии LoRaWAN на примере создания очередного беспроводного термометра, но радиусом действия в несколько километров. Пакет поддержки CubeCell для Arduino IDE содержит большое количество примеров с использованием различных датчиков. Я остановился на имеющемся у меня в наличии BMP180.
Thethingsnetwork не является платформой для хранения и визуализации данных, поэтому их необходимо передавать на сторонний сервис. Есть несколько встроенных интеграций. Я выбрал уже знакомую мне платформу Thingspeak. Данные в сети LoRaWAN передаются в двоичном виде, для передачи их на сервер Thingspeak необходима конвертация двоичных значений в читаемый (десятичный) формат. Это можно сделать непосредственно в консоли Thethingsnetwork. В форме payloads format необходимо написать код на JavaScript, который будет переводить двоичные данные в текстовый формат. В документации для CubeCell уже есть пример кода. В примере для BMP180 каждый пакет данных содержит 14 байт: по 4 байта для температуры, давления и альтитуды и 2 байта для напряжения аккумулятора. Мой код для декодирования данных и представления их в необходимом для передачи на Thingspeak JSON-формате выглядит следующим образом:
Для интеграции приложения сThingspeak необходимо указать произвольное название процесса и два обязательных параметра: идентификатор канала Thingspeak и API-ключ для записи, полученный при создании канала. После успешной интеграции данные передаваемые на Thethingsnetwork будут декодироваться и пересылаться на Thingspeak с минимальной задержкой.
Одной из ключевых особенностей устройств с поддержкой LoRa является низкое энергопотребление, обеспечивающее продолжительное время работы от аккумулятора. Производителем платформы CubeCell заявлено потребление до 100 мА в активном режиме в зависимости от мощности передатчика и порядка 11 мкА в спящем режиме. В примере для BMP180 питание на датчик подается с пина Vext непосредственно в момент измерения давления и температуры, но при таком подключении датчик не передавал измеренные значения. Я подключил пин VCC датчика к пину VCC и датчик стал отдавать корректные значения, очевидно что в этом случае питание на датчик подается постоянно, что сказывается на токе потребления в спящем режиме. Я стал искать причину некорректной работы, вначале я подумал, что виной RGB-светодиод, который осуществляет индикацию подключения к LoRaWAN сети и который также подключен к пину Vext, я предположил, что где-то во внутренних функциях происходит включение и отключение питания светодиода. Отключить индикацию можно в меню инструменты Arduino IDE: LORAWAN_RGB DEACTIVE. Но это увы не помогло. Решение проблемы нашлось в вопросах на гитхаб: потребовалось всего лишь добавить небольшую задержку в 100 мс после подачи питания на датчик. Светодиод, тем не менее, лучше отключить в любом случае для экономии заряда аккумулятора. Замеры потребления производились мультиметром Aneng AN8009, точность измерений которого я не могу гарантировать. Отправка данных длится всего несколько миллисекунд и замерить потребляемый ток при этом не удается. В спящем же режиме, согласно проведенным замерам потребление вполне соответствует заявленному и составляет порядка 10.2 мкА.
Дополнительно для анализа потребления во времени я использовал датчик INA3221.
На графике можно увидеть два интервала работы: 1 с пиком потребления до 30 мА и длительностью 60 мс, 2 с пиком в 4 мА и длительностью около 30 мс. При таком потреблении аккумулятора емкостью около 1000 мА*ч должно хватить на несколько лет. Фактически после непрерывной работы передатчика в течение двух суток с отправкой данных каждые 15 секунд (что конечно же очень часто для реального использования) напряжение незначительно упало с с 4,09 до 4,08В. Стоит учитывать, что передатчик находился в непосредственной близости от шлюза, и время его работы и мощность были минимальны, при расстоянии передачи в несколько километров, потребление будет выше. В реальных условиях условиях, с учетом саморазряда и других факторов, время работы аккумулятора может значительно снизиться, если, конечно, не заряжать его в процессе работы.
И тут мы переходим к другой отличительной особенности платформы CubeCell HTC-AB01 — возможности использования солнечных панелей для зарядки аккумулятора. К платформе можно напрямую подключить панели с напряжением до 7В. У меня есть в наличии две панели с напряжением 5В и заявленной мощностью 1.2 Вт. В этом месяце дни выдались пасмурными и панели работали крайне неэффективно, по предыдущим замерам на ярком солнце максимальная мощность составляла порядка 0,7Вт (ток 140мА) таким образом за несколько часов работы на ярком солнце солнечная панель может зарядить аккумулятор небольшой емкости.
Плюс аккумулятора через мосфет соединяется с АЦП, при вызове функции getBatteryVoltage() производится замер напряжения на аккумуляторе, благодаря чему можно следить за активностью солнечных панелей. Для теста я закрепил две параллельно соединенные панели на оконное стекло. Нельзя назвать такой способ установки солнечных панелей эффективным, т.к. показали предыдущие замеры, максимальную эффективность они имеют на прямом солнце.Тем не менее, на графике напряжения на аккумуляторе можно увидеть как оно увеличилось с 4.08 до 4.12В.
Напряжение начинало увеличиваться едва светало за окном, даже если самого солнца не было видно. Во время тестирования передатчик проработал с подключенными солнечными панелями около четырёх суток и напряжение при этом не падало ниже 4.13В уже после захода солнца, таким образом можно сделать вывод, что нескольких часов работы солнечных панелей было достаточно чтобы зарядить аккумулятор. Отдельно стоит отметить, что на лоджии, где был расположен передатчик температура порой опускалась до -2, что должно было негативно сказаться на работе аккумулятора.
В видео несколько нагляднее и подробнее показан процесс интеграции TheThingsnetwork и Thingspeak.
Производитель выделяет следующие особенности серии Cube cell:
— Идеальная совместимость с Arduino!
— Сертификация CE и FCC;
— Основаны на микросхемах ASR605x (ASR6501, ASR6502), в которые уже интегрированы MCU серии PSoC® 4000 (ARM® Cortex® M0 + Core) и трансивер SX1262;
— Поддержка LoRaWAN 1.0.2;
— Конструкция со сверхнизким энергопотреблением, 3,5 мкА в глубоком сне;
— Бортовая система управления солнечной энергией, может напрямую подключаться к солнечной панели 5,5 ~ 7 В;
— Встроенный интерфейс батареи SH1.25-2, интегрированная система управления литиевой батареей (управление зарядкой и разрядкой, защита от перезарядки, определение заряда батареи, автоматическое переключение питания USB / батареи);
— Интерфейс Micro USB с полной защитой от электростатического разряда, защитой от короткого замыкания, радиочастотным экраном и другими мерами защиты;
— Встроенный чип CP2102 USB для последовательного порта, удобный для загрузки программ, печати отладочной информации;
— Хорошее соответствие зависимости и большое расстояние связи.
Технические характеристики
Характеристики энергопотребления
Распиновка платы HTCC-AB01
Ключевым моментом в выборе данной платформы для меня стала поддержка средой Arduino IDE. Документацию по добавлению поддержки в Arduino IDE и большое количество примеров можно найти на официальном github.
На Aliexpress есть официальный магазин компании Heltec, но цены там несколько выше, чем в сторонних магазинах. В линейке Cube Cell ещё есть платформы с интегрированным Oled-дисплеем и с GPS-модулем. Можно приобрести отдельно модуль Cube cell и интегрировать его в собственную разработку. Есть варианты на 433, или на 868/915 МГц.
Плата поставляется в пластиковом боксе.
В комплекте сама плата и пара штырьковых гребенок. К сожалению в комплекте нет антенны, хотя у других продавцов она была.
Плата действительно миниатюрная, её размеры всего 40x23 мм.
При подключении к ПК, драйвера для USB-UART конвертера устанавливаются автоматически.
Для добавления поддержки данной платформы в Arduino IDE нужно всего пара действий: добавить источник загрузки пакетов поддержки и в менеджере плат непосредственно найти и установить пакет поддержки для Cube Cell. После выбора нужной платы в менеджере, можно открыть соответствующие примеры программ. Здесь может возникнуть небольшая проблема: у меня были установлены библиотеки «Lora» и «Onewire» и одноименные разделы примеров для Cube Cell не были добавлены. Решение проблемы: удалить библиотеки «Lora» и «Onewire» и переустановить поддержку платформы Cube Cell.
Для подключения узла к Thethingsnetwork необходимо в первую очередь зарегистрировать учетную запись.
Далее необходимо в консоли добавить приложение и зарегистрировать в нем устройство. Необходимо выбрать метод активации устройства OTAA или ABR. В моем случае выбран ОТАА. Будут сгенерированы 3 ключа: devEui, appEui, appKey, доступные в описании устройства, необходимые для подключения устройства к сети.
После корректной установки поддержки можно проверять работу платформы. Для работы в сети LoRaWAN нужно задать несколько параметров в разделе «Инструменты». Настройки должны соответствовать настройкам устройства на TheThingsNetwork и региональным настройкам сети LoRaWAN. В моем случае настройки выглядят следующим образом:
В скетче необходимо изменить ключи devEui, appEui, appKey по-умолчанию на полученные при регистрации устройства в Thethingsnetwork. После компиляции скетча и прошивки устройства данные с устройства должны появиться в консоли на сайте Thethingsnetwork. Тут я столкнулся с небольшой проблемой: при работе от USB-порта данные успешно передавались, при попытке проверить передачу данных на небольшом удалении при питании самой платы от повербанка я наблюдал лишь попытки устройства зарегистрироваться в сети. Я грешил на настройки программы, но оказалось все куда проще: насколько я понимаю, повербанк отключает питание, если ток потребления очень низкий. При пробуждении устройства оно пытается зарегистрироваться в сети, далее отправляет пакет и переходит в режим сна, в этот момент повербанк отключает питание и цикл повторяется.
В этом обзоре не будет как такового теста дальности связи. Лишь отмечу, что прямая видимость решает, подробнее здесь. Большее внимание хотелось бы уделить практическому использованию технологии LoRaWAN на примере создания очередного беспроводного термометра, но радиусом действия в несколько километров. Пакет поддержки CubeCell для Arduino IDE содержит большое количество примеров с использованием различных датчиков. Я остановился на имеющемся у меня в наличии BMP180.
Thethingsnetwork не является платформой для хранения и визуализации данных, поэтому их необходимо передавать на сторонний сервис. Есть несколько встроенных интеграций. Я выбрал уже знакомую мне платформу Thingspeak. Данные в сети LoRaWAN передаются в двоичном виде, для передачи их на сервер Thingspeak необходима конвертация двоичных значений в читаемый (десятичный) формат. Это можно сделать непосредственно в консоли Thethingsnetwork. В форме payloads format необходимо написать код на JavaScript, который будет переводить двоичные данные в текстовый формат. В документации для CubeCell уже есть пример кода. В примере для BMP180 каждый пакет данных содержит 14 байт: по 4 байта для температуры, давления и альтитуды и 2 байта для напряжения аккумулятора. Мой код для декодирования данных и представления их в необходимом для передачи на Thingspeak JSON-формате выглядит следующим образом:
function Decoder(bytes, port) {
function bytesToFloat(bytes) {
//LSB Format (least significant byte first).
var bits = bytes[3]<<24 | bytes[2]<<16 | bytes[1]<<8 | bytes[0];
var sign = (bits>>>31 === 0) ? 1.0 : -1.0;
var e = bits>>>23 & 0xff;
var m = (e === 0) ? (bits & 0x7fffff)<<1 : (bits & 0x7fffff) | 0x800000;
var f = sign * m * Math.pow(2, e - 150);
return f;
}
function bytesToShort(bytes) {
var testShort = (bytes[0] << 8) | bytes[1];
return testShort / 1000;
}
return {
field1: bytesToFloat(bytes.slice(0, 4)),
field1: bytesToFloat(bytes.slice(4, 8)),
field1: bytesToFloat(bytes.slice(8, 12)),
field2: bytesToShort(bytes.slice(12, 14))
};
}
Для интеграции приложения сThingspeak необходимо указать произвольное название процесса и два обязательных параметра: идентификатор канала Thingspeak и API-ключ для записи, полученный при создании канала. После успешной интеграции данные передаваемые на Thethingsnetwork будут декодироваться и пересылаться на Thingspeak с минимальной задержкой.
Одной из ключевых особенностей устройств с поддержкой LoRa является низкое энергопотребление, обеспечивающее продолжительное время работы от аккумулятора. Производителем платформы CubeCell заявлено потребление до 100 мА в активном режиме в зависимости от мощности передатчика и порядка 11 мкА в спящем режиме. В примере для BMP180 питание на датчик подается с пина Vext непосредственно в момент измерения давления и температуры, но при таком подключении датчик не передавал измеренные значения. Я подключил пин VCC датчика к пину VCC и датчик стал отдавать корректные значения, очевидно что в этом случае питание на датчик подается постоянно, что сказывается на токе потребления в спящем режиме. Я стал искать причину некорректной работы, вначале я подумал, что виной RGB-светодиод, который осуществляет индикацию подключения к LoRaWAN сети и который также подключен к пину Vext, я предположил, что где-то во внутренних функциях происходит включение и отключение питания светодиода. Отключить индикацию можно в меню инструменты Arduino IDE: LORAWAN_RGB DEACTIVE. Но это увы не помогло. Решение проблемы нашлось в вопросах на гитхаб: потребовалось всего лишь добавить небольшую задержку в 100 мс после подачи питания на датчик. Светодиод, тем не менее, лучше отключить в любом случае для экономии заряда аккумулятора. Замеры потребления производились мультиметром Aneng AN8009, точность измерений которого я не могу гарантировать. Отправка данных длится всего несколько миллисекунд и замерить потребляемый ток при этом не удается. В спящем же режиме, согласно проведенным замерам потребление вполне соответствует заявленному и составляет порядка 10.2 мкА.
Дополнительно для анализа потребления во времени я использовал датчик INA3221.
На графике можно увидеть два интервала работы: 1 с пиком потребления до 30 мА и длительностью 60 мс, 2 с пиком в 4 мА и длительностью около 30 мс. При таком потреблении аккумулятора емкостью около 1000 мА*ч должно хватить на несколько лет. Фактически после непрерывной работы передатчика в течение двух суток с отправкой данных каждые 15 секунд (что конечно же очень часто для реального использования) напряжение незначительно упало с с 4,09 до 4,08В. Стоит учитывать, что передатчик находился в непосредственной близости от шлюза, и время его работы и мощность были минимальны, при расстоянии передачи в несколько километров, потребление будет выше. В реальных условиях условиях, с учетом саморазряда и других факторов, время работы аккумулятора может значительно снизиться, если, конечно, не заряжать его в процессе работы.
И тут мы переходим к другой отличительной особенности платформы CubeCell HTC-AB01 — возможности использования солнечных панелей для зарядки аккумулятора. К платформе можно напрямую подключить панели с напряжением до 7В. У меня есть в наличии две панели с напряжением 5В и заявленной мощностью 1.2 Вт. В этом месяце дни выдались пасмурными и панели работали крайне неэффективно, по предыдущим замерам на ярком солнце максимальная мощность составляла порядка 0,7Вт (ток 140мА) таким образом за несколько часов работы на ярком солнце солнечная панель может зарядить аккумулятор небольшой емкости.
Плюс аккумулятора через мосфет соединяется с АЦП, при вызове функции getBatteryVoltage() производится замер напряжения на аккумуляторе, благодаря чему можно следить за активностью солнечных панелей. Для теста я закрепил две параллельно соединенные панели на оконное стекло. Нельзя назвать такой способ установки солнечных панелей эффективным, т.к. показали предыдущие замеры, максимальную эффективность они имеют на прямом солнце.Тем не менее, на графике напряжения на аккумуляторе можно увидеть как оно увеличилось с 4.08 до 4.12В.
Напряжение начинало увеличиваться едва светало за окном, даже если самого солнца не было видно. Во время тестирования передатчик проработал с подключенными солнечными панелями около четырёх суток и напряжение при этом не падало ниже 4.13В уже после захода солнца, таким образом можно сделать вывод, что нескольких часов работы солнечных панелей было достаточно чтобы зарядить аккумулятор. Отдельно стоит отметить, что на лоджии, где был расположен передатчик температура порой опускалась до -2, что должно было негативно сказаться на работе аккумулятора.
В видео несколько нагляднее и подробнее показан процесс интеграции TheThingsnetwork и Thingspeak.
Заключение
Резюмирую свои впечатления: платформа CubeCell HTCC-AB01, на мой взгляд, однозначно заслуживает внимания. Ключевыми особенностями платформы являются: низкое энергопотребление, поддержка солнечных панелей, поддержка работы в среде Arduino IDE. Отдельно стоит отметить довольно подробную документацию и большое количество примеров. Документация написана доступным языком и легко разобраться даже начинающему пользователю. Фактические характеристики дальности связи соответствую заявленным: даже с не очень эффективной антенной легко добиться дальности связи порядка 6 км при прямой видимости. Из минусов на ум приходит только комплектация поставки у данного продавца, а именно отсутствие в комплекте даже самой простой антенны и кабеля с разъемом для подключения аккумулятора.+111 |
14244
105
|
Самые обсуждаемые обзоры
+35 |
882
68
|
+26 |
1708
53
|
+64 |
2102
50
|
Ардуино-Нано $2, GSM модуль меньше $5.
Хотя «просто набрать номер» наверно хватит и дигиспарка на Attiny85 за $1.2 вместо 328P.
Энергопотребление? Так в гараже электричество есть, подзаряжать батарею несложно.
Задавить помехами GSM сложнее.
Радиус действия — всё покрытие сети с учётом роуминга.
Девайс в обзоре — для другого. Для независимой (от ОпСоСов) и бесплатной передачи информации, пакетов данных, а не просто «датчик сработал».
Какое-нибудь гигантское тепличное хозяйство и сбор информации о температуре, влажности, содержании углекислого газа с сети датчиков, чтобы не морочиться с проводами (прокладкой и поддержанием в рабочем состоянии).
Большой логистический комплекс и сбор информации с погрузчиков (пробег, время простоя, тоннаж, уровень заряда батарей, примерное местонахождение по последним считанным стационарным меткам). И всё это на карте комплекса, как в Старкрафте…
а zigbee маловато
а вот модуль на LORA по типу описываемого — самый раз.
или из этой серии
mysku.club/blog/ebay/43282.html
mysku.club/blog/ebay/44545.html
mysku.club/blog/aliexpress/49889.html
mysku.club/blog/aliexpress/50940.html
Датчик движения — это постоянное потребление энергии, хоть и небольшое. Чаще придётся ходить аккумуляторы менять.
mysku.club/blog/diy/70860.html
Или солнечную батарею городить…
Питается только Ардуина, которая при срабатывании «будит» GSM модуль.
Меньше $2 https://aliexpress.com/item/item/32283531730.html
с сигналками 800МГц тоже обещают 1.5км, а реально торец высотки не пробивают…
брал ВиФи репитер, обещали до 10км — ага, 1.5км не пробивает…
Поэтому можно обещать ТОЛЬКО на открытой местности, всё остальное зависит от конкретной ситуации.
Ну, тогда стена дома представляющая собой сплошной бетон (без окон), армированный металлической сеткой, возможно по которой идёт проводка, является для радиосигнала довольно сильным препятствием.
Если мало, то активно набирает развитие проект lacuna lora satellite.
А я ею занимаюсь (в частности ремонтом радиостанциий) уже 25 год…
Motorola, Kenwood, ICOM, Vertex… и их клоны — да. Но можете написать в ЛС. Возможно, смогу помочь.
… По статистике надёжности я бы на первое место поставил Motorola. Не убиваемые… Ремонт у них в 99% это ремонт тангенты :) И 1% от старости может слететь прошивка (флэш не вечная)
Логическая ошибка у вас. Вы написали про 9км с «Лорой», как про некое достижение.
:)
Вот если бы написали про 99км, тогда да, заинтересовало бы…
Энергоэффективности можно достичь разными путями. Вот одна моя самоделка:
radiokot.ru/circuit/analog/receiv_transmit/19/
… В современной цифровой радиосвязи очень хорошо учтены разные нюансы. Лора не первая.
Посмотрите меню программы-конфигуратора, например, к цифровой радиостанции Motorola. Уверен, что о половине пунктов настройки вы даже ничего ещё никогда не слышали.
Там много есть по энергоэффективности — настройка тайм-слотов (две р/с могут одновременно работать на одной частоте) и т.д.
На фото, что я выложил выше — прошлый век в прямом и переносном смысле. Списанные мною аналоговые р/с.
насчет компактности и далее — чем то приходится жертвовать…
Очень интересно, если есть реальное приминение !!!
Сбор показаний с датчиков (вода, газ, отопление и т.д.- уже много мест, где внедряется это).
Можно использовать транспорта данных (но достаточно медленного тогда) в местах, где много помех — заводы всякие.
Особо актуально во всяких датчиках на гвс/хвс/цо, чтобы показания передавал сам раз в день, да ежемесячно при этом было недорого…
Поставили станцию на район, вот все показания четко собираются, сразу видно где не работает, сигнализирует, что батарейка нуждается в замене, даты поверки и прочее…
Плюс здесь только в том, что просто лепить из кучи готовых. библиотек, которые тянутся ради одной функции каждая. По факту получается громоздкий неэффективный код
Написал то же на gcc, и задержки.пропали и код компактнее
Arduino IDE, внезапно как раз gcc и использует.
Вот честно, где-то слышали, что Arduino — не труъ, а почему, фигегознает? Так ведь?
Повальная декларация совместимости с Arduino IDE означает, во-первых, что модуль можно будет запрограммировать даже программатором Громова, а во-вторых, где-то лежит либа, тупо реализующая стандартные методы и дефайнящая стандартные алиасы. Ну и может кое-какой рантайм, если он нужен.
И использовать всё это вы можете совсем даже не в Arduino IDE, а например, в CLion + PIO, выкинув GCC, или даже (хоба!) Visual C++.
и platformio
Это да, но как писал автор «Идеальная совместимость с Arduino!» уже не верно, т.к. не одними стандартными методами богата arduino. А и набором библиотек, которые с кастомными платами могут и не дружить. Бывает просто подшаманить у них в кишочках и добавить поддержку. А бывает что написаны на чистом С, и придется это все переводить.
Более того, можно даже в Arduino IDE скопипастить код из Visual C++ / avr-gcc и он заработает на чистом С++ (переопределить main и все arduino зависимости будут выброшены еще на этапе компиляции).
хотя по факту все верно там все самопальное, и пргограмматор там всякой свой
а то извините в адрудине есть даже software uart непонятно для чего
здесь к тому же arm а не avr
сперва берётся неподходящий для задачи контроллер, нагружаем проц, а потом удивляемся на задержки
а виновата почему то Ардуина
ps: для большинства diy применений мощностей atmega328 и сейчас достаточно. Более чем достаточно.
По большому счету из опенсорсного диайвая, стартовавшего на ардуине лично мне известны только две предметные области, где серьезно уперлись в производительность платформы: прошивки 3D принтеров и полетные контроллеры.
собтвенно, это не у меня, а у другого господина сегодня утром возникли некие задержки и его давно заминусовали
у меня на вскидку не хватает фантазии предтавить зачем «чайнику» прям понадобиться одновременно 2 UART и 10 битный АЦП, если припрет то можно «шить» через isp, без uart.
Ну и внешний АЦП к ардуинам иногда любят подключать, хоть 24 разрядный. Пусть это будет измеритель чего нибуть, с передачей куда нибуть по gsm. задача в принципе неторопливая — можно использовать софтовый порт, но и к cкорости работы АЦП требований нет.
Ну а дальше, у нас лет как 6 есть atmega32u4 — отлаживать можно по usb к компу подключать.
Ну ко мешает написать грамотный код в Arduino IDE без задержек, применения глючных библиотек и даже без Wiring? А если мешает еще и начальная задержка загрузчика, то загрузить свой код чере программатор из той же Arduino IDE?
а если использовать библиотеку ардуино, то в отличие от arduino ide в нем нет стремного кастомного препроцессора, и можно писать на плюсах во всю мощь)
platformio ее не поддерживает, но есть родная среда разработки на осове толи make толи cmake — не помню уже, но все как «в лучших домах»
Придется правда подумать о поддержке lora, но наработки рабочие то можно и у ардуино подглядеть.
А я вот в свое время понапокупал всяких E78, которые по идее тоже с ASR650x, но никак не могу разобраться — ни один программатор их не видит.
www.ebyte.com/en/product-view-news.aspx?id=770
Может модули мёртвые, но десяток от разных продавцов…
наверное руки, вот займусь их выпрямлением, и при успехе будет мой первый обзор)
a.aliexpress.com/_AN2ZcL стек быстро прилепил, но он туда еле влез, пришлось немного поурезать. А так если честно, то можно со всем разобраться, тут главное что бы настроение и время было.
Где описание (или хотя бы упоминание) MCU на котором построен модуль? Если это STM32, то причём тут Ардуино? (кому и зачем нужно программировать STM32 в Ардуино?).
Где хоть какой-то базовый пример программирования модуля в Ардуино? (чтобы было понятно о чём вообще идёт речь)
только в двух словах это не объяснить не углубляясь сильно в стороны, и не понятно будеттли польза от этого
ведь сразу пойдут коментарии: много воды, много текста, ничего не понятно, это надо на хабр.
а это обзор желёзки а не пошаговая инструкция.
Кстати таким же подходом страдает и компания-производитель: «у нас классные модули, у нас классные модули», а что у них внутри и как с этим работать — догадайся сам.
" в которые уже интегрированы MCU серии PSoC® 4000"
про установку написано
«Для добавления поддержки данной платформы в Arduino IDE нужно всего пара действий: добавить источник загрузки пакетов поддержки и в менеджере плат непосредственно найти и установить пакет поддержки для Cube Cell. „
источник вот только не указан в текстовом виде.
В принипе можно расписать что такое PSoC® 4000, где скачать Arduino… но это перебор.
А вот про «Thethingsnetwork» как бы маловато написано потому что непонятно что это такое есть.
Но если читать с начала то есть ссылка на предыдущуюю статью mysku.club/blog/aliexpress/81731.html где подробно и скартинками расписано что это такое и с чем его едят.
«покупатели должны сами найти» что то мне напоминает… но на такие вещи покупателя ещё сыскать надо.
зато популярны малина и Андуина.
что касается psoc то это штука сама по себе интересная но почему то на слуху avr и stm32
— много такого о чем создатели ардуино и не задумывались
-своя свреда разработки и даже немного визуальная
свой сервер — это как миниум вопрос с маршрутизацией и доменным именем, можно дома, можно VPS использовать. а можно воспользоваться готовым сервисом. И данные на него передавать можно по разному.
и да он не потрудился толком объснить логичку выбора, но явлется ли это рекламой?
Если хотите могу расписать подробно как это выглядит.
не совсем понятно зачем его вообще регистрировать где то
ну кроме как на карте поглядеть :)
вообще так у Lora вроде как есть и p2p режимы
habr.com/ru/company/nag/blog/371067/
В связи с периодическими внезапными морозами хотелось бы иметь недорогие системы умного дома с удаленным мониторингом(с датчиками температуры) для предотвращения замораживания отопительной систем и других функций.
Датчик температуры и влажности Xiaomi
mysku.club/blog/aliexpress/72607.html
future2day.ru/umnyj-dom-na-osnove-arduino/
IoT-роутер + Датчик движения + Датчик протечки + Датчик дыма + Датчик открытия
mysku.club/blog/china-stores/49856.html
LoRaWAN Датчик утечки воды 48уе
https://aliexpress.ru/item/item/4001345311618.html
LoRaWAN Датчик температуры и влажности 44уе
https://aliexpress.ru/item/item/4000534426408.html
LoRaWAN шлюз 206-220уе (зависит от модели)
https://aliexpress.ru/item/item/33056657219.html
ZigBee хотя и энергоэффективная технология(с не сильно дорогими датчиками), но для её работы все еще требуется не дешевый Xiaomi Smart Home Gateway 2 или аналог.
В то время как по старой технологии wifi
датчик утечки воды с китайским сервером(но надо уточнять) на али стоит всего 8уе.
https://aliexpress.ru/item/item/4000126345478.html
Датчик темп и влажности с жк экпраном и поддержкой умного дома Alexa и Smart Life 16 уе.
https://aliexpress.ru/item/item/1005001757760066.html
ИМХО наиболее доступная технология это umnyj-dom-na-osnove-arduino в предыдущем сообщении с подключением датчиков по трем — четырем проводам.
Нашел «1-way» программируемый датчик температуры DS18B20
DS18B20 – только температурный водонепроницаемый датчик (-55°С — +125°С):
AM2301 – датчик температуры и влажности (-40°С — +80°С; 0 — 99,9% влажности):
mysku.club/blog/aliexpress/56754.html (через thingspeak)
Применение в других устройствах:
mysku.club/blog/china-stores/46334.html (еще интересный недорогой вариант)
mysku.club/blog/aliexpress/14654.html
Достаточно много относительно недорогих беспроводных проектов на основе ESP8266:
D1R2 ESP8266 от RobotDyn + датчик температуры и влажности Si 7021 = telegrambot
Старые статьи (вроде без thingspeak com и подобных)
mysku.club/blog/aliexpress/48741.html
mysku.club/blog/diy/68375.html
mysku.club/blog/aliexpress/59595.html
Я немного прифигел, думаю чего это CubaCel здесь, а потом прочёл правильно :)