Arduino и nrf24l01 в одной плате. первое знакомство

Видео. Передача данных между Ардуино

nRF24L01 один из самых популярных беспроводных модулей для интернета вещей (IoT). Модули стоят недорого, но на их основе можно организовать многоканальную защищенную связь между контроллерами Ардуино и устройствами. Один модуль способен поддерживать связь сразу с шестью приемниками или передатчиками, т.е. можно объединить сразу семь устройств в общую радиосеть на частоте 2,4 ГГц.

Выполнить передачу данных между Arduino по радиоканалу будет намного проще, если у вас плата подключена к отдельному компьютеру или ноутбуку. Тогда сделать отладку скетча будет намного проще и быстрее. До передачи данных по радиоканалу через nRF24L01+, лучше всего проверить каждый модуль скетчем для сканирования — тогда вы будете уверены в правильности подключения и работоспособности модулей.

Передача структур nrf24l01

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

Во время работы со структурами нужно внимательно рассчитать ее размер и указать PAYLOAD. Общий размер структуры будет равен сумме всех размеров составляющих ее переменных.

Основные элементы кода:

#define ADDR “mod0” //указывается адрес модуля

#define NEXT “mod1” //указывается адрес следующего модуля

boolean iamfirst=true;//начинает ли этот модуль цепочку?

#define PAYLOAD 5 //размер полезной нагрузки

Все модули в итоге будут получать одинаковый скетч, в котором различаться будут только переменные ADDR, NEXT и iamfirst.

Каналы передачи

Между собой разные протоколы либо плохо, либо совсем несовместимы. Под каждый
из них выпускается своя разновидность датчиков, устройств и контроллеров. 

То есть для автоматизации жилья производится множество датчиков и устройств, но все они поделены на «семейства», внутри которых общение идет на своем «языке». Так что, если решили самостоятельно установить умный дом, прежде всего нужно разобраться с протоколом передачи данных. Это определит возможности системы не только на настоящий момент, но и на будущее — обеспечив возможность добавления тех или иных устройств в систему.

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

Так совместными
усилиями Ericsson, IBM, Intel, Toshiba и
Nokia
был
создана и продвигается технология Bluetooth

Крупные производители часто объединятся в ассоциации
для создания и развития новых коммуникационных протоколов. Так совместными
усилиями Ericsson, IBM, Intel, Toshiba и
Nokia
был
создана и продвигается технология Bluetooth.

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

Подключение nRF24L01 к Arduino

Существует несколько библиотек Arduino для работы с радиомодулями nRF24L01. От выбранной библиотеки может зависеть способ подключения модуля к Ардуине. Наиболее популярные библиотеки — RF24 и Mirf.

Я предпочитаю RF24 (так как с ней у меня не возникло проблем). Скачать библиотеку можно здесь:

В этом случае схема подключения следующая (показано на примере Arduino Nano; но для UNO тоже самое)

* Замечания. Возможные проблемы *

1) Большинство проблем происходит из-за шума на источнике 3.3V, что расположен на плате. Решение следующее: нужно припаять кондесаторы на радиомодуль между контактами GND и 3.3V. Я использую электролитический конденсатор емкостью 2.2 мкФ.

2) Пин 8 IRQ обычно не используется, хотя некоторые библиотеки его используют.

3) Рекомендуется запитывать модуль от 3.3 V (как показано на рисунке), хотя от 5V они тоже работают без проблем (поддерживается совместимость по питанию).

Выводы CE и CSN модуля могут подключаться и к другим выводам ардуины. Это указывается в программе при вызове конструктора класса RF24. В нашем случае будем использовать пины D9 и D10 .

Объединение нескольких плат Arduino в единую сеть

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

Возникает вопрос — каким образом связать их воедино, чтобы можно было передавать служебную информацию (команды) или данные, либо получать статус/данные с каждой из плат в некий единый центр?

Существует несколько шин(протоколов), которые можно реализовать на платах Arduino:

