Arduino wifi with android

Приложения для удаленного управления Arduino на Android

Приложения для удаленного управления Arduino на Android предоставляют GUI для легкого управления микроконтроллером.

Ардуино и Андроид

Кто не хочет избавиться от этих громоздких кнопок и запутанных проводов во время работы над проектами?

Удаленное управление платами Arduino через приложение Android возможно благодаря графическому интерфейсу пользователя (GUI).

Созданная в 2003 году платформа Arduino быстро попала на глаза сообществам с открытым исходным кодом и любителям радиоэлектроники из-за её низкой цены, тонн онлайн-учебников и многомиллионного поддерживающего сообщества.

Платы поставляются с различными микропроцессорами и микроконтроллерами, наиболее популярными среди которых являются Arduino UNO с Atmega328.

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

Следующим шагом стало развитие контроля плат из любой точки Мира.

1. Arduino Bluetooth Controller

Это приложение имеет простой пользовательский интерфейс и его легко настроить. Соедините Android с модулем Bluetooth, подключенным к Arduino. Можно подключаться в 4 разных режимах:

  1. Режим контроллера: этот режим представляет собой интерфейс игрового контроллера. При нажатии любой из экранных кнопок будет отправлена соответствующая команда на Arduino. Легко управляйте своим роботом с помощью этого приятного интерфейса.
  2. Режим переключателя: этот режимсостоит из одной кнопки, которую вы можете использовать для дистанционного управления переключателем.
  3. Режим диммера: режим диммера может отправлять изменяющиеся значения в Arduino. Очень полезно, когда нужно фиксировать такие данные, например, как яркость и скорость.
  4. Режим терминала. Отправьте свои пользовательские команды в этом режиме и напишите несколько строк кода на вашем Arduino, чтобы декодировать команды.

2. Bluetooth Controller 8 Lamp

Благодаря поддержке модулей Bluetooth HC-05, HC-06 и HC-07, это приложение позволяет контролировать до 8 каналов.

Оно имеет простой пользовательский интерфейс, состоящий из 8 кнопок для соответствующих каналов.

Кнопки также предназначены для одновременного переключения всех каналов. В расширенных руководствах также приводятся примеры кода.

3. BT Voice Control for Arduino

У Arduino недостаточно памяти и вычислительной мощности для эффективного распознавания речи. Что если мы сможем использовать функцию распознавания речи Android для отправки команд на Arduino?

Это именно то, для чего это приложение создано. Оно принимает речевой ввод и отправляет его в Arduino через Bluetooth в виде строки.

4. RemoteXY: Arduino Control

Приложение позволяет управлять Arduino с помощью Bluetooth, Wi-Fi и даже через Ethernet.

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

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

5. Virtuino

Ссылка: Virtuino

Virtuino позволяет визуализировать ваши проекты, как никакое другое приложение. Контролируйте одновременно несколько плат Arduino через Bluetooth, Wi-Fi, Интернет или даже через SMS.

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

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

6. Blynk

Ссылка: Blynk

Благодаря красивому дизайну Blynk позволяет создавать пользовательские интерфейсы для Arduino и управлять ими с помощью USB, ethernet, Wi-Fi и Bluetooth. Совместное использование проектов стало проще, просто поделитесь ссылкой на него.

7. IoT Wifi Controller

UPD: данное приложение с 2020 года не доступно Google Play. На момент редакции статьи приложение было удалено из магазина.

IoT Wifi Controller имеет уникальный интерфейс, который отображает конфигурацию каждого из контактов IO Arduino.

Переключайте значения высокого или низкого уровня GPIO и просматривайте его в режиме реального времени. Также отображается значение ADC. Оно подключается к плате, используя ваш телефон или через маршрутизатор.

Вы нашли для себя в этом списке приложение Android, чтобы контролировать Arduino? Поделитесь своими отзывами и предложениями в комментариях в нашей группе ВКонтакте.

Источник

Добавляем Wi-Fi к Arduino Uno (Андроид)

Подключаем микроконтроллер к Интернету через ,модуль ESP8266 WiFi, который представляет собой полноценную сеть Wi-Fi.

Модуль WIFI ESP8266 представляет собой полноценную сеть Wi-Fi, к которой вы можете легко подключиться в качестве обслуживающего адаптера Wi-Fi, интерфейса беспроводного доступа в Интернет к любому микроконтроллеру на основе простой связи через последовательную связь или интерфейс UART.

Добавление этого модуля в Arduino UNO откроет нам новые и интересные проекты и возможности.

Шаг 1. Схема сборки

Соединение выходов лучше описано в таблице выше. Следуйте этим шагам:

  • соедините красный провод к VIN(3.3V) к +3.3V питанию микроконтроллера
  • соедините черный провод с землей
  • соедините зеленый провод к TX модуля Wi-Fi и микроконтроллера
  • соедините желтый провод к RX модуля Wi-Fi и микроконтроллера
Читайте также:  Asphalt 8 для андроида деньги

ESP8266 строго рассчитан только на 3,3 В. Большее напряжение может разрушить модуль.

Подключите VIN к 3,3 В для включения питания, а также контакт ENABLE, чтобы включить модуль.

TX присоединен к RX, и это означает, что все что мы передаем в ESP8266 получит Arduino UNO. И наоборот, от RX к TX. При построении этой схемы мы теперь готовы к работе WI-FI с Arduino Uno (Ардуино Уно).

Шаг 2. Общение с модулем

Связь с ESP8266 осуществляется с помощью Attention команд или AT Commands. Проверьте таблицу AT-команд, прилагаемую для просмотра кодов.

Шаг 3. Код проекта

Скопировать или скачать код проекта вы можете ниже:

Сам код программы, скетч, для подключения Wi-Fi к Ардуино:

Шаг 4. Настройка платы

Нам нужно проделать некоторые действия для настройки платы:

  1. Загрузите образец эскиза, прикрепленный выше, в ваш Arduino Uno.
  2. Скачайте Telnet Client для Android.
  3. Подключите к вашему ESP8266 Wi-Fi
  4. После подключения получите IP-адрес
  5. Откройте клиент Telnet на телефоне Android.
  6. Создайте соединение, щелкнув соединение, добавьте IP-адрес и порт 80.

После подключения отправьте запрос:

Или включите встроенный светодиод, используя команду:

Или выключите встроенный светодиод, используя команду:

Или просто скажите:

Шаг 5. Объяснение кода

Весь наш запрос будет прочитан и проанализирован в функции loop()

Если вы хотите общаться с Arduino UNO или попросить что-то сделать, просто добавьте свое условие:

Я добавил некоторые функции для связи с ESP8266:

Теперь, когда вы знаете как общаться с ESP8266, вы можете сделать и изучить больше проектов. Увеличьте мощность этого модуля Wi-Fi и станьте полноценным изобретателем.

Источник

Arduino wifi with android

Android wifi is a demo aplication that shows you how to connect and send messages to Arduino via wifi communication , the demo android app is also provided in google play under the link https://play.google.com/store/apps/details?id=com.tofaha.Android_wifi . the communication system based on sever/client communication , in which android app act like client and the arduino program as server.

Android side (Kotlin) :

in the android side the steps to communicate to arduino is very easy , the socket client is used for that , the socket client needs two parameters to find the tareget wifi module the first parameter is the wifi module IP address , and the seconde parameter is the port number , well the first thing you need to do is to open a socket connection , the server side (arduino with wifi module) has to be launched first and then the client (android device) will reach the server by the ip address and port number , you should be aware of where you instanciate the socket because it has to be instanciated in diffrent thread then the UI thread , if you do it in UI thread the app will crash , here sample how to open socket connection inside asyncTask:

Open socket connection

and to send messages to server , you will need printWriter object to write in socket ibject that you already created and the socket will do the rest , here how you can do it :

class SendMessages(msg: String) : AsyncTask () <

and to recieve messages from server , all you need to do is create an instance of bufferReader and pass the socket to it as parameter , and of course you need to do that inside loop with time out as optional , so whenever the server send message the socket object will receive it and bufferdReader will read the message from socket and you write it to the UI thread , here is the code (I used anko library in this code):

to close the connection that what you do : socket.close() method :

class CLoseConnection : AsyncTask ()<

Server Side (Arduino with wifi module)

in the server side I use arduino with wifi module(ESP8266) , well the first thing you need to consider is how to communicate arduino with the module , the communication will be done by the serial communication(Rx/Tx) , arduino board contains UART(Universal Asynchronious Receiver Transmmiter) , and the number of UART that arduino board contain is depend on the type of arduino like arduino uno has only one UART , so we are going to use the library of the serialSoftwar in arduino and by this library we can write and read to serial buffer (Rx/Tx) , after that we attach the Rx and Tx pin to Tx and Rx pin of the ESP8266 , this is how to communicate arduino with ESP8266 :

Communicate arduino with esp module

ESP configuration and setup with AT commands

after the communication is established you now need to configure ESP as you need it to work , and that will be done by the ATcommand , in arduino IDE we will type the ATcommand and write it to the serialSoftware :

Receive messages from client

after the configuration and setup of the ESP now you are ready to send and recieve data from client : to recieve data from client is very easy step , first you need to prepare the server and that will be done in the setup part , after that you write this code inside the loop method :

Читайте также:  Закачать карты для яндекс карты для андроид

Send messages to client

to send data to client , well in this case to establish the client you need communication id , so if there are for exemple 5 client , so you need 5 communication id to send to each client , and in the case there is only one client you can use 0 as the value of the communication id :

Источник

Программирование и передача данных в «Ардуино» по «воздуху» с помощью ESP8266. Часть Третья. Здравствуй, «ANDROID»

Предлагаю вам, уважаемые читатели GeekTimes, очередную статью из цикла по использованию микросхемы ESP8266 в качестве беспроводного моста для AVR микроконтроллеров, на примере аппаратной платформы Arduino Uno (Nano). В этот раз для полета на Луну управления платформой мы задействуем вместо компьютера устройство на базе «ANDROID». Ну, например, смартфон.

Подробности под катом:

Для нашей работы мы воспользуемся инструментарием, который был описан в предыдущей статье — беспроводным программатором BABUINO и модулем передачи кода и данных МPDE (module for programm and data exchange) прошиваемым в ESP8266.

Как выяснилось из откликов пользователей, сам программатор, в общем, пришелся ко двору и некоторые личности даже им успешно пользуются. Ну, в принципе, вещь действительно удобная; запустил приложение под виндой, выбрал hex файл из нужной папки и всё — через несколько секунд программка в нужном устройстве безо всяких проводов. Другое дело, что я зря с излишней горячностью нападал на пользователей софта ARDUINO, пишущих на Wiring C и пользующихся ARDUINO IDE с её скетчами и библиотеками. Безусловно, каждый делает как ему удобно — на ардуинском ли Wiring C или на С из AVR studio. Но в итоге, некоторые пользователи почему-то сразу решили, что программатор никак не совместим с ARDUINO софтом.

На самом деле, проблем с совместимостью, конечно же, никаких нет. Абсолютно также компилируете ваш скетч, где вам удобно до состояния hex файла и совершенно также просто отправляете его через беспроводной программатор на ваш Arduino UNO или NANO.

Обмен данными под софтом ARDUINO тоже никаких проблем не доставляет. Пишете волшебные строчки:

а дальше что-то типа:

receiveByte= Serial.read(); // чтение байта из буфера

Serial.write(receiveByte); // запись байта

И можете обмениваться байтовыми потоками по WI-FI совершенно спокойно. Ибо AVR микроконтроллер шлёт в ESP8266 и получает байты оттуда по последовательному порту UART, настроить работу с которым в Arduino может, как мы видим, любой гуманитарий.

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

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

Ибо при написании Android приложений исходный код пишется на Java, а затем компилируется в стандартный байт-код Java с использованием традиционного инструментария Java. Затем с кодом происходят другие интересные вещи, но эти подробности нам здесь не нужны.

Вроде как, существуют еще возможности для написания приложений на С для отъявленных хардкорщиков ведущих счёт на наносекунды, а также где-то есть какой-то пакет для трансляции вашего кода с Питона, но здесь я ничего подсказать не могу, поскольку уже давно сделал правильный выбор.

Итак, Java и программный пакет Android Studio — интегрированная среда разработки (IDE) для работы с платформой Android основанная на программном обеспечении IntelliJ IDEA от компании JetBrains, официальное средство разработки Android приложений.

Если вы уже работаете с ПО от IntelliJ IDEA, то будете приятно удивлены знакомым интерфейсом.

С основами построения приложений я знакомился по книжке Б.Филлипса и К.Стюарта — «ANDROID» программирование для профессионалов». Как я понял, профессионалами авторы считают читателей, хотя бы немного знакомых с Java SE. Чего-то архи-сложного в этой книге я не нашел, а для наших целей вполне хватит и первого десятка глав книги, благо, что в ней все примеры кода приводятся при работе именно с вышеупомянутой Android Studio.

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

В предыдущей статье было описано управление тележкой через оконное приложение на Windows. То есть весь код для создания HTTP и UDP соединений, а также логика управления у нас уже по идее присутствует. Поэтому взяв на вооружение слоган компании Oracle «Написано в одном месте, работает везде» мы просто перекинем эти классы в новую программу уже для Android приложения. А вот GUI — графический интерфейс пользователя, по понятным причинам придется оставить там, где он был. Но с другой стороны, на Android всё делается очень похоже и довольно быстро, поэтому в накладе мы не останемся.

ТЫКАЕМ ПАЛЬЦЕМ В ЭКРАН

Итак создаем новый проект «FourWheelRobotControl» в Android Studio.
Это простое приложение и оно будет состоять из активности (activity)

Читайте также:  Timelapse камера для андроид

Его писать ручками не надо, он генерится автоматически после ваших творений в редакторе.

Теперь просто перенесём два класса из программы приведенной в предыдущей статье:

Суть программы осталось той же. MainActivity сначала запускает HTTP и UDP клиенты, а затем ловит нажатия и отжатия экранных кнопок, отправляя код нажатия direction на формирование UDP пакета. А оттуда уже всё — «вперёд»,«назад»,«влево», «вправо» и при отжатии «стоп» уезжают по WI-FI на телегу.

Кроме всего этого, мы должны немного подредактировать файл так называемого манифеста, который опять же, в основном генерится сам.

Манифест (manifest) представляет собой файл XML с метаданными, описывающими ваше приложение для ОС Android. Файл манифеста всегда называется AndroidManifest.xml и располагается в каталоге app/manifest вашего проекта.

Правда там нам работы совсем немного.

запрещаем повороты экрана:

разрешаем работу в интернет:

И вот он весь полностью.

При запуске мы должны увидеть что-то вроде:

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

С другой стороны, управление при помощи экранных кнопок это то же самое,

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

И Веня Ерофеев в этом был прав, безусловно.

Гораздо интереснее, к примеру, рулить телегой при помощи штатных акселерометров того же смартфона.

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

АКСЕЛЕРОМЕТР В МАССЫ

Поэтому наш код в MainActivity (и только в нём) изменится минимально.

Добавим переменные для акселерометра:

Получим сам датчик от системы и зарегистрируем его как слушатель.

Имплементируем сам интерфейс слушателя:

И пропишем четыре обязательных метода из которых воспользуемся только последним. Методом, отрабатывающим при изменении показаний акселерометра. Вообще-то, я хотел акселерометр сам опрашивать, как обычную периферию с периодом около 100 мс, так как было подозрение (из-за названия onChanged), что метод отрабатывает слишком часто. Но там всё private и фиг за интерфейсы проберёшься.

Программа выводит показания датчиков по двум осям на экран смартфона. Вместо третьей оси, которая не используется, выводится переменная направления «direction». И эти же данные бегут в виде байтового потока на тележку. Правда, из-за того, что поток чисто байтовый, определить, где команда «вперед» или «стоп» было бы затруднительно. Поэтому я поступил просто: каждому направлению и углу наклона соответствует свой диапазон чисел. Грубо говоря 1-20 это «вперёд» с соответствующей скоростью, 21-40 это «назад» и так далее. Конечно, можно было бы передавать по UDP чисто данные, а сами управляющие команды задавать через TCP протокол и это было бы безусловно правильнее. Но для это надо редактировать программу на самой ESP8266, чего мне пока не хочется.

Итак, телега катается по квартире, чутко реагируя на наклоны моего GalaxyS7, но и это как говаривал небезызвестный Веня ещё не то.

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

В наш век Сири и Алексы, чего-то там вертеть руками? Пусть слушается голосового управления!

А ТЕПЕРЬ СЛУШАЙ МЕНЯ!

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

На самом деле же, у меня всё получилось довольно коряво, но скорее всего потому, что я использовал самый простой вариант, а как следует в данном API не копался. Делается всё тоже через интенты, при помощи которых мы обращаемся к голосовому движку Гугл, а именно к его функции распознавания речи. Поэтому потребуется рабочий Интернет.

Опять меняется лишь MainActivity.java, хотя я еще немного изменил и сам макет (четыре кнопки теперь там вовсе ни к чему, хватит и одной).

В MainActivity.java добавилось следующее:

Тот самый интент:

И то, что он возвращает:

А возвращает он массив похожих слов, причем в довольно “мусорной форме», со всякими скобочками и запятыми. И вам лишь остается выбрать слово похожее на то, которое вы сказали. Ну и соответственно, если попалось слово «вперёд», то едем вперёд, если «направо» то направо и так далее. Конечно, надо учитывать, где через «Ё», где запятая лишняя прицепится (скобочки-то я отрезал, а вот на запятые сил уже не хватило).

Ну и до кучи макет c одной кнопкой

Самое удивительное, что действительно ездиет и слушается голоса (как правило). Но, конечно, интерфейс тормозной; пока скажете, пока распознается и вернётся; короче скорость движения выбирайте заранее небольшую или помещение наоборот поширше.

На этом на сегодня всё, буду рад, если понравилось.

Источник

Оцените статью