Pollife.ru

Стройка и ремонт
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Беспроводная связь между Ардуино на расстоянии до 1,8 км с модулем HC-12

Беспроводная связь между Ардуино на расстоянии до 1,8 км с модулем HC-12

В этом видео вы узнаете, как связать 2 Ардуино беспроводным способом на расстоянии до 1,8 км на открытом пространстве.

HC-12 – это модуль беспроводной связи с последовательным портом, он очень полезен, очень мощен и легок в использовании.

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

Последняя часть видео необязательна, но в ней вы узнаете, как использовать модуль HC-12 на более продвинутом уровне.
В этой части вы узнаете, как войти в режим настройки модуля HC-12, чтобы изменить скорость передачи, расстояние передачи, и так далее.
И вы узнаете, как подключить внешнюю SMA антенну.

Читайте дальше, и вы узнаете, как просто стать профессионалом в передаче данных на расстоянии.

  1. Нам понадобятся 2 Ардуино. Магазин на Aliexpress, Banggood.
  2. 2 модуля HC-12 (Aliexpress, Banggood)
  3. Провода
  4. Макетная плата (Aliexpress)
  5. Сопротивление 10 kΩ (Aliexpress)
  6. Кнопка
  7. И файлы для этого видео (здесь)

Соединение и настройка

Сначала мы должны припаять антенны к обоим чипам HC-12. Также я припаял несколько разъемов к модулям HC-12, чтобы было легче их использовать на макетной плате.

Мы будем использовать 2 Ардуино, соединенные с модулями HC-12 как показано на картинке.

На обоих Ардуино мы соединяем пин 2 с TX, пин 3 с RX. Земля к Земле, и VCC к 5 Вольт. На одном Ардуино мы добавим кнопку, как показано на картинке.

Чтобы работать с двумя Ардуино на одном компьютере, нам нужно открыть 2 копии Arduino IDE. Это значит, что нам нужно открыть софт Ардуино 2 раза. Это не то же самое, что открыть меню “File → New”

Сохраните проект с кнопкой как “HC-12 sender”, проект без кнопки как “HC-12 receiver”.

Убедитесь, что вы выбрали правильные порты в обоих Ардуино.

Передача беспроводных сообщений, Кнопка-переключатель, Push-кнопка и некоторые полезные функции и операторы.

Скачайте ZIP-архив, чтобы следовать за моим примером.

Передача мгновенных беспроводных сообщений

Мы начнем с передачи мгновенных сообщений между Ардуино.

Скопируйте содержание файла “HC-12 messenger send/receive.txt” из ZIP-архива и вставьте в каждую копию софта Ардуино. Код одинаковый для обоих Ардуино.

После того, как вы загрузили код, откройте serial monitor в обоих копиях софта Ардуино. Теперь вы можете пересылать сообщения от одного Ардуино к другому.

Хотя ваши Ардуино подключены к одному компьютеру, сообщения проходят беспроводным способом.

Кнопка-переключатель

Кнопка-переключатель часто используется в электронике. Ее принцип очень простой. Вы нажимаете кнопку один раз, чтобы включить LED-индикатор, и нажимаете эту же кнопку еще раз, чтобы выключить.

Скопируйте и вставьте содержание файла “HC-12 Toggle Button Send.txt” в проект “HC-12 sender”, и “HC-12 Toggle Button Receive.txt” в проект “HC-12 receiver”, и загрузите программы в Ардуино.

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

Push-кнопка

Суть Push-кнопки в том, что, когда вы нажимаете кнопку, LED-индикатор горит, когда вы отпускаете кнопку, индикатор гаснет.

Скопируйте и вставьте содержание файла “HC-12 Momentary Button Send.txt” в проект “HC-12 sender”, и “HC-12 Momentary Button Receive.txt” в проект “HC-12 receiver”, и загрузите программы в Ардуино.

Читайте так же:
Инструмент для подключения интернет розетки

Некоторые полезные функции и операторы

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

Посмотрите в файлах “HC-12 Useful Functions and Operators Send.txt” и “HC-12 Useful Functions and Operators Receive.txt”.

Программа на передающей стороне на нажатие кнопки посылает строку “test123”.

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