Все платы Arduino имеют, как минимум, один последовательный порт (UART или USART): Serial. Он связан с цифровыми выводами 0(RX) и 1(TX), а также используется для связи с ПК через USB. I2C или IIC (ай-ту-си, Inter-Integrated Circuit)— последовательная асимметричная шина. Использует две двунаправленные линии связи, связанные с выводами SDA и SCL. SPI ( Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, шина SPI) — последовательный синхронный стандарт передачи данных в режиме полного дуплекса, предназначенный для обеспечения простого и недорогого высокоскоростного сопряжения микроконтроллеров и периферии. SPI также иногда называют четырёхпроводным (four-wire) интерфейсом.

Рассмотрим подробней перечисленные решения, приведем примеры, дадим комментарии, начнем с более нового решения, с шины I2C.

Обмен данными с компьютером

У всех плат Arduino есть возможность обмена информацией с компьютером. Обмен происходит по USB-кабелю — никаких дополнительных «плюшек» не требуется. Нам нужен класс , который содержит все необходимые функции. Перед работой с классом необходимо инициализировать последовательный порт, указав при этом скорость передачи данных (по умолчанию она равна 9600). Для отправки текстовых данных в классе существуют небезызвестные методы и . Рассмотрим следующий скетч:

В Arduino IDE есть Монитор порта. Запустить его можно через Инструменты→Монитор порта. После его открытия убедитесь, что Монитор работает на той же скорости, которую вы указали при инициализации последовательного порта в скетче. Это можно сделать в нижней панели Монитора. Если всё правильно настроено, то ежесекундно в Мониторе должна появляться новая строка «». Обмен данными с компьютером можно использовать для отладки вашего устройства.

Информацию на стороне компьютера можно не только получать, но и отправлять. Для этого рассмотрим следующий скетч:

Прошиваем микроконтроллер и возвращаемся в Монитор порта. Вводим в верхнее поле 1 и нажимаем Отправить. После этого на плате должен загореться светодиод. Выключаем светодиод, отправив с Монитора . Если же отправить символ , в ответ мы должны получить строку «».

Технические параметры

На модуле расположена основная микросхема nRF24L01+, рядом установлен кварцевый резонатор, антенна и электрическая обвязка, программное обеспечение микросхемы nRF зашивают на производстве. Связь осуществляется в двунаправленном режиме по интерфейсе SPI (Serial Peripheral Interface), для этого предусмотрен 8 контактный разъем (шаг 2.54 мм).

Модуль автоматически формирует и отправляет пакеты, пользователю доступны только дополнительные настройки, такие как скорость передачи, отправка и принятие данных, мощность передатчика и так далее. Каждому модулю присваивается уникальный адрес в пределах сети, что позволяет организовать большую сеть, для обмена данными между датчиками температуры, давления, а так же организовать обмен командами в системе умный дом. Принципиальную схему NRF24L01 с минимальной обвязкой можно посмотреть на фото ниже, так же кому интересно на официальном сайте, можно скачать полную документацию с Gerber файлами, прошивку, программы и т.д.

NRF24L01 — Arduino

Радиомодули nRF24L01+ позволяют передавать данные на частоте 2,4ГГц.

Общие характеристики для всех модулей:

Напряжение питания — от 1,9 до 3,6v, рекомендуемое 3,3v . Входы толерантны к напряжению до 5v, то есть можно подключать к микроконтроллеру, работающему от 5v. Взаимодействует с микроконтроллером по шине SPI. Возможные скорости обмена данными — 250kbps, 1Mbps и 2Mbps. Количество каналов — 126, с шагом 1мгц. Если установлена скорость передачи 2MBPS, то используется ширина двух каналов. Энергопотребление около 0,9мкА в режиме power-down, до 11,3мА при передаче, и до 13,5мА при приёме.

Стоимость колеблется от 50 до 200р.

Версии модулей

Дальность до 100м на открытом пространстве и до 30м в помещении (дальность указана для минимальной скорости передачи данных — 250kbps). Размер 29мм на 15мм.

Версия мини. Наследует характеристики предыдущего модуля. Размер 18мм на 12мм.

С внешней антенной. Дальность до 200м на открытом пространстве и до 50м в помещении.

С внешней антенной и усилителем. Дальность до 1000м на открытом пространстве. Размер 45мм на 16мм.

Для модулей кроме мини, существует «переходник» со стабилизатором на 3.3v.

Так же стоит отметить существование модуля nRF24LE1, способного работать автономно (без ардуины). Однако для работы с этим модулем необходим программатор и соответствующие навыки.

Подключение к ардуине

Arduino Nano, UNO

SCK — D13 MOSI — D11 MISO — D12 CSN — D10 CE/SS — D9

SCK — D52 MOSI — D51 MISO — D50 CSN — D53 CE/SS — D49

Для СЕ и CSN можно использовать любые пины (меняется в скетче RF24 radio(9,10);).

Для улучшения качества связи, рекомендуется припаять конденсатор

100мкф между плюсом и минусом модуля.

Программирование

Итак, нам понадобится библиотека RF24, две ардуины, два модуля и один светодиод.

Первая ардуина будет по очереди отправлять два числа — 255 и 155:

Вторая ардуина будет принимать числа (255 и 155) и включать/выключать светодиод подключенный к D6:

Первая ардуина будет посылать значения температуры и влажности второй ардуине. Потребуется библиотека stDHT.

Здесь показаны простые примеры, «чтоб заработало», а вот для вдумчивого изучения рекомендую обратится к примерам из библиотеки.

Вступайте в Telegram-группу Arduino

Скетч для передатчика

В нашем эксперименте мы просто отправим традиционное сообщение «Hello World» от передатчика к приемнику.

Вот скетч, который мы будем использовать для нашего передатчика:

Код начинается с подключения библиотек. Библиотека SPI.h управляет связью SPI, а nRF24L01.h и RF24.h модулем:

Далее нам нужно создать объект RF24. Объект принимает два номера контактов в качестве параметров, к которым подключены сигналы CE и CSN:

Затем нам нужно создать байтовый массив, который будет представлять адрес канала, через который будут связываться два модуля nRF24L01 +:

Мы можем изменить значение этого адреса на любую 5-буквенную строку, например «node1». Адрес необходим, если у вас есть несколько модулей в сети. Благодаря адресу вы можете выбрать конкретный модуль, с которым вы хотите общаться, поэтому в нашем случае у нас будет один и тот же адрес как для передатчика, так и для приемника.

Далее в функции setup() нам нужно инициализировать радиообъект, используя radio.begin() и используя radio.openWritingPipe() функцию, мы устанавливаем адрес передатчика:

Наконец, мы будем использовать radio.stopListening() функцию, которая устанавливает модуль в качестве передатчика:

В разделе loop () мы создаем массив символов, которым мы назначаем сообщение «Hello World». Используя radio.write() функцию, мы отправим это сообщение приемнику.

Первый аргумент здесь — это сообщение, которое мы хотим отправить. Второй аргумент — это количество байтов, присутствующих в этом сообщении:

С помощью этого метода вы можете отправлять до 32 байтов за раз. Потому что это максимальный размер одного пакета, который может обработать nRF24L01 +. Если вам нужно подтверждение, что получатель получил данные, функция radio.write() возвращает bool значение. Если он возвращает TRUE, данные достигли получателя. Если он возвращает FALSE, данные были потеряны.

Код Arduino – выполнение звонка

Теперь давайте запрограммируем нашу Arduino на выполнение вызова. Этот скетч очень полезен, если вы хотите, чтобы ваша Arduino совершила аварийный вызов (SOS) в случае чрезвычайной ситуации, например, при превышении температуры или при проникновении кого-либо в ваш дом. Вы поняли идею!

Прежде чем попробовать скетч, вам нужно ввести номер телефона. Найдите строку ZZxxxxxxxxxx и замените ZZ кодом страны, а xxxxxxxxxx – 10-значным номером телефона.

Для осуществления вызова используются следующие AT команды:

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

– повесить трубку

На скриншоте ниже показан звонок с платы расширения SIM900 GSM/GPRS Shield.

Рисунок 23 – AT команды SIM900 GSM Shield для звонка на ArduinoРисунок 24 – Прием звонка от SIM900 GSM Shield

Прошивка и память Arduino v3 0 CH340G

Стандартный вариант платы Arduino Nano, работающий на микросхеме ATmega328P, можно прошить исключительно через программатор с SPI-интерфейсом.

При необходимости такую Nano-модель можно прошить и через SPI-интерфейс.

Чтобы загружать прошивки через mini-USB, потребуется:

  1. Подсоединить плату к ПК через USB. Система определит устройство как USB 2.0 SERIAL.
  2. Скачать и установить драйвер CH340G.

Как только драйвер будет установлен, система определит плату корректно и ее можно будет прошить через программатор. На плате загорится светодиод ON, а светодиод LED будет мигать.

Виды памяти

ATmega328P поддерживает 3 вида памяти:

  1. Flash. Она выступает в качестве постоянного запоминающего устройства.
  2. ОЗУ.
  3. EEPROM. Эта память также является постоянным запоминающим устройством, но ее можно перепрограммировать.

В микроконтроллере от Atmel 32 Кб Flash-памяти (свободно 30 Кб, т. к. 2 Кб занято загрузчиком), 2 Кб ОЗУ и 1 Кб EEPROM.

Описание радиомодуля nRF24L01+

Радиомодуль nRF24L01+, как я уже писал, стоит достаточно дешево – всего 50 руб, то есть за 100 руб можно купить два передатчика, между которыми и будет осуществляться беспроводная передача данных. Модуль может работать как передатчик и как приемник, отличия будут только в прошивке. Дальность действия составляет 100 метров на открытой местности и 30 метров в помещении. Из минусов стоит отметить, что nRF24L01+ работает на частоте 2,4 ГГц, которую используют Wi-Fi и Bluetooth, они могут заглушать сигнал передатчика. Еще одним небольшим минусом является то, что nRF24L01+ питается от напряжения 3.3в, поэтому подключать его нужно аккуратно – 5в могут испортить модуль. Большинство плат arduino имеет пины с напряжением 3.3в, поэтому иногда проблема решается просто. Но бывают и другие случаи, например, arduino pro mini не всегда оснащена пином с нужным питанием, в таком случае придется использовать преобразователь напряжения. Также к сложностям можно отнести то, что при запуске, nRF24L01+ требуется довольно большой ток и многие китайские копии arduino не могут его выдавать. Чтобы решить такую проблему достаточно припаять к радиомодулю(к пинам питания) конденсатор емкостью от 10 мфд. Поскольку я пользуюсь arduino, которые бережно собирают в Китае, то столкнувшись с проблемой, немного модернизировал nRF24L01+, получилось вот так:

Описание пинов/Распиновка Arduino Nano

Каждый из 14 цифровых выводов Nano, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

  • Последовательная шина: 0 (RX) и 1 (TX). Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины FTDI USB-to-TTL.
  • Внешнее прерывание: 2 и 3. Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachInterrupt().
  • ШИМ: 3, 5, 6, 9, 10, и 11. Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Посредством данных выводов осуществляется связь SPI, которая, хотя и поддерживается аппаратной частью, не включена в язык Arduino.
  • LED: 13. Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит.

На платформе Nano установлены 8 аналоговых входов, каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел посредством функции analogReference(). Некоторые выводы имеют дополнительные функции:

I2C: A4 (SDA) и A5 (SCL). Посредством выводов осуществляется связь I2C (TWI). Для создания используется библиотека Wire.

Дополнительная пара выводов платформы:

  • AREF. Опорное напряжение для аналоговых входов. Используется с функцией analogReference().
  • Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

nRF24L01 + Автоматическая обработка пакетов

Теперь давайте обсудим три сценария, чтобы лучше понять, как два модуля nRF24L01 + взаимодействуют друг с другом.

Транзакция с подтверждением и прерыванием

Это пример положительного сценария. Здесь передатчик начинает связь, отправляя пакет данных получателю. Как только весь пакет передан, он ожидает (около 130 мкс) подтверждения приема пакета (ACK).

Когда приемник получает пакет, он отправляет пакет ACK передатчику. При получении пакета ACK передатчик выдает сигнал прерывания (IRQ), чтобы указать, что  готовы новые данные.

Транзакция с потерянным пакетом данных

Это негативный сценарий, когда необходима повторная передача из-за потери переданного пакета. После того, как пакет передан, передатчик ожидает получения пакета ACK.

Если передатчик не получает его в течение времени автоматической повторной передачи (ARD: Auto-Retransmit-Delay), пакет передается повторно. Когда повторно переданный пакет принят приемником, передается пакет ACK, который, в свою очередь, генерирует прерывание в передатчике.

Транзакция с потерянным подтверждением

Это опять-таки негативный сценарий, когда требуется повторная передача из-за потери пакета ACK. Здесь, даже если приемник получает пакет с первого раза, то из-за потери пакета ACK, передатчик считает, что приемник вообще не получил пакет.

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

Вся эта обработка пакетов выполняется автоматически чипом nRF24L01 + без участия микроконтроллера.

Описание модуля NRF24L01

Нельзя создать по-настоящему интересный проект, не дав возможность создания коммуникаций между различными элементами системы

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

NRF24l01 – это высокоинтегрированная микросхема с пониженным потреблением энергии (ULP) 2Мбит/с для диапазона 2,4 ГГц. При помощи модуля можно связать несколько устройств для передачи данных по радиоканалу. Можно объединить до семи приборов в одну общую радиосеть на частоте 2,4 ГГц, один из модулей будет выступать в роли ведущего, остальные – ведомые. Радиомодуль NRF24l01 стоит дешево, поэтому его можно встретить в самых разных проектах – от умного дома до различных самодельных роботов.

Характеристики nrf24l01

  • Низкие затраты энергии;
  • Наличие усовершенствованного ускорителя аппаратного протокола ShockBurst;
  • Операционная система ISM;
  • Скорость передачи данных 250 Кбит/с, 1 Мбит/с и 2 Мбит/с;
  • Полная совместимость со всеми стандартными сериями nRF24L Nordic, а также сериями nRF24E и nRF240;
  • Напряжение питания 3,3В;
  • Рабочие температуры от -40С до 85С, температуры хранения от -40С до 125С;
  • Дальность связи до 100 м.

Основой модуля служит nRF24L01+ производства компании Nordic Semiconductor. На микросхеме расположены все необходимые элементы и вилка разъема. По интерфейсу SPI можно произвести настройку протокола, установить выходную мощность и наладить каналы обмена данных.

Сфера применения модуля nrf24l01

Одним из самых главных компонентов проектов IoT являются средства коммуникации. nrf24l01 можно с успехом применять в следующих областях:

  • Мобильная электроника;
  • Компьютеры;
  • Автоматизированные системы;
  • Различные элементы «умного дома» – сигнализация, регулирование температуры и другие функции;
  • Игры;
  • Бытовая электроника.

В плату nRF24L01+ входят синтезатор частот, демодулятор, усилители и другие составляющие. Рабочая частота модуля определяется номером канала, диапазон частот, в котором происходит связь, 2,4 – 2,483 ГГц. Каналы располагаются через 1 МГц, то есть нулевому соответствует частота 2,4ГГц, каналу 83 – 2,483 ГГц.

Модуль имеет 4 рабочих режима – выключение (Power Down), спящий режим (Standby), прием данных(RX mode), передача данных (TX Mode). В режиме приема данных RX потребление тока выше, чем в режиме передачи данных TX.

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

5. Превратите свой Arduino в сервер

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

Для этого невероятно подробного учебника с сайта startelectronics.org необходим щит Ethernet, чтобы подключить плату к домашней сети. Вот видео этого в действии:

Не получил сетевой щит? Не бойтесь, того же можно достичь с помощью щита Wi-Fi или платы, подключенной к Wi-Fi, например NodeMCU.

Если node.js — это ваш джем, то для вас может иметь смысл взглянуть на проект arduino-android github . Приложение Android снова поставляется с исходным кодом, так что вы можете получить под капотом и возиться с душой. Это довольно просто, но есть все для реализации сервера node.js на плате Arduino по вашему выбору.

Если вам больше нравится Python , у пользователя Instructables metanurb есть учебник по модулю Bluetooth .

Термины

Программный код для Arduino принято называть скетчами (англ. sketches). У скетчей есть два основных метода: и . Первый метод автоматически вызывается после включения/сброса микроконтроллера. В нём происходит инициализация портов и различных модулей, систем. Метод вызывается в бесконечном цикле на протяжении всей работы микроконтроллера.

Порты — неотъемлемая часть любого микроконтроллера. Через них происходит взаимодействие микроконтроллера с внешними устройствами. С программной стороны порты называются пинами. Любой пин может работать в режиме входа (для дальнейшего считывания напряжения с него) или в режиме выхода (для дальнейшей установки напряжения на нём).

Любой пин работает с двумя логическими состояниями: и , что эквивалентно логическому нулю и единице соответственно. У некоторых портов есть встроенный АЦП, что позволяет считывать аналоговый сигнал со входа (например, значение переменного резистора). Также некоторые пины могут работать в режиме ШИМ (англ. PWM), что позволяет устанавливать аналоговое напряжение на выходе. Обычно функциональные возможности пина указываются на маркировке самой платы.

Умный дом и Zigbee

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

До того как на рынок умного дома вышли компании Apple, Google и Amazon, некоторое время был популярен стандарт Z-Wave. Этот протокол был конкурентом Zigbee, но он закрытый, и производители устройств для умного дома должны покупать модуль Z-Wave у европейского производителя. Zigbee же – открытый стандарт, и любая компания может производить свои модули согласно открытой спецификации. Поэтому Zigbee-устройства дешевле, чем приборы с Z-Wave, и сейчас уже однозначно можно сказать, что протокол Zigbee победил и стал де-факто стандартом для систем умного дома. ZigBee используют все крупные компании на рынке умного дома: Amazon, Philips, Samsung, Xiaomi, LG, Logitech, IKEA и многие другие.

Умные лампочки Икея Тродфри работают через Зигби

В продаже есть все электроприборы с Zigbee, какие только можно себе представить: лампочки, выключатели, розетки; датчики движения, утечки и дыма, открытия дверей и окон; кондиционеры, термостаты, камеры и многое другое. Но нужно отметить, что само наличие Zigbee-модуля не делает устройства от разных производителей совместимыми между собой (также, как в устройствах для умного дома с Wi-Fi модулем). Например, зигби-лампочка Икея Тродфри не будет работать с зигби-хабом Xiaomi Smart Home Gateway. Но некоторые компании добавляют поддержку конкретных устройств от других производителей, например те же лампочки от Икеи будут работать совместно с мостом Philips Hue Bridge.

Поэтому, выбирая зигби-устройства для умного дома, нужно выбирать качественного производителя, которому вы доверяете, ведь подключать к его мосту вы сможете только его продукцию. Также нужно убедиться в том, что мост этого бренда поддерживает интеграцию с современными платформами: Apple HomeKit, Google Ассистент или Alexa (об этом ).

NRF24L01+ Multiceiver

NRF24L01 + предоставляет функцию под названием Multiceiver. MultiCeiver — это аббревиатура от «Multiple Transmitters Single Receiver», что переводится как «Много Передатчиков Один Приёмник».

Здесь каждый радиочастотный канал логически разделен на 6 параллельных каналов данных, называемых Data Pipes.  Другими словами, канал данных является логическим каналом в физическом радиоканале. Каждый канал данных имеет свой физический адрес (адрес канала данных) и может быть настроен. Это можно проиллюстрировать следующим образом:

nRF24L01 + Multiceiver — несколько передатчиков, один приемник

Чтобы упростить вышеприведенную диаграмму, представьте, что основной приемник действует как концентратор-приемник, собирающий информацию от 6 различных узлов передатчика одновременно. Приемник-концентратор может прекратить прослушивание в любое время и переключиться в режим передачи. Но это может быть сделано только для одного канала / узла за один раз.

Расширенный протокол ShockBurst

Модуль приемопередатчика nRF24L01  использует структуру пакета, известную как Enhanced ShockBurst. Эта простая структура пакета разбита на 5 различных полей, что показано ниже:

Первоначальная структура ShockBurst состояла только из полей Preamble, Address, Payload и Cyclic Redundancy Check (CRC). Усовершенствованный ShockBurst обеспечил более широкие функциональные возможности для более совершенной связи с использованием недавно представленного поля управления пакетами (PCF).

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

Во-вторых, она предоставляет каждому отправленному пакету идентификатор пакета, который позволяет принимающему устройству определять, является ли сообщение новым или было ли оно повторно передано (и, таким образом, может быть проигнорировано).

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

Как настроить и подключить беспроводное сетевое соединение

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

Если же необходимо настроить Wi-Fi соединения, то рекомендуется следовать определенным инструкциям. Например, многие задают вопрос, как настроить беспроводное подключение на ноутбуке с ОС Windows 7. На самом деле сделать это очень просто. Для этого достаточно выполнить определенную последовательность действий:

  1. Подключить роутер к кабелю, чтобы появилась точка доступа.
  2. Настроить модем. Для дополнительной защиты, помимо логина, установить пароль сети.
  3. Включить ноутбук и немного подождать. Необходимо время на то, чтобы роутер смог его обнаружить.
  4. На компьютере в списке беспроводных сетей выбрать свою, ввести логин и пароль. Если все сделано правильно, то ПК подключится к Интернету.

Наглядно процесс подключения выглядит так

Обратите внимание! Иногда могут возникнуть проблемы подключения. Чаще всего исправить их просто — нужно скачать необходимые драйверы или обновить существующие

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

3. Блинк

Мы уже рассматривали создание проектов с помощью Blynk и обнаружили, что это отличный сервис. Его гибкость и простота делают его интуитивно понятным способом запуска событий на вашей доске. Blynk требует подключения к Интернету, так как он использует свой собственный сервер. Вы можете использовать Wi-Fi или мобильные данные для доступа к Blynk , что делает его идеальным для использования на смартфоне.

Одной из сильных сторон Blynk является ряд способов подключения к устройству. Наряду с поддержкой практически всех плат разработки, вы можете подключиться к серверу по беспроводной сети, используя Ethernet, или даже использовать подключение к компьютеру через USB. Сервис хорошо документирован, а его интуитивно понятное приложение упрощает создание пользовательских элементов управления для вашего проекта. Библиотека Blynk для Arduino IDE отвечает за все коммуникации.

Если вы тот человек, который хочет запустить свою кофемашину со своего телефона до того, как они встают утром, то этот для вас!

Blynk — не единственная служба в этой области, также стоит обратить внимание на сильно настраиваемый Thinger.io и практически безграничный, но ужасно сложный OpenHAB. Из всех трех Blynk, безусловно, быстрее всего запускается и работает, хотя изучает OpenHAB — отличная идея в долгосрочной перспективе

Wi-Fi

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

Но в силу технических особенностей Wi-Fi плохо
подходит для объединения нескольких отдельных устройств в единое целое.
Протокол используется для децентрализованных систем, которые работают без
подключения к общему контроллеру. С помощью этого стандарта связи удобно
управлять устройствами с помощью пульта или смартфона.

Большой минус Wi-Fi — высокий уровень
энергопотребления, что часто критично для автоматизированных домашних систем,
часть элементов которых могут работать от батареек.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Семинар по технике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: