temperature remote sensor 433 mhz что это
Термометр на Raspberry pi с беспроводным датчиком на rf 433 и МК attiny85
Предисловие
На Хабре и не только есть много интересно про мини-компьютер Raspberry Pi. Я решил обзавестись в своем доме такой игрушкой. Прошу не критиковать выбор именно этой платформы. Выбор пал только в силу довольно обширной документации и множества различных примеров применения данного мини-компьютера.
Решено было начать с датчиков температуры. Под рукой оказалось пару датчиков (ds18b20, ds1822). Обилие статей по подключению этих датчиков не потребовало много времени, для того что б их присоединить и получить значения температуры. Пришлось приобрести датчик DHT22, который позволял фиксировать не только температуру, но и влажность. На малине был поднят lighttpd + php + mysql. Данные с датчиков теперь с некоторой периодичностью записывались в БД. Из статьи «Интернет термометр или телеметрия загородного дома» была взята идея построения графиков в Highcharts. Не обладая особыми навыками программиста, пришлось потратить пару свободных вечеров. В результате можно было зайти на локальную страничку и посмотреть на текущую температуру на улице, в квартире, а так же динамику изменения температуры за последние n дней.
Некоторое время за окном висело два датчика DHT22 и ds18b20. Показания температуры этих датчиков отличались обычно на несколько десятых. Целью не ставилось делать измерения с очень большой точностью и такие отличия в показаниях меня вполне устраивали.
Все в той же статье было подсмотрены ссылки на проекты openweathermap.com и narodmon.ru. Таким образом, данные c датчика температуры и давления (DHT22) начал отправлять в эти два сервиса.
Я не сильно понял сервис Openweathermap. Народный мониторинг мне понравился больше. На карте можно наглядно сравнить свои показания с данными других датчиков в твоем же городе. Есть приложения для телефонов на Android и iOS.
Всё, конечно, замечательно, но проблемы как всегда кроются в деталях. Окна моей квартиры смотрят на юг. И датчики часто оказываются на солнце. Когда на улице минусовая температура, датчики на солнечной стороне могли показывать до +10. При этом датчики не находятся под прямыми солнечными лучами (спрятаны за блок кондиционера). Тянуть провода через коридор на северную сторону не сильно хотелось. Поэтому было принято решение осваивать беспроводные технологии.
Постановка задачи
Для приема и передачи был выбран RF 433. Опять же, поскольку являюсь новичком в мире электроники и программирования, решил не тратить много денег и оставить свой выбор на наиболее бюджетном варианте. Стоимость приемника + передатчик составляет около 3$.
Нужно было выбрать микроконтроллер. На Instructables есть отличная статья о том, как программировать микроконтроллер Attiny85 при помощи raspberry pi. Перевода данной статьи или чего-то похожего на Хабре не встречал. Так что если будет проявлен интерес, можно будет сделать перевод.
Выбор микроконтроллера был сделан. Была приобретена опытная пара на рынке по цене 2-3$ за штуку. Для простоты начать решил с ds18b20.
Алгоритм работы следующий: МК считывает значение температуры с датчика, считывается напряжение (питать будем от батареек), вычисляется контрольная сумма, отправляются эти данные несколько раз, после чего отправляем всю эту систему в сон на несколько минут, чтобы экономить питание.
rf 433 (приемник) + Raspberry pi слушает эфир в ожидании данных.
Выполнение задачи
Сборка и подключение
На макетной плате собираем схему для программирования МК:
Схема подключения взята с сайта Instructables. Резисторы можно взять немного другие 1-5КОм, какие есть под рукой. Больше чем 4,7 КОм я лично не пробовал. Там же на макетной плате подключаем датчик и передатчик к аттини так, как показано на схеме:
Таким образом, мы получили подключенный МК для программирования при помощи Raspberry Pi и подключенные датчик и RF433 передатчик. Осталось подключить приемник к rasspbery pi. Моя схема подключения:
Пины на схемах подключения к raspberry pi согласно их нумерации в библиотеке WiringPI для работы с GPIO, их физическое расположение на плате в скобках.
И вот так это все выглядит на макетной плате:
С железом разобрались, перейдем к софтверной части.
Устанавливаем необходимый софт и программируем Attiny85
Как устанавливать Raspbian не будем рассматривать. В raspi-config включаем SPI.
Теперь нам надо скачать и установить AVRDude (AVR Downloader-Uploader) — кросплатформенная свободная консольная программа, предназначенная для прошивки микроконтроллеров фирмы Atmel серии AVR.
Для работы с GPIO необходимо скачать и установить WiringPi:
Проверяем все ли мы правильно сделали:
Если мы все правильно сделали, должны получить вот такой результат:
На этом этапе подготовительные работы закончились.
Найти рабочий код на Си, который бы выполнял все поставленные задачи, мне не удалось. Пришлось собирать по кусочкам из различных репозиториев (и не только).
Для считывания температуры использовал этот репозиторий. Для определение напряжения использовал этот репозиторий.
Для отправки сигнала использовал репозиторий.
То, что у меня получилось выложил на гитхаб. Нужный нам код находится blinky.c, 1wire.c, 1wire.h, manchester.c, manchester.h.
Осталось все собрать и запрограммировать нашу Аттиньку 85.
Создаем или копируем Makefile там же, где находятся файлы нашего проекта.
И если все хорошо и не будет никаких ошибок в коде программы, выполняем:
Расслабились и наблюдаем запись нашей программы на микроконтроллер:
Если все хорошо и ничего нам не помешало, на этом этап программирования нашего МК завершено.
По схеме выше собираем все на отдельной макетной плате уже без Rasspberry Pi и питание от батареек. У меня в наличии был корпус для трех батареек АА. Это мой первый проект и я не сильно напрягался с разводкой на плате. Вот что у меня в итоге получилось:
Теперь пришло время принимать данные температуры с передатчика.
Есть хорошая статья о расшифровке Х10 RF протокола. Там есть примеры программ для приема сигнала по RF433. Для приемника за основу был взят код из этой статьи, а именно X10RFSnifferBit.cpp. Программа сидит и ждет сигнал определенной длительности, а точнее, несколько последовательных сигналов, так называемый lock. После чего начинается прием необходимого количества бит.
Изменяем под свои значения lock, добавляем проверку контрольной суммы и пишем полученные значения в файл. Полученную информацию записываем в файл в виде id датчика, заряда батареек, температуры и контрольной суммы.
Так выглядит мой rf433recieve.cpp, а так выглядит пример файла, в который записываем полученные данные.
В моем случае RF 433 RX подключил к GPIO 2 (13). При подключении к другому пину необходимо изменить номер GPIO в строке:
Собираем и запускаем нашу программку (Makefile). Запускать надо с правами root:
Теперь на raspberry pi мы принимаем нашу температуру и записываем в полученные данные в файл.
Заключение
Пока все это собиралось и программировалось, данные из локальной БД перенес на хостинг. По крону дергаю файл, куда мы пишем наши данные температуры, заряда батареек и отправляю данные на хостинг в БД. Потом строится график за последние несколько дней. Так выглядит результат:
Когда все было в сборе, надо было проверить дальность передачи данных в домашних условиях с различными антеннами.
На приемнике антенной выступает кусок от витой пары длинной около 17 см. Для передатчика пробовал несколько вариаций: витая пара 17 и 34 см; медная жила около 1 мм в диаметре и длинной 34 см в виде прямой и в виде спирали. Хуже всего в моих экспериментах оказалась медная жила в виде спирали, остальные антенны дали приблизительно одинаковый вариант, поэтому я решил оставить кусок витой пары 17 см. По дальности у меня получилось пробить три кирпичных стены и дистанцию около 10 м. Увеличение перегородок и дистанции приводили к тому, что приемник совсем не принимал сигнал или пытался выловить один два сигнала из lock-a.
Сейчас идет период испытаний и датчик положил на балкон (тоже на солнечную сторону). На открытом балконе датчик не прятал от солнца и явно балкон хуже проветривается, чем датчик спрятанный за корпус кондиционера в тень. Поэтому в солнечные дни беспроводной датчик выдает пики и по этим пикам можно отслеживать солнечную активность.
Что дальше? Дальше хотел попробовать связку МК Attiny85 + RF 433 TX + DHT22, но это уже совсем другая история…
Temperature remote sensor 433 mhz что это
Примеры для приемников, которые могут принять сигнал от данного датчика можно посмотреть на страничке алгоритма передачи данных. Так же полезна будет статья Интеграция в систему умного дома
Так как передатчик не имеет внешних настроек,то все настройки задаются перед компиляцией прошивки. Для удобства разработан конструктор прошивки,который находится внизу данной страницы. Данный подход упростит разработку устройств тем,кто плохо знаком с языком Си.
Конструктор сам указывает какие фьюзы необходимо прошить для работы от внутреннего генератора,в том числе при использовании внутреннего делителя на 8. Если вы хотите изменить эти настройки,то смотрите калькулятор фьюзов.
Если у Вас будет несколько передатчиков,то ключи должны быть у всех разные.
Выбор протокола:
Для троичного протокола необходима библиотека RemoteSwitch.
Аналоговый вход (АЦП):
Передатчик может передавать состояние аналогового входа (АЦП), например с фоторезистора(датчика освещенности). Для этого необходимо задать ключ,если значение ключа равно нулю, то код, отвечающий за АЦП не компилируется и не занимает памяти в микроконтроллере. Размер кода в прошивке занимает примерно 60 байт.
Аналоговый вход находится на PB2(7 нога м/к). В Attiny2313 АЦП нет.
Схема подключения:
Экономия энергии при работе от батареи:
При использовании Watchdog время обновления и отправки данных может быть только кратно 8 секундам(8,16..64..256..).В обычном же режиме без использования Watchdog время кратно 5 секундам (используется обычный _delay_ms(5000)).
К сожалению размер прошивки при использовании спящего режима увеличивается примерно на 82 байта.
Прошивка микроконтроллера:
При генерации hex файла конструктор показывает командую строку для загрузки через утилиту avrdude.
При прошивке через плату Arduino необходимо указать СОМ порт.
Оптимизация размера прошивки:
При использовании Attiny13, где всего 1024 байт, могут возникнуть трудности с размером прошивки. Некоторые комбинации настроек могут уместить все необходимые функции:
1. Двоичный протокол занимает меньше кода,чем троичный.
2. Хотя ключи можно писать шестизначные, но если датчиков мало,то ограничтесь 5 значными значениями (до 32767).
3. Включение делителя может так же уменьшить код.
4. Если беспроводной датчик не будет питаться от батареек/аккумуляторов,то в использовании спящего режима нет смысла.
Конструктор прошивки:
Здесь будет отображатся ссылка на прошивку и команды для прошивки через avrdude,а так же размер полученного кода.
Используем беспроводной выключатель на 433МГц для управления ПК
Привет, Geektimes Habr.
У меня дома скопилось несколько беспроводных выключателей на 433МГц, стало интересно, можно ли их использовать для каких-либо задач, например для управления компьютером или для интегрирования в систему «умного дома».
Эти выключатели удобны своей дешевизной и стабильной работой, выглядят они примерно так:
Как это работает, и что с ними можно сделать (гусары молчать:), подробности под катом.
Теория
Скажу сразу — как работает такой выключатель, я не знаю, хотя и примерно догадываюсь. Значит нужно будет произвести небольшой reverse engineering.
Первым делом сигнал нужно принять, для чего используем многим уже известный RTL-SDR приемник, у радиолюбителей часто называемый просто «свисток». Этот девайс ценой всего в 10$ позволяет принимать радиосигналы в диапазоне примерно от 50 до 1250МГц, для нас то что нужно. Тема старая, но если кто не читал — читайте.
Делаем первый шаг анализа — внимательно смотрим на выключатель. Обнаруживаем что сзади на корпусе у него написано «Made in China» (кто бы мог подумать?) и, что более важно, указана частота 433МГц. Теперь можно подключить SDR-приемник, запустить SDR# и убедиться, что данные действительно передаются.
Симметрия сигнала на спектре подсказывает про наличие AM-модуляции. Кстати справа виден более слабый «чужой» сигнал — их тоже можно принимать и декодировать, про них будет подробнее сказано отдельно. Впрочем, вернемся к сигналу. Записываем его в формате обычного WAV и нажимаем кнопки на пульте — для примера я нажал кнопки ON и OFF на канале «1».
Открываем звуковой файл в любом аудиоредакторе, и воспользуемся для сравнения сигналов другим профессиональным инструментом аналитиков — программой Paint. Размещаем 2 сигнала c разных кнопок один над другим, чтобы увидеть разницу:
Нетрудно видеть, что мы имеем обычную битовую последовательность, отличие в которой как раз в одном бите, соответствующем кнопке ON или OFF. Пока кнопка нажата, выключатель просто циклически повторяет эту последовательность в эфир со скоростью 20 раз в секунду. Дешево и просто, даже если одна последовательность исказится при передаче, другая будет принята.
Из этого кстати можно сделать один важный вывод — сигналы таких выключателей (речь о дешевых моделях) передаются в эфир «как есть», без какой-либо аутентификации, защиты или шифрования. Такой выключатель или беспроводную розетку с таким выключателем не стоит использовать для каких-то ответственных функций, например для включения мощных обогревателей или тем более для открытия входной двери или гаража. Дело тут даже не в хакерах (шанс что кто-то будет взламывать мой дом беспроводным способом я оцениваю меньше чем шанс падения на мой дом МКС), а в том, что сосед может случайно купить такой же выключатель, и коды у них могут совпасть (впрочем на выключателе есть возможность выбора между 4 каналами). По моему опыту использования, 2-3 раза за год выключатель таки включался «сам», то ли помеха, то ли действительно принимался далекий сигнал от такой же модели.
Разумеется, это не относится к более сложным системам, таким как Lora или Philips Hue, там с шифрованием все впорядке.
Впрочем, вернемся к нашей задаче. Можно написать декодер таких сигналов самостоятельно, но к счастью, это уже сделали до нас, в проекте называемом «rtl_433». Изначально программа была создана для Linux, Windows-версию можно скачать по адресу Linux версию можно скачать с GitHub.
Мы получили данные, осталось написать программу для их обработки.
Raspberry Pi
Первое, что интересно рассмотреть, это Raspberry Pi. Для установки rtl_433 на Raspbian распаковываем архив и выполняем следующие команды.
Вторым шагом, напишем программу которая будет получать эти данные, и в зависимости от них, выполнять нужные действия. Код на Python весьма несложный:
Чтобы запустить код, нужно сохранить его в файле (например rtl_listen.py) и запустить командой «python rtl_listen.py».
Как можно видеть, программа запускает процесс с помощью subprocess.Popen и читает из него данные. Дальше все просто, код вполне читабельный, и внести изменения будет не сложно. В данном примере, при нажатии кнопки «1» выводится сообщение print(«ON»), вместо этого можно делать что-то другое, например, активировать пин GPIO, включать реле, посылать данные на сервер и пр. Перед использованием будет необходимо заодно поменять имя transmitter_name на название той модели пульта, который будет использоваться.
Кстати, сам RTL-SDR-приемник по сравнению с Raspberry Pi выглядит так:
Windows
К сожалению, под Windows 10 вышеприведенный код не заработал. Но как подсказал поиск на github, работает асинхронное чтение данных из отдельного потока. Почему так, выяснять было лень, просто приведу под спойлером работающий код.
С этим кодом мы можем использовать любые действия в обработчике, логика такая же как и в коде на Raspberry Pi.
Пример: допустим, у нас есть компьютер, выделенный под домашний кинотеатр, и мы хотим выключать его нажатием кнопки с пульта. Заменяем код ‘print(«OFF»)’ на
Заключение
Как можно видеть, все довольно-таки просто, и есть место для экспериментов. Наконец, небольшой бонус для тех кто дочитал до сюда. На 433МГц работает большое количество разных устройств, которые rtl_433 может декодировать, можно просто оставить программу работать несколько часов, и посмотреть что «поймается». Под спойлером пример такого лога, записанного ранее:
2018-01-10 21:15:17 : Prologue sensor : 5 : 15
Channel: 1
Battery: OK
Button: 0
Temperature: 6.00 C
Humidity: 11 %
2018-01-10 21:15:28 : inFactory sensor
ID: 71
Temperature: 6.67 °C
Humidity: 99 %
2018-01-10 21:16:07 : Toyota : TPMS : 61511475 : 60e5006b : CRC
2018-01-10 21:20:33 : Prologue sensor : 5 : 15
Channel: 1
Battery: OK
Button: 0
Temperature: 6.00 C
Humidity: 11 %
: Waveman Switch Transmitter
id: A
channel: 2
button: 1
state: on
: Waveman Switch Transmitter
id: A
channel: 2
button: 1
state: on
: Waveman Switch Transmitter
id: A
channel: 2
button: 1
state: on
2018-01-10 21:21:21 : Akhan 100F14 remote keyless entry
ID (20bit): 0x41
Data (4bit): 0x4 (Mute)
: Waveman Switch Transmitter
id: A
channel: 2
button: 1
state: off
2018-01-10 21:32:31 : Ford : TPMS : 00268b1f : a34a0e : CHECKSUM
2018-01-10 21:32:32 : Ford : TPMS : 00268a5c : 9c440e : CHECKSUM
2018-01-10 21:32:37 : Ford : TPMS : 016dbfce : 99430e : CHECKSUM
2018-01-10 21:32:39 : Ford : TPMS : 002671a0 : 9c4a0e : CHECKSUM
Есть интересные данные, например давление в шинах у соседского автомобиля (TPMS, tire-pressure monitoring system), или наружняя температура +6 с чьего-то датчика. Это позволяет например, выводить наружнюю температуру, если у соседей случайно окажется совместимая с этим протоколом метеостанция.
Всем удачных экспериментов.
Disclaimer: Очевидно, что использование SDR и цифровой обработки для чтения сигналов OOK-модуляции — это по сути, стрельба из пушки по воробьям. Возможно, на aliexpress существуют готовые приемники за 1-2$, которые делают то же самое, с меньшей ценой и меньшим энергопотреблением. Если кто знает такие модели, напишите в комментариях.
Чтение данных датчика погоды BL999 с помощью Arduino
1 Описание метеодатчика BL999 и его информационного протокола
Датчик BL999 – это недорогой датчик температуры и влажности, который используется в комплекте с домашними метеостанциями. Датчик может работать как в комнате, так и на улице. Периодически он передаёт метеостанции по радиоканалу данные измерений и отчёт о своём состоянии. Подобные погодные датчики сейчас очень распространены. Рассматриваемый сенсор BL999 имеет следующие характеристики:
К одной метеостанции можно подключить до трёх таких датчиков. Номер (канал) датчика устанавливается переключателем, который расположен под съёмной крышкой батарейного отсека (трёхпозиционная кнопка SW1 на фото ниже). Фактически, канал здесь – это просто признак в структуре пакета данных датчика, никакого физического смысла (например, изменение рабочей частоты) он в себе не несёт.
Чтобы лучше понять протокол датчика, с помощью которого он отправляет данные метеостанции, можно попытаться воспользоваться радиоприёмником и разбираться с тем, что приходит из радиоэфира. Но на популярной частоте 433 МГц работает множество бытовых устройств, и приёмник будет ловить большое количество посторонних шумов. Этот факт не позволит нам спокойно изучить протокол датчика.
Внешний вид и внутренности метеодатчика BL999
Поэтому давайте для начала разберём датчик и подключимся осциллографом прямо к выходу, который генерирует цифровой сигнал непосредственно перед отправкой на передающую антенну. Землю можно найти возле «минуса» батареи в отсеке для батарей, а сигнальный провод подключим к верхнему выводу платы, как на фотографии. Для быстрого теста я подключил миниатюрный осциллограф DS203. На осциллограмме видно, что датчик генерирует какой-то сигнал. Далее этот сигнал поступает на передающую антенну и излучается в пространство.
Места подключения щупа осциллографа к метеодатчику BL999
Чтобы изучить генерируемый датчиком сигнал, нужен хороший осциллограф. Данные отправляются пакетами длительностью примерно 500…600 мс. Вот как выглядит типичный пакет с датчика BL999 на экране осциллографа.
Изучение сигнала метеодатчика BL999
Типичный пакет метеодатчика BL999 на экране осциллографа
Снимок экрана для этого пакета. Здесь красным цветом показан аналоговый сигнал, а голубым – оцифрованный сигнал, без присущих аналоговым сигналам искажений.
Осциллограмма типичного пакета метеодатчика BL999
Вот представлены 4 оцифрованных информационных пакета, сгенерированных датчиком. Эти пакеты пришли друг за другом с разницей в 30 секунд. Именно с такой периодичностью датчик BL999 отсылает свои данные.
Информационные пакеты метеодатчика BL999
Посмотрим на этот сигнал. С первого взгляда бросается в глаза, что:
Очевидно, что в данном случае применяется некое временное кодирование (скорее всего, фазо-импульсное или частотно-импульсное), когда значимая информация скрыта в длительности пауз между импульсами. В случае датчика BL999 короткая пауза между соседними импульсами (A) означает логический нуль, а длинная (B) – логическую единицу. Изучим сигнал более детально.
Как видно, в сигнале присутствует ряд коротких импульсов. Длительность всех импульсов одинакова и равна примерно 486 мкс. Длительность коротких промежутков (логический «0») равна примерно 2,4 мс, длительность средних промежутков (логическая «1») равна примерно 4,5 мс. Продолжительность самых длинных промежутков – около 9,4 мс.
Как уже было упомянуто, в пакете присутствуют 4 группы по 37 импульсов. Этими импульсами закодированы 36 битов, которые можно условно разбить на участки по 9 полубайтов. Следующий рисунок показывает, что закодировано в этих 36-ти битах:
Назначение битов информационного пакета метеодатчика BL999 в одной группе
Полубайт также называют «ниббл» (англ. nibble) или тетрада. Это единица измерения информации, содержащая четыре бита.
Давайте разберём реальный пример, и на его основе расшифруем закодированные в нём данные. Возьмём одну группу из 36-ти битов из вот такого пакета, пришедшего от датчика BL999:
Пример информационного пакета метеодатчика BL999
В пакете, согласно схеме, присутствуют следующие части:
Обозначение | Номера битов | Описание | Значение из примера |
---|---|---|---|
ID | 35…32, 29…28 | Это идентификатор датчика. Он задаётся произвольным образом и изменяется при каждом включении. | 0101_11 = 23 |
Chan | 31…30 | Номер канала датчика. Кодируется обычным двоичным кодом: «01» – 1, «10» – 2, «11» – 3. | 01 = 1 ый канал |
Bat | 27 | Уровень заряда батареи: «0» – норма, «1» – низкий заряд. | 0 = норма |
? | 26…24 | Нет данных. | 100 |
Temperature | 23…12 | Данные температуры. Число записано в обратном порядке и умножено на 10. Отрицательные температуры, кроме этого, хранятся в дополнительном коде (*). | 0111_1111_0000 обращение 0000_1111_1110 = 254 деление на 10 25,4°C |
Humidity | 11…4 | Влажность. Записывается как результат вычитания из 100, в дополнительном коде (*). | 0000_1101 обращение 1011_0000 инверсия битов 0100_1111=79 +1 =80 вычитание из 100% 100 − 80 = 20% |
Checksum | 3…0 | Контрольная сумма. Вычисляется как сумма 8-ми полубайтов, записанных в обратном порядке. От получившегося числа берутся 4 младших разряда и также записываются в обратном порядке. | 0101 0111 0100 0111 1111 0000 0000 1101 0100 1010 + 1110 + 0010 + 1110 + 1111 + 0 + 0 + 1011 = 100_0010 обращаем 0010 0100 |
(*) Дополнительный код числа – это специальный вид представления чисел, который часто используется в вычислительной технике. Онлайн-калькулятор и хорошая статья на эту тему здесь.
Каждая группа из 36 битов повторяется в пакете по 4 раза, что сделано для повышения надёжности приёма. Если в каком-то из четырёх дублей из-за помех в радиолинии контрольная сумма не сошлась, возьмём тот из четырёх, где с контрольной суммой всё в порядке.
2 Приём данных с метеодатчика BL999при помощи Arduino
Для того чтобы мы могли принимать данные с метеодатчика, нам нужен радиоприёмник, работающий на частоте 433 МГц. Прекрасно подойдёт копеечный модуль XY-MK-5V, который работает как раз на этой частоте. Мы уже не раз использовали его в своих проектах. Подключается он элементарно: вывод Data – к любому цифровому выводу Arduino, питание – к +5V Arduino, и земля к земле, соответственно.
Приёмник XY-MK-5V и Arduino Nano принимают сигнал датчика BL999
Существует отличная библиотека для Arduino, которая позволяет получать по радиоканалу и декодировать данные датчика BL999. Скачаем библиотеку, распакуем в папку libraries, откроем пример из библиотеки и загрузим в память Arduino. Если поблизости есть датчик BL999, то в мониторе последовательного порта Arduino IDE мы должны увидеть следующее:
Вывод скетча для метеодатчика BL999 в Arduino IDE
Не забудьте настроить монитор порта на скорость 115200 бит/с: именно такая скорость используется автором библиотеки для передачи данных от Arduino.