Как подружить умный чайник и Алису
С интеграцией в экосистему от Яндекс все гораздо проще. Устройство поддерживает работу с Алисой из коробки.
Для управления чайником в доме потребуется лишь приложение, а для включения электроприбора удаленно нужен специальный хаб или смартфон, который будет всегда находиться недалеко от чайника.
Price: Free
1. Устанавлваем приложение Ready For Sky на iPhone.
2. В приложении Яндекс с настроенной колонкой или станцией переходим по пути Устройства – Умный дом – Добавить устройство.
3. Выбираем плагин Ready for Sky и авторизуемся в своей учетной записи.
4. Обновляем список устройств, после появления чайника можем переименовать его и разместить в нужной комнате.
Все, теперь Алиса может включать и отключать режим кипячения, а на некоторых моделях будет доступно управление другими умными функциями гаджета.
В случае удаленного управления настраиваем связь через Android-смартфон с приложением R4S Gateway или специальный хаб SkyCenter 11S.
Связываем гаджеты при помощи учетной записи Ready for Sky и получаем возможность удаленного управления.
Вот так можно сократить частоту походов на кухню и кипятить чайник удаленно.
iPhones.ru
Простой способ добавить умный чайник в HomeKit и Алису от Яндекса.
Программирование nRF24L01 для Arduino
Использовать эти модули с Arduino очень просто благодаря доступной готовой библиотеке, созданной maniacbug на GitHub. Нажмите на ссылку, чтобы загрузить библиотеку в виде zip-каталога, и добавьте её в Arduino IDE с помощью Скетч (Sketch) → Подключить библиотеку (Include Library) → Добавить ZIP библиотеку (Add .ZIP library). После добавления библиотеки мы можем начать программирование для проекта. Мы должны написать две программы, одна для передающей части, а другая для приемной части. Однако, как я уже говорил ранее, каждый модуль может работать как и передатчик, и приемник. Обе программы приведены в конце страницы, в коде передатчика будет закомментирован код приемника, а в программе приемника будет закомментирован код передатчика. Вы можете использовать его, если хотите, чтобы в вашем проекте модуль работал в обоих режимах. Работа программы описана ниже.
Как и во всех программах, мы начинаем с включения заголовочных файлов. Поскольку nRF использует протокол SPI, мы включили заголовочный файл SPI, а также библиотеку, которую только что загрузили. Библиотека servo используется для управления серводвигателем.
Далее идет важная строка, в которой мы указываем выводы CE и CS. На нашей принципиальной схеме CE подключен к выводу 7, а CS – к выводу 8.
Все переменные, которые связаны с библиотекой RF, должны быть объявлены как составная структура. В данной программе переменная используется для отправки и получения данных от RF модуля.
Каждый RF модуль имеет уникальный адрес, используя который можно отправлять данные на соответствующее устройство. Поскольку у нас здесь только одна пара, мы устанавливаем адрес, равный нулю, как на передатчике, так и приемнике, но если у вас несколько модулей, вы можете установить ID на любую уникальную строку, состоящую из шести цифр.
Затем внутри функции мы инициализируем RF модуль и настраиваем его на работу в диапазоне 115, который свободен от шума, а также настраиваем модуль для работы в режиме минимального энергопотребления с минимальной скоростью 250 кбит/с.
Функция записывает переданные ей данные. Как говорилось ранее, nRF имеет 6 различных каналов, в которые мы можем записывать и считывать данные, здесь мы использовали в качестве адреса для записи данных. В приемной части для получения данных мы должны использовать тот же адрес в функции .
Функция считывает данные и помещает их в переменную. Снова из 6 различных каналов, используя которые мы может считывать и записывать данные, здесь мы использовали в качестве адреса для чтения данных. Этот означает, что передатчик другого модуля записал что-то по этому адресу, и, следовательно, мы читаем это что-то с того же адреса.
Помимо этих строк, в программе используются другие строки для считывания положения потенциометра и преобразования этого показания в значение в диапазоне от 0 до 180 с помощью функции и отправки его на приемный модуль, где мы соответствующим образом управляем сервоприводом.
Передача данных
Когда передатчик не получает на входе данных, генератор передатчика отключается, и потребляет в режиме ожидания около нескольких микроампер. На испытаниях вышло 0,2 мкА от 5 В питания в выключенном состоянии. Когда передатчик получает вход каких-то данных, он излучает на 433 или 315 МГц несущей, и с 5 В питания потребляет около 12 мА.
Передатчик можно питать и от более высокого напряжения (например 12 В), которое увеличивает мощность передатчика и соответственно дальность. Тесты показали с 5 В питанием до 20 м через несколько стен внутри дома.
Приемник при включении питания, даже если передатчик не работает, получит некоторые статические сигналы и шумы. Если будет получен сигнал на рабочей несущей частоте, то приемник автоматически уменьшит усиление, чтобы удалить более слабые сигналы, и в идеале будет выделять модулированные цифровые данные.
Объяснение программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты. Программа очень простая поскольку в ней нам всего лишь необходимо управлять переключением логических уровней на контактах платы.
В начале программы объявим переменные целого типа для работы с кнопками и входными контактами кодирующего устройства.
Arduino
int f_button = 9;
int b_button = 8;
int l_button = 7;
int r_button = 6;
int m1=2;
int m2=3;
int m3=4;
int m4=5;
1 |
intf_button=9; intb_button=8; intl_button=7; intr_button=6; intm1=2; intm2=3; intm3=4; intm4=5; |
В функции setup мы зададим режимы работы для используемых контактов, к которым подключены кнопки – режим ввода данных с внутренними подтягивающими резисторами, а к которым подключены контакты кодирующего устройства – на вывод данных.
Arduino
pinMode(f_button,INPUT_PULLUP);
pinMode(b_button,INPUT_PULLUP);
pinMode(l_button,INPUT_PULLUP);
pinMode(r_button,INPUT_PULLUP);
pinMode(m1,OUTPUT);
pinMode(m2,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
1 |
pinMode(f_button,INPUT_PULLUP); pinMode(b_button,INPUT_PULLUP); pinMode(l_button,INPUT_PULLUP); pinMode(r_button,INPUT_PULLUP); pinMode(m1,OUTPUT); pinMode(m2,OUTPUT); pinMode(m3,OUTPUT); pinMode(m4,OUTPUT); |
Затем в функции loop мы будем считывать состояние кнопок с помощью функции digitalRead. Если кнопка нажата, то на контакте, к которому она подключена, будет уровень LOW.
Arduino
if ( digitalRead(f_button)==LOW)
1 | if(digitalRead(f_button)==LOW) |
Если нажата кнопка движения вперед нам необходимо будет выполнить следующую последовательность действий:
Arduino
{
digitalWrite(m1, LOW);
digitalWrite(m3, LOW);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}
1 |
{ digitalWrite(m1,LOW); digitalWrite(m3,LOW); digitalWrite(m2,HIGH); digitalWrite(m4,HIGH); } |
Эта последовательность команд активирует вращение по часовой стрелке обоих двигателей лодки. Соответственно, для движения назад необходимо выполнить следующую последовательность команд:
Arduino
{
digitalWrite(m1, HIGH);
digitalWrite(m3, HIGH);
digitalWrite(m2, LOW);
digitalWrite(m4, LOW);
}
1 |
{ digitalWrite(m1,HIGH); digitalWrite(m3,HIGH); digitalWrite(m2,LOW); digitalWrite(m4,LOW); } |
Для движения влево:
Arduino
{
digitalWrite(m1, LOW);
digitalWrite(m3, HIGH);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}
1 |
{ digitalWrite(m1,LOW); digitalWrite(m3,HIGH); digitalWrite(m2,HIGH); digitalWrite(m4,HIGH); } |
Для движения вправо:
Arduino
{
digitalWrite(m1, HIGH);
digitalWrite(m3, LOW);
digitalWrite(m2, HIGH);
digitalWrite(m4, HIGH);
}
1 |
{ digitalWrite(m1,HIGH); digitalWrite(m3,LOW); digitalWrite(m2,HIGH); digitalWrite(m4,HIGH); } |
После сборки аппаратной части проекта можно загружать программу в плату Arduino и приступать к тестированию проекта.
Предупреждение: прежде чем начинать тестирование проекта убедитесь в том, ровно ли лодка стоит на водной поверхности, не превышает ли ее вес допустимого, не перепутали ли вы полярность двигателей и в правильную ли сторону вы изогнули пропеллеры.
Распиновка модуля приемопередатчика nRF24L01 +
Давайте посмотрим на распиновку обеих версий радиомодуля nRF24L01 +.
- GND — это контакт заземления.
- VCC — обеспечивает питание для модуля. Это может быть где-то от 1,9 до 3,9 вольт. Вы можете подключить его к выводу 3,3 В вашей Arduino. Помните, что подключение его к выводу 5 В может привести к повреждению вашего модуля nRF24L01 +!
- CE (Chip Enable) — активный-HIGH вывод. При выборе nRF24L01 будет либо передавать, либо получать, в зависимости от того, в каком режиме он находится в данный момент.
- CSN (Chip Select Not) — активный-LOW вывод и обычно поддерживается на высоком уровне. Когда этот вывод становится низким, nRF24L01 начинает прослушивать данные на шине SPI и обрабатывает их соответствующим образом.
- SCK (Serial Clock) — принимает тактовые импульсы, предоставляемые шиной SPI Master.
- MOSI (Master Out Slave In) — является входом SPI для nRF24L01.
- MISO (Master In Slave Out) — это выход SPI от nRF24L01.
- IRQ — это вывод прерывания, который может предупредить мастер, когда новые данные доступны для обработки.
В следующей статье рассмотрим вопрос подключения модуля nRF24L01 + к Arduino.
Радио приемник FS1000A/XD-FST 433Mhz
Характеристики FS1000A/XD-FST
Рабочее напряжение: DC 5VРабочий ток: 4 мАРежим модуляции: ООК (AM)Рабочая температура: -10 ° C ~ +70 ° CПолучать чувствительность:-110dBРабочая частота: 433MHzРазмер: 30 х 14 х 7 мм
Приемник работает на основе колебательного контура с усилителем. Подключается с помощью выводов PIN1 VCC, PIN2/3 DATA, PIN5 GND. Выход радио модуля логический по уровню, но сигнал принимает аналоговый. По тому задача декодирования послания лежит на плечах устройства (обычно Arduino) которое принимает сигнал.
Схема подключения радио модулей 433 Mgz к Arduino представлена ниже. Выходы выходы приемника и передатчика подключаются к Digital портам Arduino, которые способны обрабатывать модулированный сигнал.
Для существенного увеличения дальности приема можно к приемо-передающим устройствам подпаять антенну. Самый простой вариант — кусок провода длиной 17 см с сопротивлением 50 Ом. Такая длина будет резанировать на частоте 433 Mgz т.к. ее длина равна 1/4 волны.
Для кодирования.декодирования передаваемого сигнала на Arduino удобно применять библиотеку VirtualWire.hПриведу пару примеров использования библиотеки для передачи цифровых данных.
Передатчик:
#include "VirtualWire.h" const int led_pin = 13; // Пин светодиода const int transmit_pin = 12; // Пин подключения передатчика void setup() { vw_set_tx_pin(transmit_pin); vw_setup(2000); // Скорость передачи (Бит в секунду) pinMode(led_pin, OUTPUT); } void loop() { const char *msg = "Hello, Arduinomania"; // Передаваемое сообщение digitalWrite(led_pin, HIGH); // Зажигаем светодиод в начале передачи vw_send((uint8_t *)msg, strlen(msg)); // Отправка сообщения vw_wait_tx(); // Ожидаем окончания отправки сообщения digitalWrite(led_pin, LOW); // Гасим светодиод в конце передачи delay(1000); // Пауза 1 секунда }
Приемник:
#include "VirtualWire.h" byte message; // Буфер для хранения принимаемых данных byte messageLength = VW_MAX_MESSAGE_LEN; // Размер сообщения const int led_pin = 13; // Пин светодиода const int receiver_pin = 11; // Пин подключения приемника void setup() { Serial.begin(9600); // Скорость передачиданных Serial.println("Read 433mHz begin"); vw_set_rx_pin(receiver_pin); // Пин подключения приемника vw_setup(2000); // Скорость передачи данных (бит в секунду) vw_rx_start(); // Активация применика } void loop() { if (vw_get_message(message, &messageLength)) // Если есть данные.. { digitalWrite(led_pin, HIGH); // Зажигаем светодиод в начале приема пакета for (int i = 0; i < messageLength; i++) { Serial.write(message); // выводим их в одной строке } Serial.println(); digitalWrite(led_pin, LOW); // Гасим светодиод в конце } }
Присоединяйтесь к команде Arduino против Raspberry Pi
Поскольку Arduino и Raspberry Pi появились примерно в одно время, люди могут подумать, что это одно и то же. По правде говоря, хоть и есть кроссовер, но эти две платы разные.
Arduino — это плата микроконтроллера, а Raspberry Pi — одноплатный компьютер. Arduino должен быть запрограммирован с другого устройства, тогда как Raspberry Pi может запускать операционную систему. Вы можете запрограммировать Arduino с Raspberry Pi, но не наоборот.
Эти различия привели к некоторому разделению сообществ. Что лучше: Arduino или Raspberry Pi?
Чтобы узнать это, вам нужно попробовать их оба. Но вы, вероятно, обнаружите, что если у вас врожденный интерес к электронике и созданию проектов, Arduino решает эту проблему.
Этапы создания
Следует сказать, что этапы создания системы «умного дома» с привлечением специалистов или же своими руками будут одинаковыми. Правда, в последнем случае готовый вариант в целом обойдется существенно дешевле, чем если привлекать специалистов, которых на рынке и так не хватает. По этой причине зарплаты у них будут соответствующими, а значит, если вы не хотите тратить лишние средства, то можно обойтись собственными силами. Итак, начнем с комплектующих для этой системы, если вы решили все-таки создавать ее самостоятельно.
Комплектация
Если говорить о комплектации системы, то технология будет включать в себя следующий набор компонентов:
- датчик движения;
- датчик температуры и влажности;
- датчик освещенности;
- пара температурных датчиков с маркировкой DS18B20;
- Ethernet-модуль марки ENC28J60;
- микрофон;
- переключатель язычкового типа;
- реле;
- кабель типа «витая пара»;
- кабель категории Ethernet;
- резистор, имеющий сопротивление 4,7 килоома;
- микропроцессорная плата Arduino.
Алгоритм подключения
Следует сказать, что умный дом должен быть оснащен исключительно светодиодными лампочками, так как обычные варианты просто могут не выдержать большого напряжения. Когда проект будет готов, а все нужные запчасти уже приобретены, следует начать подключение датчиков и контроллеров. Делать это необходимо исключительно по схеме, созданной ранее. Контакты необходимо полностью заизолировать.
Если говорить кратко, то поэтапно алгоритм подключения будет выглядеть таким образом:
- установка кода;
- настройка приложения для ПК или мобильного;
- портовая переадресация;
- осуществление тестирования ПО и датчиков;
- устранение неисправностей, если они были выявлены при тестировании.
Итак, начнем с установки кода.
Сначала пользователю следует написать ПО в Arduino IDE. В нем представлены:
- текстовый редактор;
- создатель проектов;
- программа для компиляции;
- препроцессор;
- инструмент для загрузки ПО в мини-процессор Arduino.
Следует сказать, что существуют версии ПО для основных компьютерных ОС – Windows, Linux, Mac OS X. Если говорить об используемом языке программирования, то речь идет о C++ с рядом упрощений. Программы, написанные пользователями для Arduino, обычно называют скетчами. Ряд функций система создает автоматически и пользователю не нужно разбираться в их написании, прописывая список обычных действий. Также нет необходимости вносить файлы заголовочного типа обычных библиотек. Но пользовательские вставлять необходимо.
Добавлять библиотеки в проектный IDE-менеджер можно различными методами. В виде исходников, прописанных на С++, идет добавление в отдельную директорию на рабочей директории IDE-оболочки. Теперь имена необходимых библиотек появляются в определенном IDE-меню. Те, что вы отметите, войдут в компиляционный список. В IDE существует малое количество настроек, а задавать тонкости компилятора вообще нет возможности. Это сделано для того, чтобы несведущий человек не натворил каких-либо ошибок.
Если вы скачали библиотеку, то ее необходимо распаковать и просто вставить в IDE. В программном тексте есть комментарии, которые поясняют принцип ее работы. Следует отметить, что все приложения на Arduino работают по одной технологии: пользователь шлет запрос на процессор, а он, в свою очередь, осуществляет загрузку нужного кода на экран устройства. Когда человек нажимает клавишу Refresh, то микроконтроллер отсылает информацию. С каждой из страниц с определенным обозначением идет программный код, что будет отображаться на экране.
Следующий комплекс действий заключается в установке клиента на персональный компьютер или смартфон. Скачать его можно в интернете, в Google Play Market или из другого источника. Для того чтобы сделать это, необходимо открыть файл на телефоне, который вы скачали, после чего щелкнуть по нему и в появившемся окне нажать на клавишу «Установить». При этом следует знать, что для этого должна быть активирована опция, позволяющая осуществлять установку программ не из сервиса Google Play. Чтобы включить эту опцию, необходимо войти в раздел настроек и выбрать там пункт «Безопасность». Именно так и необходимо активировать соответствующую опцию. Когда установка завершится, то можно будет осуществить активацию приложения и настроить его.
Начало работы
Как только необходимое оборудование подготовлено, а проект разработан, можно приступать к выполнению поставленной задачи.
Этапы
При организации системы «Умный дом» на базе Ардуино, стоит действовать по следующему алгоритму:
- Инсталляция программного кода;
- Конфигурация приложения под применяемое устройство;
- Переадресация портов (для роутера);
- Проведение тестов;
- Внесение правок и так далее.
В Сети имеется весь необходимый софт на применяемое оборудование — его достаточно скачать с официального сайта и установить (ссылку смотрите выше).
Приложение позволяет увидеть информацию о датчиках. Если это требуется, настройки IP-адрес могут быть изменены.
Последовательность действий при подключении к компьютеру
Чтобы начать работать с Ардуино в Windows, сделайте следующие шаги:
- Подготовьте необходимое оборудование — USB-кабель и Arduino.
- Скачайте программу на странице arduino.cc/en/Main/Software.
- Подсоедините плату с помощью USB-кабеля. Проследите, чтобы загорелся светодиод PWR.
- Поставьте необходимый набор драйверов для работы с Ардуино. На этом этапе стоит запустить установку драйвера и дождаться завершения процесса.
После жмите на кнопку «Пуск» и перейдите в панель управления. Там откройте вкладку «Система и безопасность» и выберите раздел «Система». После открытия окна выберите «Диспетчер устройств», жмите на название Ардуино и с помощью правой кнопки мышки задайте команду обновления драйвера. Найдите строчку «Browse my computer for Driver software!», кликните по ней и выберите соответствующий драйвер для вашего типа платы — ArduinoUNO.inf (находится в папке с драйверами). Это может быть UNO, Mega 2560 или другая.
- Запустите среду разработки Ардуино, для чего дважды кликните на значок с приложением.
- Откройте готовый пример (File — Examples — 1.Basics — Blink).
- Выберите плату. Для этого перейдите в секцию Tools, а дальше в Board Menu.
- Установите последовательный порт (его можно найти путем отключения и подключения кабеля).
- Скачайте скетч в Ардуино. Кликните на «Upload» и дождитесь мигания светодиодов TX и RX на плате. В завершение система показывает, что загрузка прошла успешно. Через несколько секунд после завершения работы должен загореться светодиод 13 L (он будет мигать оранжевым). Если это так, система готова к выполнению задач.
ПОПУЛЯРНОЕ У ЧИТАТЕЛЕЙ: Яндекс Алиса умный дом – будущее уже рядом
Работа с роутером
Для полноценной работы «Умного дома» важно правильно обращаться с роутером. Здесь требуется выполнить следующие действия — открыть конфигурацию, указать адрес Arduino IP, к примеру, 192.168.10.101 и открыть 80-й порт
После требуется присвоить адресу доменное имя и перейти к процессу тестирования проекта. Учтите, что для такой системы запрещено применение открытого IP-адреса, ведь в этом случае высок риск взлома через Сеть.
Скетч Arduino для радиочастотного приемника 433 МГц
Подключите приемник Arduino к компьютеру и загрузите следующий код:
// Подключаем библиотеку RadioHead Amplitude Shift Keying #include <RH_ASK.h> // Подключаем библиотеку SPI Library #include <SPI.h> // Создаем объект управления смещением амплитуды RH_ASK rf_driver; void setup() { // Инициализируем объект ASK rf_driver.init(); // Настройка Serial Monitor Serial.begin(9600); } void loop() { // Установить размер буфера ожидаемого сообщения uint8_t buf; uint8_t buflen = sizeof(buf); // Проверка правильности размера полученного пакета if (rf_driver.recv(buf, &buflen)) { // Сообщение получено с правильной контрольной суммой Serial.print("Message Received: "); Serial.println((char*)buf); } }
Как и код передатчика, код приемника начинается с подключения библиотек RadioHead и SPI и создания объекта ASK.
#include <RH_ASK.h> #include <SPI.h> RH_ASK rf_driver;
В setup() мы инициализируем объект ASK, а также настраиваем последовательный монитор, так как мы будем просматривать наше полученное сообщение.
rf_driver.init(); Serial.begin(9600);
В функции loop() мы создаем буфер размером передаваемого сообщения. В нашем случае это 11, помните? Вам нужно будет настроить это, чтобы соответствовать длине вашего сообщения. Обязательно укажите все пробелы и знаки препинания, поскольку все они считаются символами.
uint8_t buf; uint8_t buflen = sizeof(buf);
Далее мы вызываем функцию recv(). Это включает приемник, если он еще не включен. Если доступно сообщение, оно копирует сообщение в свой первый буфер параметров и возвращает true, иначе возвращает false. Если функция возвращает true, код вводит оператор if и печатает полученное сообщение на мониторе последовательного порта.
if (rf_driver.recv(buf, &buflen)) { Serial.print("Message Received: "); Serial.println((char*)buf); }
Затем мы возвращаемся к началу цикла и делаем все заново.
После загрузки скетча откройте серийный монитор. Если все в порядке, вы должны увидеть ваше сообщение.
Материалы
В данной статье речь пойдет о радиосвязи, а конкретнее – о радиомодулях, для подключения их к Arduino и об успешном применении в различных проектах.
Самым интересным способом для знакомства с радиомодулями, является установление соединения между двумя платами Ардуино посредством так называемого приемопередатчика.
Наибольшей популярностью среди радиомодулей с поддержкой Arduino пользуются передатчики с частотой 433МГц. Самое такое устройство обычно делиться на две составные части: это приемник и передатчик. Первый модуль имеет 4 вывода для подключения к плате (но один из них можно не использовать) Два из этих вывода отвечают за питание (соответственно, подключаются к таким контактам на плате, как 5V и Gnd (ground – “земля”), а другой к цифровому выходу на плате.
Передатчик тоже имеет 3 используемых контакта для подключения к плате. Только подключается он уже к другой плате, с которой у нас будет взаимодействовать первая плата, подключенная к приемнику. Три вывода подключается таким же способом, как и в случае с подключением приемника.
Наглядная картинка подключенных модулей есть на фото ниже:
Теперь займемся написанием программного кода. Для этого откроем среду разработки – программу Arduino IDE. Для работы с модулями понадобится специализированная библиотека RCSwitch.h, ее скачать вы можете здесь
Рассмотрим код, в котором будем передавать информацию с одной платы на другую, а уже в следующих уроках более углубимся в эту тему.
Начнем с передатчика. Этот модуль будет передавать информацию к другой плате, которая, обработав информацию, выполнит со всей подключенной к ней периферии необходимые действия.
#include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { mySwitch.enableTransmit(2); } void loop() { mySwitch.send(B0100, 4); delay(1000); mySwitch.send(B1000, 4); delay(1000); }
Сначала инициализируем библиотеку для работы с модулями, с помощью директивы include
В следующее строчке мы называем наш модуль для дальнейшей работы с ним. Внутри функции void setup прописывается контакт на плате, к которому подключен передатчик. Далее, в цикле, мы можем заметить еще одну новую функцию — mySwitch.send . Она предназначается для непосредственной отправки сообщений. Сначала в ней указывается само сообщение для отправки, а далее размер отправляемого файла. Кстати, указывать отправляемое сообщение можно также и в виде двоичных чисел и строк.
Для приемника будет следующий программный код:
#include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { pinMode( 3, OUTPUT ); mySwitch.enableReceive(0); } void loop() { if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == B1000) digitalWrite(3, HIGH); else if (value == B0100) digitalWrite(3, LOW); mySwitch.resetAvailable(); } }
В цикле программного кода можно легко заметить, что при отправке определенного сообщения устанавливается на выходе максимальное напряжение(high), в ином случае – минимальное (low)
Таким образом данный пример-код взаимодействия между элементами радиомодуля вы можете легко применить в собственных проектах: например, ИК-управление с помощь пульта, управление машинкой на этой же основе и многое другое
Надеемся, что статья была для вас полезной. Удачной всем компиляции! И следите за нашим блогом:)
Купить компоненты, используемые в статье, вы можете на нашем сайте: Амперкот.ру
Данная статья является собственностью Amperkot.ru. При перепечатке данного материала активная ссылка на первоисточник, не закрытая для индексации поисковыми системами, обязательна.
С Arduino легко изучить электронику
Когда я впервые получил свой Arduino, у меня не было практических знаний в области электроники или схем. Я забыл все, чему научился в школе, и чувствовал себя не в своей тарелке, играя с крошечным микроконтроллером.
Но я быстро понял, что это не должно быть так сложно. Вам нужно будет изучить основы схем, если вы хотите понять, что делаете. Но где можно узнать об электронике для Arduino?
Мы бы рекомендовали начать с YouTube, где вы можете найти сотни видеороликов, связанных с Arduino.
Играя с Arduino, вы приобретете новые навыки работы с электроникой в зависимости от того, над какими проектами вы работаете. Если вы никогда раньше не работали с проводами, макетными платами или паяльными пистолетами, то это безопасный и интересный способ обучения.
Не только это, вы также сможете поиграть с множеством крутых электронных компонентов. Большинство стартовых комплектов Arduino включает светодиоды, резисторы, конденсаторы, акселерометры, моторы, кнопки, дисплеи и многое другое. Вы почувствуете себя ребенком, который снова и снова играет с деталями Lego.
Но больше всего, когда вы укрепляете уверенность в схемах и компонентах, вы, скорее всего, откроете в себе творческую сторону, о существовании которой вы даже не подозревали. Это прекрасный способ проявить практическое творчество.