Продвинутые настройки. Изменение настроек HC-12 с помощью AT команд

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

Полный мануал вы можете найти в ZIP-архиве, он называется HC-12 User Manual.pdf

Соедините модуль HC-12 как показано на картинке, и подключите Ардуино к своему компьютеру.

Скопируйте и вставьте содержимое файла “HC-12 AT Commander.txt” из ZIP-архива, и загрузите его в ваш Ардуино.

Откройте serial monitor и наберите “AT”. Если модуль вернет “OK”, значит, командный режим работает.

Изменение скорости передачи

Скорость передачи может быть изменена на 1200bps, 2400bps,

4800bps, 9600bps, 19,200bps, 38,400bps, 57,600bps, or 115,200bps. Значение по умолчанию 9600bps.

Например, наберите “AT+B4800”. Модуль вернет “OK+B4800”.

Изменение канала связи

Наберите “AT+Cxxx” и затем значение.

Значение может быть числом от 001 до 127.

Каждое следующее число увеличивает частоту передачи на 400 KHz. Рабочая частота канала 100 — 473.0 MHz.

Например, наберите “AT+C021”. Модуль вернет “OK+C021”.

Теперь рабочая частота модуля установлена на 441.4 MHz.

Обратите внимание, что и приемный и передающий модули должны работать на одной частоте.

Изменение рабочего режима модуля

Режимы могут быть FU1, FU2, FU3 или FU4

Модуль в режиме FU4 на скорости передачи 1200 bps может передавать данные на расстояние до 1,8 км на открытой местности.

Подробности смотрите в документации.

Например, наберите “AT+FU4”. Модуль вернет “OK+FU4”.

Получение всех параметров от модуля

Модуль должен вернуть что-то вроде этого:

Пружинная антенна или SMA-антенна

Модули HC-12 в стандартной поставке имеют пружинную антенну. Однако, вы можете использовать SMA-антенну с этим чипом.

По поводу антенн и как они работают написано много книг. Я не хочу углубляться в эту информацию.

Единственное, что можно сейчас запомнить – это то, что электронные схемы могут создавать помехи для антенны, поэтому на плате HC-12 есть гнездо разъема IPEX RF, так что вы можете разделить плату и антенну. Это может помочь для лучшего приема и передачи сигнала.

Вам понадобится IPEX — SMA переходник и SMA-антенна.

Когда вы будете заказывать, убедитесь, что male и female разъемы совпадают.

Вы можете надеть переходник на коннектор IPEX и припаять его. На другой стороне переходника вы можете прикрутить SMA антенну.

В этом видео вы узнали, как использовать чип HC-12 для коммуникации между модулями Ардуино на больших расстояниях. Вы узнали, как пересылать мгновенные сообщения, как сделать кнопку включения/выключения, как сделать push-кнопку, как использовать некоторые функции и операторы, как изменить настройки модуля HC-12, и как использовать другую антенну.

На создание этого видео ушло более 100 часов изучения, исследований, тестов, написания кода, и так далее.

Управление Arduino с помощью Bluetooth

Видео: Управление Arduino с помощью Bluetooth и приложения Windows (Часть 1) — Центр РАЗУМ Омск 2021, Октябрь

Управление Arduino с помощью Bluetooth

Используйте Bluetooth для связи с вашим Arduino!

Читайте так же:
Машинка для стрижки собак розетка

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

Требования

    Ардуино
    Можно использовать любую модель Arduino, но весь код и схемы в этой статье будут для Uno.

Android-смартфон с Bluetooth

Убедитесь, что ваш телефон имеет Bluetooth, перейдя по ссылке «Беспроводная связь и сети» в настройках.

Модуль Bluetooth HC-05

Этот модуль является самым популярным модулем Bluetooth. Базовая версия довольно недорогая. С трудом можно подключить провода между модулем и Arduino, используя Bluetooth-щит или версию в форме пчелы, BTBee и щит для пчел.

Кабель USB для Arduino

Настройка оборудования

Чтобы использовать модуль HC05, просто подключите VCC к выходу 5V на выводе Arduino, GND to Ground, RX to TX Arduino и наоборот. (Примечание редактора: Вывод RX официально не поддерживается на 5 В, он рассчитан на сигналы 3, 3 В. Arduino генерирует сигнал 5 В, поэтому вы должны использовать делитель напряжения или логический уровень, чтобы гарантировать, что сигнал Arduino не повредите HC05.) Если вы используете модуль BTBee со щитом, установите перемычки на доске, чтобы штырьки DOUT и D0 были закорочены, а штифты DIN и D1 закорочены. Это делается потому, что вывод RX на Arduino — Pin 0, а вывод TX — Pin 1. Вы можете использовать любые другие контакты в качестве RX и TX Pins, но вам нужно будет использовать SoftwareSerial Library of Arduino для включения что. Не забывайте удалять перемычки при загрузке кода в Arduino, если вы выбрали Pin 0 и 1 в качестве последовательных контактов.

Image

Подключение модуля HC05

Image

Перемычка, подключенная к контактам 0 и 1 на шине BTBee

Если модуль используется в первый раз, вам нужно будет изменить имя, пароль и т. Д. Для этого модуль должен быть установлен в режим команд. Подключите контактный штырь к любому контакту на Arduino и установите его на высокий, чтобы модуль запрограммировался. Если вы используете BTBee, это немного сложно. В то время как официальная вики говорит, что кнопка режима должна удерживаться, чтобы изменить ее в командном режиме, и отпустите ее, она вернется в режим данных, это происходит не так: вместо этого удерживайте кнопку «Режим», затем быстро нажмите и отпустите Кнопка сброса. Вы заметите, что индикатор состояния мигает медленнее, чем обычно.

Для программирования модуля используется набор команд, известных как AT-команды. Вот некоторые из них:

ВПроверьте состояние соединения.
AT + NAMEЗадайте имя устройства
AT + ADDRПроверить MAC-адрес
AT + UARTПроверить Baudrate
AT + UART = "9600"Устанавливает Baudrate до 9600
AT + PSWDПроверить пароль по умолчанию
AT + PSWD = "1234"Устанавливает код доступа до 1234

Все команды набора возвращают «ОК», когда они выполняются успешно.

Вот код для изменения имени. Перемычки подключены к 4 и 5, потому что ответ от модуля будет напечатан на последовательном мониторе. Полный код доступен в конце этой статьи в кнопке «код загрузки».

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

Никакая дополнительная библиотека не используется для подключения к модулю Bluetooth, поскольку контакты RX и TX Arduino закорочены с модулями модуля. Все данные — исходящие и входящие — должны пройти через модуль. Взаимодействие с модулем так просто.

Читайте так же:
Как подключается розетка для колонок

Чтобы узнать, как это работает, подключим датчик температуры DHT-11 к Arduino. Когда будет получена буква «t», индекс температуры, влажности и тепла будет передан обратно. Для использования DHT-11 используется библиотека DHT от Adafruit.

Image Image

Щит и подключенный датчик DHT

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

Приложение для Android

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

Image

Поток программы будет таким, как показано выше.

Редактирование AndroidManifest.xml

Поскольку дополнительное оборудование, используемое этим приложением, является встроенным адаптером Bluetooth, оно должно быть упомянуто в манифесте.

Подключение к устройству

Сначала проверьте наличие Bluetooth-адаптера.

Если он присутствует, проверьте, включено ли оно. Если он не включен, попросите разрешения пользователя включить его.

Устройство должно быть сопряжено до того, как приложение сможет его использовать. Подробнее о том, как подключить модуль BT и телефон, см. Ниже. Теперь, когда адаптер включен, проверьте наличие парных / связанных устройств. Используя команды AT из вышеприведенного раздела, введите соответствующее имя для устройства. Также узнайте его MAC-адрес. Здесь MAC-адреса сравниваются для соответствия, потому что имена могут часто меняться.

После получения BluetoothDevice сокет должен быть создан для обработки исходящего соединения. Здесь используется сокет RFCOMM. RFCOMM — также известный как Serial Port Profile — по существу является протоколом Bluetooth для эмуляции кабеля RS232.

Затем получите входные и выходные потоки сокета.

Чтение входящих данных

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

Передача данных

Чтобы отправить данные, передайте String в OutputStream.

Загрузите исходный код для приложения

Тестирование приложения

Прежде всего, соедините телефон и модуль, сканируя новые устройства на вкладке Bluetooth в системных настройках. Должно появиться имя, которое было установлено ранее. Поместите введенный код доступа (по умолчанию — 0000 или 1234).

Image

После того, как вы включите Arduino, вы можете заметить, что индикатор состояния BTBee периодически мигает. Откройте приложение и нажмите «Начать». Светодиод состояния должен погаснуть, и загорится индикатор подключения. Это показывает, что соединение установлено.

Когда «t» отправляется в Arduino, он отвечает индексом температуры, влажности и тепла.

Image

Это была простая выставка передачи данных с использованием Bluetooth. Обратите внимание, что вы также можете использовать приложение последовательного терминала bluetooth для arduino, если вы не хотите использовать приложение, представленное здесь. Bluetooth можно использовать для управления автоматизацией многих повседневных вещей, таких как включение лампочки, что может быть сделано с помощью реле с Arduino. Это завершает эту двухчастную серию по взаимодействию с Arduino с телефоном Android. Первая часть использования серийного кабеля приведена здесь.

Alexander’s personal blog

Хочу рассказать короткую историю о том, как я ходил по граблям, пытаясь подружить плату Arduino UNO и модуль Bluetooth HC 06.

Чтобы протестировать взаимодействие между PC/смартфоном и платой Arduino UNO я после недолгих поисков по интернету собрал вот такую нехитрую схему:

В общем-то всё просто: подаём напряжения +5В, +3.3В и «землю» (GND) с Ардуино на модуль Bluetooth, для передачи же данных модуль соединяется с аппаратным последовательным портом на Arduino. Выход (Tx) на Ардуино подключается к входу (Rx) модуля (по этой линии данные передаются из Ардуино в модуль Bluetooth) и наоборот, для передачи из модуля в Ардуино подключаем (Tx) на плате HC 06 к (Rx) Ардуино. Сигнал с Ардуино подаётся на модуль через делитель напряжения, так как Bluetooth-модуль ожидает уровень сигнала 3.3В, а Ардуино выдаёт 5В. R1 я взял равным примерно 5 кОм, R2, соответственно, 10 кОм (на самом деле 5.1 кОм и 11 кОм).

Читайте так же:
Как резать кафель под розетку

От прошивки в Ардуино в этом опыте требуется только лишь возможность проверить, что данные шлются в обе стороны. Я реализовал следующую логику: если Arduino получает через Bluetooth символ ‘1’, то в ответ высылается строчка «Hello». Eсли Arduino получает через Bluetooth символ ‘2’, то просто мигаем встроенным светодиодом, который подключен к пину 13 на плате Arduino UNO. В ответ на любой другой символ присылается знак вопроса.

Эта схема никак не хотела работать! Было похоже, что данные не пересылаются в Ардуино. Решил попробовать, шлются ли данные в обратном направлении. Переписал скетч таким образом, чтобы Ардуино просто постоянно слал тестовую строчку с данными в модуль, и смог без проблем прочитать их на своём ноутбуке (о том, как подключаться с PC под управлением Windows пойдёт речь ниже).

Потратив 2+ часа на проверки и поиски в интернете, я нашёл, что нельзя пользоваться Rx и Tx пинами на Ардуино когда он подключен к USB-порту компьютера (я использую USB кабель для питания всей схемы). Дело в том, что при подключении USB-кабеля к ардуино, выходы контроллера Rx и Tx используются для связи с компьютером через USB (правда, сигнал Tx продолжил работать и в этом случае, так как послать данные из Ардуино в PC всё-таки получилось). При связи с другими устройствами через аппаратный последовательный порт необходимо подавать питание через разъём внешнего питания (7-12 Вольт). Я полагаю, все это очевидные вещи для мало-мальски опытного пользователя Arduino (коим я пока не являюсь). Надеюсь этот пост поможет кому-то из начинающих сэкономить время и избежать похожих проблем в будущем.

С программной реализацией последовательного обмена разработчик волен выбирать любой пин цифрового ввода/вывода платы Ардуино. Я выбрал десятый пин для приёма информации через Bluetooth, и 11-й, соответственно, для отправки данных. Схема теперь выглядит так ( на схеме ошибка, 10-й и 11-й выводы платы поменяны местами ):

В реальном мире это выглядит так:

Код скетча почти не изменился, так как программная реализация последовательного обмена имеет очень похожее API:

Не буду останавливаться слишком подробно на на процедуре сопряжения PC с нашим новым «гаджетом». В случае Windows всё как обычно: подключается USB-донгл, осуществляется поиск Bluetooth устройств. В моём случае устройство называлось HC-06, но имя можно поменять с помощью соответствующей AT-команды. С точки зрения программ наше устройство видится как ещё один COM-порт в системе. В свойствах устройства можно увидеть, какой номер присвоен «виртуальному COM-порту» сопряженного устройства. В моём случае получился порт COM-28. Для того чтобы слать и принимать данные в COM-порт для Windows существует множество программ. Я использовал привычный мне терминал PuTTY. Последовательность действий такова: запускаем PuTTY, выбираем Connection type: Serial и идем в категорию «Serial»

Читайте так же:
Все виды автомобильных розеток

Самый компактный способ питания Arduino от розетки

Существует много способов питания Arduino от большого диапазона напряжений:

  • USB-кабель от ПК, зарядного устройства или концентратора USB
  • понижающие преобразователи
  • увеличить конвертеры
  • импульсный источник питания
  • батареи (подключены к разъему питания или USB или к Vin)

То, что я не могу найти, это маленький преобразователь 220В-5В. Я бы хотел поставить Arduino в стену, под выключателем, так что размер имеет значение.

Последний вариант — открыть телефонное зарядное устройство на 5 В и заменить металлические контакты, которые входят в гнездо с двумя проводами, и заменить гнездо USB другой парой проводов, идущих к плате Arduino, но все же Arduino Pro Mini или Arduino Nano меньше, чем зарядное устройство для телефона.

Последний вариант — открыть телефонное зарядное устройство на 5 В и заменить металлические контакты, которые входят в розетку с двумя проводами, и заменить розетку USB на другую пару проводов, которые идут на плату Arduino, но все же Arduino Pro Mini или Arduino Nano меньше, чем зарядное устройство для телефона.

Вам, вероятно, придется сделать что-то подобное.

Из-за характера преобразования между переменным и постоянным током, здесь должны быть некоторые крупные детали. * Я не буду вдаваться в подробности здесь. Обычно имеется диодный мост (поскольку сигналы переменного тока изменяют ток

60 раз в секунду) и трансформатор (для понижения напряжения на диодный мост). Они почти всегда включают в себя регулятор и конденсатор, чтобы обеспечить точное напряжение, и он выдает «чистый» источник питания.

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

Этот адаптер, кажется, самый компактный адаптер, который я могу найти для 220V. Вы никогда не получите то, что вам нужно, даже с импульсным источником питания. Я не знаю размера адаптера Amazon, на который я дал ссылку, но в США (120 В) зарядные устройства для iPhone очень маленькие, и они должны помещаться в стандартную розетку глубины (с небольшим пространством для реле и например). Если вам действительно нужно все уменьшить, я рекомендую использовать чип ATtiny.

Как я рекомендую подключить это:

Я бы избежал разрыва этого на части любой ценой с точки зрения безопасности. Было бы очень легко отправить 220 В на Arduino, если вы не будете осторожны. Если вам абсолютно необходимо , вы можете нанести на него непроводящую эпоксидную смолу или другое кодирование. Примечание: это может действовать как теплоизолятор, что снижает срок службы детали. Вы должны просто намотать проволоку вокруг зубцов, а затем расплавить немного припоя на каждом из выводов. Затем накройте это изолентой и косичкой (с проволочной гайкой) в линию питания источника. Примечание: вы, вероятно, делаете проводку, которая может быть незаконной в вашем районе. Проверьте ваши местные строительные нормы, прежде чем пытаться это.

После этого подключите USB-кабель к разъему и к входу 5V / GND чипа Arduino или ATtiny / ATmega328 (грубо, после обрезки и снятия одного конца USB-кабеля). Я бы также, после доработки всего кода и схемы, запечатал это эпоксидной смолой или каким-то образом добавил его в корпус, чтобы убедиться, что вы не поджариваете свой Arduino, если свободный провод дотронется до схемы Arduino.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector