Русский
Русский
English
Статистика
Реклама

Nrf52832

Мультисенсорный беспроводной микро DIY датчик

08.10.2020 12:16:26 | Автор: admin
DIY, как говорит Википедия, это уже давно субкультура. В этой статье хочу рассказать о своем diy проекте небольшого беспроводного мультисенсорного датчика, и это будет моим небольшом вкладом в данную субкультуру.

История этого проекта началась с корпуса, это звучит по-дурацки, но именно так этот проект и начался. Корпус был куплен на сайте Алиэкспресс, надо отметить что качество отливки пластика у этого корпуса отличное. После недолгой переписки с продавцом на почту был выслан чертеж и данный проект начался.



Сам чертеж был очень плохо образмерен и половину измерений для границ, вырезов и технологических отверстий будущей печатной платы пришлось делать с помощью штангенциркуля. Получив все внутренние размеры корпуса стало понятно что радио чип придется разводить непосредственно на печатной плате, так как высота от верха печатной платы до внутренней поверхности корпуса составляла 1.8 мм, а минимальная высота готового среднестатистического радио модуля обычно составляет 2 мм (без экрана).




Для датчика был выбран SoC nRF52 в корпусе QFN48. В этом корпусе в серии nRF52 у Nordic есть три варианта: nRF52810, nRF52811(новое), nRF52832. Параметры чипов: 64 MHz Cortex-M4, 2.4 GHz transceiver, 512/256 KB Flash, 64/32 KB RAM у nRF52832 и 192 KB Flash, 24 KB RAM у nRF52810, nRF52811, чипы мультипротокольные, поддерживают Bluetooth Low Energy, Bluetooth mesh, ESB, ANT, а nRF52811 помимо перечисленного еще и Zigbee и Thread, а так же Bluetooth Direction Finding.


Сам датчик решил делать мультисенсорным, что бы его можно было использовать под разные задачи. Разводку чипа по этой причине нужно было сделать как можно компактнее, с учетом того что минимальные размеры компонентов не должны быть меньше 0603, что бы устройство можно было бы спаять вручную. После того как чип был разведен на плате занялся подбором сенсоров. Основное на что ориентировался при подборе это размеры корпуса сенсора и возможность пайки сенсора в домашних условиях с минимальным набором оборудования (паяльник и фен).


Для датчика были выбраны следующие сенсоры: SHT20,SHt21, Si7020, Si7021, HTU21D (сенсор температуры и влажности), все эти сенсоры имеют один корпус и одинаковые выводы ножек, HDC2080(сенсор температуры и влажности) так же имеет аналогичный корпус, как и ранее перечисленные, но имеет дополнительный выход прерывания, более энергоэффективный, BME280(сенсор температуры, влажности и давления), LMT01(сенсор температуры), TMP117(высокоточный сенсор температуры), высокая энергоэффективность, выход прерывания, установка верхних и нижних пределов температур, LIS2DW12(акселерометр) высокая энергоэффективность, один из лучших в своем сегменте или LIS2DH12.



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


Помимо сенсоров на датчике размешены 2 светодиода, один из них rgb размещенный на нижней стороне датчика. Две smd кнопки, одна подключенная к reset, вторая пользовательская для реализации каких то сценариев работы датчика. Корпус датчика состоит из трех частей, основной корпус, внутренняя вставка с отверстием удерживающим батарейку и крепящаяся к основному корпусу четырьмя винтами, и нижней крышкой, которая защелкивается в отверстия на внутренней вставке. Так же выведены 4 аналоговый пина, 2 цифровых и так же еще два пина которые могут быть NFC антеной или цифровыми пинами, порт SWD.

Rgb светодиод и кнопки размещены на pcb плате таким образом, что к ним есть открытый доступ при снятой нижней крышке через отверстия во внутренней вставке, которые предназначены для защелкивания задней крышки.


Устройство пережило две ревизии, так же ранее на месте сенсора TMP117 был установлен сенсор освещенности MAX44009, который позже был заменен сенсором температуры, оба сенсора имеют одинаковый корпус, но разные выводы на ножках, может быть и зря что был заменен, возможно стоит вернуть.





Сейчас у меня дома работают 4 таких устройства, два из них это датчики температуры и влажности с сенсорами Si7021(один на nRF52832, второй на nRF52811), один это датчик удара реализованный на акселерометре LIS2DW12(nRF52810) и датчик контроля температуры на сенсоре LMT01(nRF52810).

Беспроводной датчик работает на батарейке cr2032, потребление во сне составляет 1.8мкА для nRF52810, nRF52811 и 3.7мкА для nRF52832. Потребление в режиме передачи данных 8мА.



Описание используемого протокола, разработки софта для этого датчика под разные сценарии использования думаю выходит за рамки данной статьи.

Тест работы датчика с системой умного дома можно посмотреть в небольшом видеоролике ниже.


Проект данного датчика является открытым, все материалы по проекту вы можете получить на моем GitHub.

Спасибо за внимание, всем добра!



Подробнее..

Беспроводная мини погодная станция с e-paper экраном на батарейках

25.02.2021 12:15:55 | Автор: admin
Приветствую всех читателей Habr! В своей сегодняшней статье хочу поделиться с вами своим новым устройством датчиком температуры, влажности и давления с функцией предсказания погоды. Датчик работает на микроконтроллерах nRF52. Данный проект это логическое продолжение этого проекта. В новом датчике используется дисплей на электронных чернилах размером 2.9 дюймов. В датчике установлен сенсор BME280, так же есть место под установку датчиков SI7021, HTU21D. Работает от батареек CR2450. Может передавать данные в системы Умного Дома, так же может работать в режиме без сети.




Для этого проекта был выбрана модель дисплея на электронных чернилах GDEH029A1 размером экрана 2.9 дюймов. Примерно через 3 месяца тестирования на смену этому дисплею производители выпустили на рынок новую модель GDEM029T94(V2 по версии Waveshare).
Старую модель стало трудно купить, поэтому пришлось добавлять поддержку нового дисплея в проект.



Характеристики дисплеев:
Разрешение: 296х128
Диапазон рабочих температур: 0 50 C
Потребление в рабочем режиме: 3мА
Потребление в режиме глубокого сна: 1мкА
Минимальное время обновления экрана: 0.3 сек.

Разрабатывал сразу несколько вариантов плат под несколько вариантов радио модулей nRF52 от разных производителей. Остановился на модулях MINEW MS50SFA2 (nRF52832) и EBYTE E73 2G4M08S1C (nRF52840), E73 2G4M08S1E (nRF52833).



Модуль MINEW MS50SFA2 имеет небольшие размеры, но не очень большое количество выведенных ножек. В моем проекте были задействованы все доступные ножки MS50SFA2. У модулей E73 ножек на много больше, поэтому впоследствии была разработана расширенная версия датчика. В раcширеной версии добавлен активный биззер, датчик освещенности MAX44009, заменены батарейки с CR2450 на ААА.

Схема датчика



Корпус датчика печатается на FDM 3D принтере, что бы добиться более или менее приличного вида, корпус после печати необходимо отшлифовать наждачной бумагой и отполировать. Так как у датчика есть светодиод, а в расширенной версии датчик освещенности, то в корпусе необходимо было сделать два сквозных отверстия, после сверления отверстий, они были залиты полимерной смолой для SLA 3D принтера и засвечены УФ лампой, после этого отполированы.





ПО датчика было сделано для работы в сети MySENSORS, это открытый проект домашней автоматизации. К слову, датчик будет нормально работать и без сети. На данный момент в проекте поддерживается работа с двумя моделями дисплеев GDEH029A1, GDEM029T94. Возможно позднее будет добавлена поддержка трехцветных дисплеев.

Опишу немного функционал устройства. Устройство при подаче питания осуществляет попытку поиска сети, если сеть не найдена, то устройство переходит в основной режим работы без работы в сети (не шлет данные), но периодически делает короткие запросы на поиск сети(~раз в час). Интервал опроса сенсора один раз в минуту, обновление экрана и отправка данных(если сеть доступна) происходит при изменении данных температуры на 0.5C, влажности на 1%, давления на 1 единицу, уровня освещенности на 1 люкс, изменения прогноза по погоде. Интервал опроса батарейки задается пользователем в интервале от 1 часа до 24 часов, по умолчанию опрос один раз в 6 часов.

Датчик может настраиваться внешними командами из интерфейса УД. Для этого необходимо активировать нужный пункт меню конфигурация датчика нажатием кнопки меню. После активации режима конфигурации датчик перейдет в режим прослушивания на 20 секунд. В этот интервал необходимо отправить команду. Внешними командами можно настроить интервал проверки батарейки, изменить вывод информации на экран в инверсии, отключить индикацию светодиода, отключить звуковой сигнал.

Описание алгоритма расчета прогноза погоды (NXP Application Note 3914 | John B. Young)

При работе в радиосети датчик передает данные:
  • Температура,
  • Влажность,
  • Атмосферное давление,
  • Уровень освещенности,
  • Прогноз погоды,
  • Уровень сигнала,
  • Уровень заряда батарейки,
  • Причина перезагрузки






Для компиляции нужной версии ПО необходимо сконфигурировать файл MyConfig.h.
В файле задаются:
  • Язык вывода информации (RU,ENG)
  • Режим оптимизации питания при передаче данных
  • Подключение датчика освещенности
  • Подключение активного биззера
  • Скорость передачи данных
  • Версия подключенного дисплея


//#define EINK_V1#define DCPOWER#define LIGHTSENS#define BIZZER#define LANG_EN//#define MY_DEBUG//#define MY_PASSIVE_NODE//#define MY_NODE_ID 101#define MY_RADIO_NRF5_ESB#define MY_NRF5_ESB_MODE (NRF5_1MBPS)//#define MY_NRF5_ESB_MODE (NRF5_250KBPS)#define MY_RESET_REASON_TEXT#define SN "EFEKTA WeatherStation 290"#define SV "0.45"


Потребление датчика в режиме сна составляет в среднем 3мкА (на nRF52840 больше), в режиме считывания сенсора и обновления экрана 5мА(среднее), в режиме передачи данных 8мА(среднее), время передачи одного сообщения 10мc (идеальные условия).

Проект датчика в варианте с модулем MINEW MS50SFA2 может быть легко повторен. Из сложных моментов можно выделить пайку разъема под шлейф экрана. Как это сделать проще рекомендую посмотреть мое короткое видео по пайке разъема. Так же датчик можно приобрести готовым, тем самым поддержав мои открытые разработки.

Видео пайки разъема



Фото датчика

















Видео с демонстрацией работы датчика



GitHub проекта github.com/smartboxchannel/

В файле readme находится инструкция по установке и настройке среды для редактирования и компиляции ПО для датчика.

В завершении сделаю небольшой фото анонс проектов с которыми в скором времени поделюсь и о которых раскажу.

Новые проекты на стадии тестирования
Датчик качества воздуха на батарейках с e-paper экраном(аналогов не нашел)









Мини датчик влажности почвы с e-paper дисплеем(аналогов не нашел)










Если вам интересно все что связано с DIY, вы являетесть DIY разработчиком или хотите только начать, вам интересно использование DIY девайсов, а так же хотите узнавать первыми о моих проектах, то приглашаю всех заинтересованных в телеграм чат DIYDEV.

Всем, кто хочет делать устройства, начать строить автоматизацию своего дома, я предлагаю познакомиться с простым в освоении протоколом Mysensors телеграм-чат MySensors

А тем кто ищет достаточно взрослые решения для домашней автоматизации приглашаю в телеграм-чат Open Thread. (что такое Thread?)

Спасибо за внимание, всем добра!

Подробнее..

Мини Термометр amp гигрометр с E-PAPER на nRF52 или о том, что пока не выпустили производители

10.09.2020 06:07:43 | Автор: admin
Приветствую всех читателей Habr! Хочу поделится с вами своим новым опенсорс проектом. Из названия статьи понятно что речь пойдет о датчике температуры и влажности с дисплеем на электронных чернилах. Уже достаточно давно я попробовал сделать проект датчика температуры с такими дисплеями в виде ардуино модуля. С тех пор тема e-ink дисплеев меня заинтересовала.

Целью данного проекта была разрабока миниатюрного датчика, сравнимого по размерам с обычными беспроводными датчиками температуры, но при этом получить еще и вывод данных на самом устройсве. И при всех этих условиях что бы устройство работало от небольшой батарейки достаточно долго. Что из этого получилось, прошу оценить и не скупится на комментарии.




Датчик работает на чипах nRF52, для данного проекта был выбран модуль от компании MINEW. Модуль небольшого размера, имеет 18 выводов, 13 из которых gpio, два варианта антен, печатная и керамическая, так же на модуль устанавливается несколько вариантов чипов, nRF52810 и nRF52832, а после непродолжительного общения с менеджментом компании мне без вопросов поставили на эти модули чипы nRF52811. Так я кстати получил свои первые 811-ые и к тому же по цене в полтора раза ниже чем мог бы купить у дистрибьютеров просто чипы, но это уже другая история. На модуле разведен вариант схема DC-DC и часовым кварцем. Размеры модуля 12мм х 15мм. Присутствует металлический экран.



Из линейки e-ink дисплеев выбор естественно пал на достаточно новую модель м размером экрана 1.02 дюйма. Стоимость одного дюйма электронных чернил составила 500 рублей, что мне показалось приемлемо. Небольшие трудности с разработкой платы под этот дисплей вызвал его разъем, 30 пиновый FPC c шагом в 0.5мм. Ширина FPC разъема намного больше ширины самого дисплея, что вызвало неудобство при проектировании. Но зато было проше с объвязкой дисплея, она проще чем на других моделях (даташит GDEW0102T4).



Из цифровых сенсоров температуры и влажности решил остановится на sht20, их и в достаточном колличестве было у меня, простой достаточно, хорошая цена, удобный размер. Так же одним из плюсов можно назвать то что вместо sht20 при желании легко установить sht21, si7020, si7021, htu20d, htu21d и hdc1080, но последний вариант не самый очень ;).

Под датчик проектировалось 2 платы, одна под экран и его объвязку, вторая под радиомодуль, сенсор температуры и влажности и батарейку. Ключевыми параметрами размеров плат были размеры экрана и батарейки. На плате c экраном были заложены отверстия под винты (1.4 х 3) для крепления платы к корпусу, на второй плате были сделаны вырезы для удобной установки винтов. Так как это DIY устройство я мог себе позволить поставить вкусную батарейку CR2450. Ну а если мне покажется когда то что устройство толстовато, то я всегда смогу напаять держатель под батарейку CR2430. В итоге получилось две платы размерами 36мм на 26мм.



Корпус проектировался в СолидВоркс, модели плат были экспортированны из DipTrace в формате DXF, которые уже в СолидВоркс были преобразованы в 3D модели. Корпус состоит из двух частей и кнопки, Крепления половинок корпуса друг к другу сделано так же винтами(1.4 х 4) с одной стороны и выступающим зацепом c другой стороны. Сделаны два отверстия для циркуляции воздуха для сенсора температуры и влажности.



В этом проекте корпус был напечатан на FDM принтере, конечно качество печати ниже чем на SLA принтере, но по прочности изделия из из жидких смол сильно уступают изделиям из филаментной нити, а из за особенностей корпуса, прочность была важна. Так что морально приготовился к шлифовке и полировке. Впринципе получилось достаточно качественно.



Примерно так происходила разработка железа, постарался описать все этапы и некоторые нюансы, если она вам показалась трудоемкой, то то это не так, трудоемким на самом деле было ПО. Как и прежде я свои проекты делаю под MySensors, хотя признаюсь что уже не с тем энтузиазмом что прежде. В какие то моменты реализации стал упиратся, каких то вещей не хватает, какие то просто невозможны. Альтернативой на данный момент для себя я вижу Open Thread, по крайней мере он кажется достаточно привлекательным.

Cхема устройства







В итоге все свои требования к функционалу реализовать получилось. Устройство может работать с контроллером УД, так же устройсво может работать напрямую с каким либо устройством в сети МySensor. Привязка устройст для прямого обмена может происходить как посредством конфигурации устройств через контроллер УД, внешними командами, так и без участия контроллера УД с помошью простого нажатия кнопки для активации режима привязки(binding). Датчик температуры и другое устройство к которому привязан датчик могут нормально поддерживать обмен даже без работающего шлюза MySensors или работающего контроллера УД, что безусловно повышает отказоустойчивость. Отдельная проблема была с драйверами eink дисплея, вероятно потому что дисплей достаточно новый, на сайте производителя и сайте WaveShare(предлагающий eink экраны Good Display под своим брендом) реализации библиотек достаточно сырые. Пришлось что то переделать, что то дописать. В датчике реализовано поддержка нескольких языков, инверсия цвета по внешнец команде в режиме конфигугрирования устройства, несколько вариантов шрифтов так же меняемые по внешней команде пв режиме конфигурации устройства. Датчик выводит на экран показания температуры и влажности, заряд батареи и уровень сигнала. Интервал замеров температуры и влажности, интервал замера уровня батарейки можно задать так же внешней командой. Для температуры и влажности в минутах, для уровня заряда батарейки в часах. Передает датчик в УД следующие данные: температура, влажность, уровень заряда в %, напряжение, уровень сигнала, причину перезагрузки.



Посмотреть как это выглядит можно в небольшом видеоролике

таймстампы интересных моментов:
3.10 Конфигурирование (смена шрифта, инверсия цвета)
5.10 Замер потребления, работа WTD

Если кому то интересны мои разработки то после прочтения статьи рекомендую перейти на канал и подписатся, там информацию по новым разработкам я публикую в первую очередь.

В спящем режиме датчик потребляет 2мкА, сброс WTD кажные 5 секунд, потребление в момент сброса 4-5мкА. в режиме работы с экраном и сенсором температуры и влажности 2-3мА, в режиме передачи 5-8мА(такой диапозон в 3 мА связан с тем что датчик сам регулирует мощность передачи на основе данных по уровню сигнала.

Под спойлером фотографии датчика













На этом хочу откланяться, если вам интересно все что связано с DIY, вы являетесть DIY разработчиком, или хотите только начать, вам интересно использование DIY девайсов приглашаю всех заинтересованных в телеграм чат DIYDEV

Всех кто хочет делать устройства, начать стороить автоматизацию своего дома предлагаю познакомиться с простым в освоении протоколом Mysensors телеграм чат MySensors

А тем кто ищет достаточно взрослые решения для домашней автоматизации приглашаю в телеграм чат Open Thread.

Мой GitHub этого проекта, схема, гербер файлы, зд модели корпуса, bom, ПО

Всем как всегда Добра!
Подробнее..

Из песочницы Как подключить АЦП HX711 к NRF52832

29.09.2020 18:09:04 | Автор: admin

1. Введение


На повестке дня стояла задача разработать протокол общения микроконтролера nrf52832 с двумя полумостовыми китайскими тензодатчиками.

Задача оказалась не простой, так как столкнулся с отсутствием какой либо внятной информации. Вероятнее, что корень зла находится в самом SDK от Nordic Semiconductor это постоянное обновления версий, некоторая избыточность и запутанность функционала. Пришлось писать все с нуля.


Я думаю эта тема довольно актуальна исходя из того, что данный чип обладает BLE стеком и целым набором вкусняшек режима энергосбережения. Но в техническую часть я сильно углубляться не буду, так как на эту тему написано немало статей.


2. Описание проекта


image

Железо:


  • Adafruit Feather nRF52 Bluefruit LE (то что оказалось под рукой)
  • АЦП HX711
  • Китайские тензодатчики 2 шт. (50х2 кг)
  • Программатор ST-LINK V2

Софт:


  • IDE VSCODE
  • NRF SDK 16
  • OpenOCD
  • Программатор ST-LINK V2


Все находится в одном проекте, придется только подшаманить Makefile (указать расположение вашего SDK).


3. Описание кода


Будем использовать GPIOTE модуль для работы с периферией исходя из привязки задач и событий, а также PPI модуль для передачи данных из одной периферии в другую без участия процессора.



ret_code_t err_code;   err_code = nrf_drv_gpiote_out_init(PD_SCK, &config);//настраеваем на выход   nrf_drv_gpiote_out_config_t config = GPIOTE_CONFIG_OUT_TASK_TOGGLE(false);//будем передергивать пин для импульса   err_code = nrf_drv_gpiote_out_init(PD_SCK, &config);//настраеваем на выход

Настраиваем линию синхронизации PD_SCL на выход для генерации импульсов длительностью 10 мкс.

   nrf_drv_gpiote_in_config_t  gpiote_config = GPIOTE_CONFIG_IN_SENSE_HITOLO(false);// переход уровня с высокого на низкий   nrf_gpio_cfg_input(DOUT, NRF_GPIO_PIN_NOPULL);// на вход без подтяжки   err_code = nrf_drv_gpiote_in_init(DOUT, &gpiote_config, gpiote_evt_handler); 

static void gpiote_evt_handler(nrf_drv_gpiote_pin_t pin, nrf_gpiote_polarity_t action){    nrf_drv_gpiote_in_event_disable(DOUT);//отключаем прерывание    nrf_drv_timer_enable(&m_timer0);//включаем таймер} 

Настраиваем линию данных DOUT для считывания состояния готовности HX711, при наличии низкого уровня срабатывает обработчик в котором отключаем прерывание и запускаем таймер для генерации синхронизирующих импульсов на выходе PD_SCL .


 err_code = nrf_drv_ppi_channel_alloc(&m_ppi_channel1);   APP_ERROR_CHECK(err_code);   err_code = nrf_drv_ppi_channel_assign(m_ppi_channel1,                                         nrf_drv_timer_event_address_get(&m_timer0, NRF_TIMER_EVENT_COMPARE0),                                           nrf_drv_gpiote_out_task_addr_get(PD_SCK));// подключаем таймер к выходу   APP_ERROR_CHECK(err_code);   err_code = nrf_drv_ppi_channel_enable(m_ppi_channel1);// включаем канал   APP_ERROR_CHECK(err_code);   nrf_drv_gpiote_out_task_enable(PD_SCK); 
// включаем gpiote

После чего инициализируем PPI модуль и коммутируем наш таймер к выходу PD_SCL, для генерирования импульсов длительность 10мкс при наступление события сравнения, а также включаем GPIOTE модуль.


nrf_drv_timer_config_t timer_cfg = NRF_DRV_TIMER_DEFAULT_CONFIG;// по умолчанию   timer_cfg.frequency = NRF_TIMER_FREQ_1MHz;// тактируем на частоте 1Мгц   ret_code_t err_code = nrf_drv_timer_init(&m_timer0, &timer_cfg, timer0_event_handler);   APP_ERROR_CHECK(err_code);   nrf_drv_timer_extended_compare(&m_timer0,                                  NRF_TIMER_CC_CHANNEL0,                                  nrf_drv_timer_us_to_ticks(&m_timer0,                                                            10),                                  NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK,                                  true);// срабатывает по сравнению

Инициализируем нулевой таймер и его обработчик.



  if(m_counter%2 != 0 && m_counter<=48){       buffer <<= 1;// переменная считанных даных        c_counter++;// счетчик положительных  импульсов           if(nrf_gpio_pin_read(DOUT))buffer++;//считываем состояние входа   }

Самое интересное происходит в обработчике таймера. Период импульсов составляет 20 мкс. Нас интересуют нечетные импульсы (по восходящему фронту) и при условии, что их количество не более 24, а событий 48. При каждом нечетном событии происходит считывание DOUT


Из даташита следует, что количество импульсов должно быть не менее 25, что соответствует коэффициенту усиления 128 (в коде я использовал 25 импульсов), это эквивалентно 50 событиям таймера, что указывает на окончание фрейма данных.


 ++m_counter;// счетчик событийif(m_counter==50){      nrf_drv_timer_disable(&m_timer0);// отключаем таймер       m_simple_timer_state = SIMPLE_TIMER_STATE_STOPPED;//       buffer = buffer ^ 0x800000;       hx711_stop();//jотключаем hx711       }   

После этого отключаем таймер и обрабатываем данные (по даташиту) и переводим HX711 в режим низкого энергопотребления.


static void repeated_timer_handler(void * p_context){   nrf_drv_gpiote_out_toggle(LED_2);   if(m_simple_timer_state == SIMPLE_TIMER_STATE_STOPPED){      hx711_start();// включаем hx711       nrf_drv_gpiote_out_toggle(LED_1);       m_simple_timer_state = SIMPLE_TIMER_STATE_STARTED;   }  }/**@brief Create timers.*/static void create_timers(){   ret_code_t err_code;    // Create timers   err_code = app_timer_create(&m_repeated_timer_id,                               APP_TIMER_MODE_REPEATED,                               repeated_timer_handler);   APP_ERROR_CHECK(err_code);}

Ожидаем события от RTC таймера с интервалом в 10 с (эту уже на ваше усмотрение) в обработчике запускаем HX711, вызывая прерывание по линии DOUT.

Есть еще один момент, логи выводятся через UART (baud rate 115200, TX 6 пин, RX 8 пин) все настройки находятся в sdk_config.h

image

Выводы


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


P.S.


Проект еще в процессе разработки, поэтому если будет интересна эта тема в следующей статье я постараюсь описать алгоритм калибровки датчиков веса, а также подключения BLE стека.


Материалы


Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru