BBC micro::bit как платформа для старта
Если посмотреть, на какой базе сегодня обучают школьников в кружках робототехники, то окажется, что в большинстве своем это Лего-подобные наборы с контроллером Arduino.
Что и говорить, микроконтроллер Arduino очень известен и доступен по низкой цене. На базе Arduino можно сделать много разных игрушек как для детей, так и для взрослых. Идеи, заложенные в Лего, позволяют без особого труда собирать довольно сложные конструкции. Если возможностей наборов Лего не хватает, имеются многочисленные периферийные устройства. Опять же, для Arduino написано много книг, в том числе на русском языке, а в интернете есть сообщества пользователей этой платформы.
Но чем же тогда хорош micro::bit?
Прежде всего, низким порогом входа для тех, кто не владеет языками программирования. Если для Arduino нужны Arduino IDE и язык С, то для micro::bit используется графическая среда Microsoft MakeCode, доступная и детям. Причем доступная из браузера, без установки каких-либо программ. Но если нужно, можно составлять программы для micro::bit на JavaScript и Python, а для специалистов доступен и С++.
Справедливости ради надо сказать, что для Arduino тоже есть графические среды программирования, например, Scratch for Arduino или Ardublock, но их нужно специально устанавливать на компьютер.
Второе преимущество micro::bit в том, что на плате этого микроконтроллера имеется довольно много периферийных устройств. Вот, например, что есть в micro::bit версии 2:
три программируемые кнопки, одна из которых сенсорная;
монитор из 25 светодиодов;
микрофон;
динамик;
акселерометр (датчик ускорения);
магнитометр (встроенный компас);
измеритель температуры;
встроенный модуль Bluetooth диапазона 2,4 ГГц для беспроводных коммуникаций;
интерфейс USB;
встроенный аналого-цифровой преобразователь;
интерфейс GPIO (General Purpose Input Output)
Да, конечно, можно купить нужные модули отдельно и подключить к Arduino, но в micro::bit это все уже есть на плате очень небольшого размера, подключено и готово к работе.
Если сравнивать вычислительную мощность, объем памяти и другие параметры, то и здесь micro::bit обходит Arduino с большим отрывом. Ниже в таблице мы привели сравнение micro::bit и Arduino UNO.
|
---|
Как видите, даже версия 1.5 микроконтроллера micro::bit выглядит мощнее и привлекательнее, чем Arduino UNO. При этом для micro::bit в продаже имеется огромное количество совместимых периферийных модулей, наборов и конструкторов, в том числе собираемых по принципу Лего.
Цена micro::bit на сайте aliexpress.ru начинается примерно от 1200 руб. Это заметно дороже в сравнении с ценой Arduino UNO (от 250 руб. на том же сайте). Однако с учетом упомянутых выше преимуществ micro::bit представляет собой неплохое вложение средств в обучение микрокомпьютерной технике.
Строим систему сбора данных о погоде
Может показаться, что micro::bit пригоден только для простейших игрушек. Однако на самом деле это не так. Давайте создадим учебный проект STEM (science, technology, engineering and mathematics) системы сбора данных.
Эта система позволит вам контролировать через интернет данные о температуре, влажности, давлении, температуре точки росы и освещенности на довольно обширной территории. Ее можно развернуть на ферме, на большом участке возле загородного дома или на фабрике.
Такая задача решается различными способами. Можно, например, установить какую-нибудь систему умного дома, с проводной или беспроводной передачей данных, либо использовать промышленные решения. Но все это стоит немалых денег, а установка обычно выполняется специалистами.
Систему, описанную в этой статье, вы сделаете самостоятельно. По мере обучения вы будете добавлять к ней новые устройства и совершенствовать программное обеспечение.
Архитектура системы сбора данных
Для получения данных о погоде используем микроконтроллеры micro::bit с небольшим количеством дополнительных модулей. Разместим эти микроконтроллеры в тех местах, где нужно контролировать погоду, а полученные данные будем передавать по радиоканалу в шлюз. Шлюз мы соберем на базе микроконтроллера Raspberry Pi, подключенного к интернету.
Для просмотра результатов измерений мы создадим сайт, разместив его, например, на том же самом микроконтроллере Raspberry Pi.
Если размер территории, на которой нужно собирать данные, не превышает нескольких квадратных километров, то можно использовать архитектуру типа "звезда" (рис. 1).
При этом в центре (объект «Большой дом») будет находиться узел шлюза, рассылающий запросы на получение данных от периферийных узлов и предоставляющий доступ к этим данным через интернет.
В периферийных узлах (объекты «Летний домик», «Гараж» и «Парник») мы будем получать данные измерений и передавать их через радиоканал по запросу со стороны шлюза.
Почему не Bluetooth
На плате micro::bit есть контроллер Bluetooth, с помощью которого очень легко передавать данные на расстояния до 70 м. Этого хватит для сбора данных, например, в пределах не очень большой квартиры.
В теории для расширения покрытия можно было бы создать ретрансляционные узлы и собрать на micro::bit что-то вроде Mesh-сети. Однако для расстояний, измеряемых сотнями метров или километрами такая технология не подойдет из-за того, что потребуется очень много узлов, да и настройка сети будет очень непростая.
Почему не Wi-Fi
Почему бы для сбора данных не использовать микроконтроллеры с Wi-Fi, отправляя с них данные сразу в интернет?
Во-первых, не везде доступен интернет и Wi-Fi. Если на участке есть дом, оборудованный Wi-Fi, то на периферии участка сигнал Wi-Fi может быть уже недоступен.
Во-вторых, провайдеры интернета обычно ограничивают количество одновременно подключенных устройств. Если вам нужно разместить на территории большое количество узлов сбора данных, это ограничение может оказаться критическим.
В-третьих, контроллеры с Wi-Fi потребляют слишком много энергии, чтобы делать для них автономные источники питания. В то же время удаленные узлы системы сбора данных могут располагаться в таких местах, куда не подведена линия электропитания.
Используем технологию LoRa
В нашем проекте мы используем радиомодули LoRa (Long Range), способные передавать данные на расстояния до сотен метров и километров. Технология запатентована компанией Semtech и реализована в микросхемах приемо-передатчиков (трансиверов), таких как SX1268, SX1276, SX1278.
Важно, что протокол LoRa позволяет принимать сигналы ниже уровня шума. При этом хорошая дальность связи достигается при малой мощности излучаемого сигнала и низком энергопотреблении.
Конечно, на дальность устойчивой связи влияет мощность передатчика, чувствительность приемника, тип и расположение антенн, рабочая частота, наличие прямой видимости и помех для прохождения радиоволн (дома, лес), наличие помех от различных источников радиоизлучения и другие факторы.
К сожалению, скорость передачи данных модулями LoRa не превышает 2400–19200 бит/c. Но так как нам нужно передавать только числа и текстовые строки, а не фото или видео, то такая скорость будет вполне допустимой.
Подбираем оборудование
Чтобы собрать систему сбора данных, нам потребуется:
микроконтроллеры micro::bit по одному на каждый узел сбора данных (в нашем случае 3 шт.);
адаптеры micro:bit Breakout (3 шт.) для монтажа micro::bit на макетную плату;
стабилизаторы напряжения на базе AMS1117 или MP2315 для питания micro::bit напряжением 3,3 В (4 шт.);
погодная станция BME-280 для измерения температуры, давления и влажности (2 шт.);
измеритель освещенности GY-30;
OLED дисплей с интерфейсом I2C (2 шт.);
радиомодуль LoRa c антенной (4 шт.):
микроконтроллер Raspberry Pi 3 Model B+ или Raspberry Pi 4 для шлюза;
корпус и блок питания для Raspberry Pi;
карта памяти SD для установки ОС Raspberry Pi OS Lite;
переходник для подключения карты памяти SD к USB-порту компьютера;
макетная плата (4 шт.) с соединительными проводами
Микроконтроллеры, макетные платы, переходники, провода, различные модули и блоки питания можно приобрести на сайтах Aliexpress, Onpad, Amperka, Chipdip, 3DIY, Amperkot, Вольтик и в других аналогичных магазинах.
Микроконтроллер micro::bit
Для каждого узла нашей системы, где мы будем получать данные, потребуется микроконтроллер micro::bit версии 1.5 или 2.0 (рис. 2).
Чтобы установить micro::bit на макетную плату, нужно будет приобрести адаптер micro:bit Breakout (рис. 3).
На плате адаптера все контакты обозначены, что облегчает подключение.
Микроконтроллер Raspberry Pi
Нам подойдет Raspberry Pi 3 Model B+ или Raspberry Pi 4. Для установки ОС Raspberry Pi OS Lite будет нужна карта памяти SD емкостью от 4 Гбайт и переходник, с помощью которого эту карту можно будет подключить к USB-порту вашего компьютера.
Учтите, что для Raspberry Pi 4 нужен специальный блок питания, созданный именно для этой версии микроконтроллера. Также рекомендуем приобрести корпус с вентилятором. И еще нужно чтобы выбранный корпус допускал подключение проводов к порту GPIO Raspberry Pi.
Погодная станция BME-280
На плате micro:bit уже имеется измеритель температуры, однако он находится внутри процессора и измеряет температуру самого процессора, а не окружающей среды.
Для измерения температуры, давления, влажности и температуры точки росы мы используем погодную станцию BME-280 (рис. 4).
Контакт питания BME-280, обозначенный как VCC, нужно подключить к контакту 3V3 микроконтроллера micro::bit, а вывод GND — к одноименному выводу micro::bit, то есть к земле.
В нашей системе сбора данных мы будем подключать внешние устройства к микроконтроллеру через шину I2C. При этом контакты SCL (синхронизация) и SDA (данные) погодной станции нужно подключить к контактам P19 и P20 платы micro:bit, соответственно. Заметим, что BME-280 использует адрес 0x76 на шине I2C.
Что касается контактов SCB и SDD устройства BME280, то они позволяют работать с помощью протокола SPI. Оставьте их свободными.
Измеритель освещенности BH1750 FVI GY-30
Хотя на плате micro::bit есть встроенный измеритель уровня освещенности, для более точных измерений используем модуль BH1750 FVI GY-30 (рис. 5).
Этот датчик (люксметр) возвращает измеренное значение в люксах.
Выводы GY-30, обозначенные как GND и VCC, нужно подключить к земле GND и питанию 3V3 контроллера micro::bit, соответственно.
Вывод SCL подключите к контакту P19, а вывод SDA — к контакту P20 микроконтроллера micro:bit.
Контакт ADD устройства GY-30 задает адрес устройства на шине I2C. При заземлении адрес будет равен 0x23. Если же его подключить к контакту питания micro:bit или не подключить вовсе, адрес будет равен 0x5C.
OLED-дисплей SSD1306
На плате контроллера micro:bit есть светодиодный экран из 25 светодиодов, который можно использовать для отображения графической, цифровой и текстовой информации.
Но для отладки и локального отображения чисел и текстовых строк на узлах нашей системы больше подойдет OLED дисплей SSD1306 с интерфейсом I2C и разрешением 128x64 (рис. 6).
На вывод VCC подайте 3,3 В, а вывод GND подключите к земле. Контакт SDA монитора подключите к контакту P20 micro:bit, а контакт SDC — к контакту P19.
Электропитание
Для питания узлов системы, собранных на базе micro::bit, мы будем использовать батареи или аккумуляторы напряжением от 4,5 В до 9 В. С помощью модуля стабилизатора напряжения на базе AMS1117 или MP2315 (рис. 7) это напряжение должно быть понижено до 3,3 В.
Преобразователь MP2315 позволяет устанавливать фиксированные значения выходного напряжения при помощи перемычек, расположенных на обратной стороне платы (рис. 7).
Для нашего применения задайте выходное напряжение, равное 3,3 В. При этом входное напряжение должно находиться в пределах от 4,5 В до 24 В.
Упомянутые модули легко найти в интернете по фразам «модуль стабилизатора напряжения на базе AMS1117» и «понижающий DC-DC преобразователь на базе MP2315».
Модуль AMS1117 можно приобрести на этом сайте, а модуль MP2315 имеется в продаже здесь.
Входное напряжение от батареи на 4,5-9 В нужно подавать на контакты преобразователей, обозначенные как VIN+. При этом выходное стабилизированное напряжение нужно снимать с вывода, обозначенного как VOUT+ или VO+. Земля подключается к выводам GND.
Собирая устройство, перед подключением стабилизатора или преобразователя к микроконтроллерам или модулям обязательно проверьте выходное напряжение с помощью мультиметра. Оно должно быть равно 3,3 В. Ошибка в напряжении или в полярности подключения может привести к выходу микроконтроллера и модулей из строя, так что проверьте все дважды.
Радиомодули LoRa
Для нашего проекта мы используем радиомодули LoRa производства компании EBYTE.
Но как выбрать нужные модули из большого разнообразия, представленного на этом сайте?
Прежде всего, нужно ориентироваться на законодательство той страны, в которой вы будете запускать свою систему сбора данных. Лучше всего использовать безлицензионные диапазоны частот (Industrial, Scientific, Medical, ISM), выделенные для LoRa.
На момент написания статьи в России к безлицензионным диапазонам частот отнесены 433 МГц, 868 МГц, 2400 МГц и 5725 МГц. Для создания сетей интернета вещей в России часто используют диапазон частот от 864 МГц до 869 МГц при мощности передатчика до 25 мВт.
При этом выделяются поддиапазоны от 864,0 МГц до 865,0 МГц и 868,7 МГц до 869,2 МГц. В первом из этих поддиапазонов действуют дополнительные ограничения: период активной работы может составлять не более 0,1%. Кроме того, не разрешается работать вблизи аэропортов. У второго поддиапазона таких ограничений нет.
Правила использования радиочастотного спектра устанавливаются Государственной комиссией по радиочастотам (ГКРЧ). Также рекомендуем ознакомиться с этой статьей. Учтите, что законодательство постоянно изменяется.
Далее, с точки зрения удобства монтажа на макетной плате проще всего использовать модули с выводами, а не предназначенные для пайки. Кроме того, радиомодули должны работать с интерфейсом UART.
В табл. 1 перечислены подходящие радиомодули EBYTE с интерфейсом UART.
Табл. 1. Радиомодули EBYTE с интерфейсом UART
|
---|
В России можно использовать такие модули на 433 МГц и 868 МГц, например, E32-433T20D, E32-433T27D, E32-433T30D, E32-868T20D и E32-868T30D.
Все перечисленные радиомодули можно купить на Aliexpress. Просто введите название модуля в поиске и выберите предложение, подходящее по цене и другим условиям.
Для подключения в радиомодулях серии E32 предусмотрены семь контактов: M0, M1, RXD, TXD, AUX, VCC и GND, а также разъем для антенны (рис. 8).
Контакты GND и VCC подключите к земле и линии питающего напряжения от 3,3 В до 5,2 В. Учтите, что потребляемый ток может достигать 1 А при высокой мощности передатчика. В простейшем случае, при минимальной мощности передатчика, контакт VCC можно подключить к тому же стабилизатору на 3,3 В, от которого питается micro::bit. Но лучше всего установить для радиомодуля отдельный стабилизатор.
Контакты RXD и TXD предназначены, соответственно, для приема и передачи данных с помощью протокола UART. Их нужно подключить к цифровым контактам micro:bit.
Также к цифровым контактам micro:bit подключаются контакты M0, M1 и AUX. Первые два из них задают режим работы радиомодуля:
режим установки параметров (конфигурирования);
режим обычной работы;
режим сохранения мощности;
режим автоматического перехода из режима сохранения мощности в активный режим при получении данных по радиоканалу
Для изменения параметров работы модуля на выводы M0 и M1 нужно подавать с выводов micro:bit напряжение 3,3 В, что соответствует логической единице. В режиме передачи данных на эти выводы необходимо подавать нулевое напряжение.
Контакт AUX можно использовать для проверки готовности радиомодуля к получению команд и данных. Если готов, на контакте AUX будет высокий уровень напряжения, а если модуль занят выполнением какой-либо операции — нулевой.
Когда модуль занят, нужно подождать, пока текущая операция закончится, и на контакте AUX появится напряжение логической единицы.
Антенны для радиомодулей
Радиомодули нельзя включать без антенны. В табл. 2 мы привели рекомендуемые антенны для перечисленных выше радиомодулей.
Табл. 2. Рекомендуемые антенны для радиомодулей E32
|
---|
Для получения максимальной дальности связи выбирайте антенны с наибольшим усилением. У антенны должен быть интерфейс SMA-J. Документация на радиомодули, а также информация о совместимых антеннах имеется на сайте EBYTE. Откройте страницу нужного вам модуля, а затем щелкните кнопку Manual. Рекомендации по выбору антенн есть в разделе Antenna recommendation.
На рис. 9 мы показали радиомодуль с малогабаритной антенной.
Собираем стенд
Сборку стенда для отладки системы сбора данных начнем с установки шлюза на Raspberry PI для передачи результатов измерений в интернет. Далее соберем периферийные узлы на базе micro::bit.
Подготовка карты SD для установки Raspberry Pi OS Lite
Подключите к вашему настольному компьютеру или ноутбуку карту SD емкостью от 4 Гбайт. Возможно, вам потребуется переходник для подключения карты SD к порту USB.
Далее скачайте с официального сайта программу Raspberry Pi Imager и запустите ее (рис. 10).
Отформатируйте карту, выбрав в меню Operating System программы Raspberry Pi Imager строку Erase, а в меню Storage — вашу карту SD. Для запуска форматирования щелкните кнопку Write и подтвердите выполнение операции.
После завершения форматирования выберите в Operating System нужную версию ОС. Если вам на шлюзе не нужен настольный интерфейс Raspberry Pi Desktop (что скорее всего), то выберите Raspberry Pi OS (other), а затем Raspberry Pi OS Lite (32-bit).
Программа Raspberry Pi Imager скачает и запишет на карту SD выбранную ОС.
Если у вас старый Raspberry Pi, то записанная таким образом ОС может не загрузиться. В этом случае нужно скачать архивную версию ОС Raspberry Pi OS Lite (Legacy) со страницы.
Полученный файл с именем вида 2022-04-04-raspios-buster-armhf-lite.img.xz можно распаковать с помощью 7zip, а затем открыть все той же программой Raspberry Pi Imager. Далее остается только выбрать в меню Storage карту SD и щелкнуть кнопку Write.
Настройка Raspberry Pi OS Lite
Вставьте подготовленную SD карту в Raspberry Pi. Также подключите к Raspberry Pi внешний монитор через интерфейс HDMI и клавиатуру USB. Подключите к Raspberry Pi штатный блок питания и после его включения наблюдайте процесс загрузки ОС на экране монитора.
После загрузки ОС с карты SD на консоли появится приглашение для ввода логина. Подключитесь с логином «pi» и паролем «raspberry».
Чтобы работать с консолью микроконтроллера удаленно через SSH, запустите программу конфигурирования:
$ sudo raspi-config
Выберите строку Interfacing options, затем строку SSH и включите доступ через SSH, выбрав Yes. Завершите программу конфигурирования и узнайте текущий адрес IP, полученный контроллером от DHCP, командой ip a:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:65:2c:52 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.19/24 brd 192.168.0.255 scope global dynamic noprefixroute eth0
valid_lft 85784sec preferred_lft 74984sec
inet6 fe80::a72e:fcef:b025:f86d/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether b8:27:eb:30:79:07 brd ff:ff:ff:ff:ff:ff
В нашем случае это адрес 192.168.0.19. Подключитесь по этому адресу к Raspberry Pi через SSH с помощью таких программ, как PuTTY или MobaXterm с логином pi.
На следующем шаге обновите ОС:
sudo apt-get update
sudo apt-get upgrade
Теперь снова вернемся к конфигурированию микроконтроллера. Нам нужно разрешить доступ к GPIO и порту последовательной передачи данных Serial. Это необходимо для работы с радиомодулем EBYTE LoRa.
Запустите в командной строке программу raspi-config:
$ sudo raspi-config
Далее выберите строку Interface Options (рис. 11).
Появится меню конфигурирования периферийных устройств (рис. 12).
Теперь включите Serial Port, для чего выберите соответствующую строку.
На вопрос «Would you like a login shell to be accessible over serial?» нужно ответить No, а на последующий вопрос «Would you like the serial port hardware to be enabled?» ответьте Yes.
Вы должны увидеть на консоли сообщения:
The serial login shell is disabled
The serial interface is enabled
Перезагрузите ОС и убедитесь, что появилось доступное устройство serial0:
$ ls -lh /dev | grep serial
lrwxrwxrwx 1 root root 5 May 5 13:04 serial0 -> ttyS0
lrwxrwxrwx 1 root root 7 May 5 13:04 serial1 -> ttyAMA0
Так как мы будем работать с радиомодулем EBYTE LoRa из программы, составленной на Python, потребуется установить модули RPi.GPIO и serial:
$ sudo apt-get install python-serial
$ sudo apt-get install python3-rpi.gpio
Для Python версии 3 устанавливаем:
sudo apt install python3-pip
sudo pip3 install pyserial
Чтобы шлюз можно было использовать в качестве сервера, устанавливаем на нем фиксированный статический адрес IP. Для этого редактируем файл /etc/dhcpcd.conf:
$ sudo nano /etc/dhcpcd.conf
В этом файле убираем комментарии со строк, показанных ниже, указываем правильные адреса:
interface eth0
static ip_address=192.168.0.19/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8
Затем сохраняем файл и перезагружаем ОС:
$ sudo reboot
Подключаем к Raspberry Pi радиомодуль LoRa
Для того чтобы собрать узел шлюза, нам потребуется макетная плата небольшого размера, радиомодуль EBYTE LoRa и преобразователь AMS1117 (либо MP2315). На рис. 13 показан собранный узел шлюза.
Контакт порта GPIO с номером 4 нужно подключить к линии + макетной платы (красный провод), а контакт 6 — к общему проводу макетной платы (черный провод).
При этом питание будет подаваться на макетную плату с контроллера Raspberry Pi. Для питания модуля EBYTE LoRa мы понижаем напряжение питания до 3,3 В с помощью стабилизатора на базе AMS1117 или MP2315 (на рис. 13 показан MP2315).
Контакты 8 и 10 порта GPIO Raspberry Pi мы подключаем, соответственно, к контактам RxD м TxD модуля EBYTE LoRa, а контакты 13 и 15 — к контактам M1 и M0 этого модуля. Обозначения контактов есть на самом модуле EBYTE LoRa.
Чтобы посмотреть расположение и обозначение выводов Raspberry Pi, запустите в консоли утилиту pinout, входящую в состав Raspberry Pi OS (рис. 14).
Более подробную информацию о назначении выводов GPIO можно найти на сайте.
Перед включением питания Raspberry Pi тщательно проверьте все соединения. Отдельно проверьте напряжение на выходе стабилизатора AMS1117 или MP2315. Ошибки могут привести к выходу из строя микроконтроллера и радиомодуля LoRa.
Собираем периферийные узлы
Для периферийных узлов нам потребуются макетные платы стандартного размера. Установите на этих платах адаптеры micro:bit Breakout, радиомодули EBYTE LoRa, OLED-дисплей, погодную станцию BME-280, а также стабилизатор на базе AMS1117 или MP2315 (на рисунке показан AMS1117), необходимый для получения напряжения питания 3,3 В для micro::bit и радиомодуля LoRa E32. Для электропитания узла мы использовали батарею 6F22 напряжением 9 В.
Ниже на рис. 15 мы показали в сборе периферийный узел 1. Узел 2 имеет аналогичную конструкцию.
Радиомодуль E32 нужно подключить к контактам платы micro:bit. При этом контакты M0 и M1 подключите к контактам P16 и P12, соответственно. Контакты передачи данных UART, обозначенные на радиомодуле как TX и RX, подключите к контактам P2 и P8, а контакт AUX — к контакту P1 контроллера micro:bit.
Обозначения контактов micro::bit нанесены на адаптер micro:bit Breakout. Подробную информацию о назначении выводов micro::bit смотрите на сайте.
Дисплей OLED, как и погодную станцию BME-280, подключите к питанию, а также к шине I2C. При этом контакты SCL и SDA дисплея нужно подключить к контактам P19 и P20 платы micro:bit.
Периферийный узел с номером 3 помимо радиомодуля содержит только измеритель освещенности GY-30 (рис. 16). При этом радиомодуль и измеритель освещенности получают питание от контроллера micro::bit, подключенного к компьютеру через порт USB.
Разумеется, для питания вы можете использовать здесь стабилизатор на базе AMS1117 или MP2315.
Подключая GY-30, соедините его контакты GND и VCC к земле GND и питанию 3V3 контроллера micro::bit, соответственно. Вывод SCL подключите к контакту P19, а вывод SDA — к контакту P20 контроллера micro:bit.
Перед включением питания тщательно проверьте все соединения. Перед тем, как подключать выходные контакты стабилизатора AMS1117 или MP2315, убедитесь, что на их выходе напряжение равно 3,3 В. Ни в коем случае не перепутайте полярность.
На этом сделаем паузу. В следующей статье будем программировать радиомодули на узле шлюза, рассмотрим программы для периферийных узлов и создадим сайт на базе Express.
Автор: Александр Фролов.
Комментарии (11)
VT100
02.06.2022 23:19мы будем использовать батареи или аккумуляторы напряжением от 4,5 В до 9 В. С помощью модуля стабилизатора напряжения на базе AMS1117 или MP2315 (рис. 7) это напряжение должно быть понижено до 3,3 В.
Сначала — сказать о необходимости снижения энергопотребления, потом — поставить линейный стабилизатор 1117. Взаимоисключающие параграфы?
Чуть далее:При этом входное напряжение должно находиться в пределах от 4,5 В до 24 В.
Но это справедливо только для MP2315. Для 1117, максимум — 15 В. Поправьте текст, чтобы не было неоднозначности.
Крона — не лучший источник питания для питания россыпи светодиодов через 1117.
P.S. Arduino и micro::bit — не микроконтроллеры.
AlexandreFrolov
03.06.2022 10:21Крона — не лучший источник питания для питания россыпи светодиодов через 1117.
Да, разумеется, в том что касается электропитания, лучше использовать не Крону или батарейки АА, а литий-ионные аккумуляторы, например.
Если нужно получить максимальную мощность от радиомодуля E32, то имеет смысл использовать для него отдельный источник питания на 5 В с максимальным током 1 А (как написано в даташите на модуль). Однако при минимальной мощности будет достаточно 100 мА. И даже с Кроной устойчиво работает в тестовом макете.
Еще может быть интересно, что в модулях E32 есть возможность включения энергосберегающего режима, но об этом лучше рассказать отдельно, как и вообще про электропитание.
P.S. Arduino и micro::bit — не микроконтроллеры.
Строго говоря да, это микрокомпьютеры, как и Raspberry Pi, однако их очень часто называют микроконтроллерами, в интернет-магазинах, например.
tormozedison
04.06.2022 14:44«Но чем же тогда хорош micro::bit?
Прежде всего, низким порогом входа для тех, кто не владеет языками программирования. Если для Arduino нужны Arduino IDE и язык С, то для micro::bit используется графическая среда Microsoft MakeCode, доступная и детям»
Для Arduino существует несколько интерпретаторов Бейсика, а также среды для программирования на Ladder. И там, и там пороги входа ещё ниже. Так вышло, что я изучал «кенгурёнков с пылесосиками» после Бейсика, и они показались сложнее.
mmMike
Подскажите пожалуйста, а фактическая дальность в условиях города какая?
5км.. 8км - цифры конечно красивые, но как по факту
mmMike
хотя сам нашел. https://habr.com/ru/post/398229/
300м.. в городе.
Увы. Чудес не бывает.
synka
По факту около 4 км в городе. Стоковые антенны.
ximik666
А мощность какая? И частота?
synka
100 мВт, 868 МГц. Это шилд RAK811.
AlexandreFrolov
Да, тут зависит от застройки и от наличия помех, конечно. Замеры придется делать в каждой конкретной ситуации. А на открытой территории или при условии малоэтажной застройки да, будут километры.
В даташите на модуль E32-868T20D как раз говорится о дальности 3000 м на открытой местности с антенной 5 dBi на высоте 2.5 м и при скорости передачи данных по воздуху 2400 bps:
"Distance for reference: 3000 m. Test condition: clear and open area, antenna gain 5 dBi, antenna heght: 2.5 m, air data rate 2.4 kbps"
Разумеется есть модули и помощнее, E90-DTU(400SL44), например, дает дальность до 40 км за счет большой мощности (25 Вт). Но тут уже надо оформлять все необходимые документы в соответствии с законодательством.
synka
Совершенно верно, как и для любой другой радиосвязи. Это я комментирую заявление про 300м.
hobogene
Застройка очень даже может пойти в плюс. Отлично от всего отражается LoRa на 868, результаты могут приятно удивить. Но они будут непредсказуемыми, это точно, в каждой конкретной ситуации потребуется ручная работа.