esp8266 приложение для андроид

Esp8266 приложение для андроид

Краткое описание:
Мобильное приложение для IOT.

Blynk это украинский стартап успешно запущен на Kickstarter.

Создавайте классные интерфейсы для своих проектов добавляя различные виджеты, такие как: кнопки: ползунки, графики, терминал и многие многие другие!

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

Все очень просто! Как 1-2-3:
1. Добавьте и настройте виджеты за несколько прикосновений
2. Загрузите программу с библиотекой Blynk на свое железо
3. Готово!

Blynk подходит для любых проектов: мигание LED-ами, отображение температуры по собственной метеостанции, управления игрушками и работами и даже домашняя автоматизация!

Платы расширения и способы соединения:
• USB, подключенный к ноутбуку или ПК
• Ethernet shield (W5100)
• Adafruit CC3000 WiFi
• Official Arduino WiFi shield
• ENC28J60
• RN-XV WiFly

И этот список постоянно дополняется. Вы также можете модифицировать библиотеку, ее код в открытом доступе (Open Source).
Полный список аппаратуры:
http://community.blynk…-supported-by-blynk/16

В библиотеке много примеров, которые помогут начать строить Ваш Интернет Вещей (IoT), без разницы профессионал вы или любитель.

Вы можете использовать бесплатный Blynk Cloud, или запустить собственный сервер Blynk в минуту и получить полный контроль над своими данными (детали на сайте). Сервер можно запустить даже на Raspberry Pi!

Требуется Android: 4.2 и выше
Русский интерфейс: Нет

Поддерживаемое оборудование
Исправление проблем
Безопасность
Blynk сервер
Blynk Firmware
Вопросы-Ответы
Лицензия
Этот проект выпущен под лицензией MIT (MIT)

Скачать библиотеку: версия: 0.6.1
EUUuusiCY99gX9jSRdlNSGh1cKX6JY20V4KVQoEMMbQdo03H3CEJJAo4gYYGBlynk_Release_v0.6.1.zip ( 672.9 КБ )

Скачать сервер: версия: 0.41.5

Источник

ESP8266 Android приложение для управления цифровыми выводами Arduino и мигания светодиодами

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

Код Arduino

Код ниже работает со всеми номерами выводов, но не использует выводы 0-3, поскольку они используются для последовательной связи с компьютером и ESP8266. Кроме того, для получения данных от ESP8266 и/или для отладки просто откройте окно монитора последовательного порта в Arduino IDE.

Код Android приложения

Код Android приложения, приведенный ниже, был скомпилирован с помощью Android Studio и должен работать на Android устройствах с операционной системой Android 2.2 и выше.

Файл активности

Файл активности обрабатывает взаимодействие пользователя с UI (пользовательским интерфейсом). Когда нажимается кнопка, IP адрес и номер порта сохраняются, поэтому вам не нужно набирать их снова, затем по IP адресу отправляется HTTP запрос с заданными параметром pin и значение вывода.

Файл макета

Этот файл просто создает пользовательский интерфейс (кнопки и поля ввода с подсказками).

Файл манифеста

Единственное изменение, которое я должен был внести в файл манифеста, – это добавить разрешение работы с интернетом для работы с HTTP запросами.

Вот и всё! Надеюсь, статья оказалась полезной. Оставляйте комментарии!

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.

noavatar92

Добрый день! А ка можно ли подключить несколько wifi модулей?

noavatar92

Доброго вечера — спустя неделю гугления — вот что наделал=(( Естественно сам — мало что делал.
Теперь осталось доделать код ардуино. Хотябы пример для подключения — приема и отправки:
drive.google.com/file/d/1N1.
Это андроид студио.
private final String BASE_ADDRESS = «127.0.0.1:8080/»;
private final String VOLUME_INCREASE = «volume_increase»;
private final String VOLUME_DECREASE = «volume_decrease»;
private final String DEVICE_ON = «device_on»;
private final String DEVICE_OFF = «device_off»;
private final String TIMER_INCREASE = «timer_increase»;
private final String TIMER_DECREASE = «timer_decrease»;
private final String GET_STATE = «state»;

обработку необходимо реализовать в МК

ответ от МК всегда один, в виде Json:

final JSONObject jsonObject = new JSONObject(source);

final FirePlace firePlace = new FirePlace();
firePlace.setVolume(jsonObject.getInt(«volume»));
firePlace.setOn(jsonObject.getBoolean(«on»));
firePlace.setTime(jsonObject.getLong(«time»));
Есть возможность помочь?

noavatar92

noavatar92

Помогите пожалуйста разобраться?

noavatar92

noavatar92

noavatar92

А можно ли обозначить Ip и порт
и вписать его в код?

noavatar92

Разобрался. Но теперь в коде перечеркнуты методы связанные с http:
HttpClient httpclient = new DefaultHttpClient(); // создать HTTP клиента
// установить URL, например, http://myIpaddress:myport/?pin=13 (например, переключить вывод 13)
URI website = new URI(«http://»+ipAddress+»:»+portNumber+»/?»+parameterName+»=»+parameterValue);
HttpGet getRequest = new HttpGet(); // создать объект HTTP GET
getRequest.setURI(website); // установить URL для GET запроса
HttpResponse response = httpclient.execute(getRequest); // выполнить запрос
// получить ответ сервера с заданным ip адресом
InputStream content = null;
content = response.getEntity().getContent();
BufferedReader in = new BufferedReader(new InputStreamReader(

noavatar92

не могу добавить:
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
Показано серым фоном. И последние строки обьявлены красным цветом

noavatar92

Про поддержку в разных версиях информация была со stackoverflow. Возможно есть неточности.
Второй вариант не пробовали, с useLibrary?
Вот содержимое файла app/build.gradle. Всё нормально собирается под минимальную версию 25 (стрелкой обозначил строку, которую добавил).

avatar92

Удалось решить проблему? использую версию 21, но те же ошибки.

noavatar92

Эти модули больше не поддерживаются, начиная с версии sdk 23.
Поэтому есть два варианта:
1) либо использовать версию 22;
2) либо в файле проекта app/build.gradle в секцию android добавить строку
useLibrary ‘org.apache.http.legacy’

noavatar92

Android Studio дает ошибки на
package com.allaboutee.httphelper;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
я не силен в андройд студио
подскажите как добавить эти файлы

noavatar92

avatar92

изменил скорость работы ESP

тоесть я могу изменить код из данной статьи на работу с точкой доступа AT+CWMODE=2 3
И остальная логика будет дальше работать? по подключению и управлению пинами с телефона

noavatar92

Используете аппаратный UART или изменили скорость на ESP?

avatar92

А что нужно сделать чтобы ардуино с модулем выступали точкой доступа, а далее подключившись к ней можно было управлять с android приложения
Подвижки в отсутствии белеберды в ответа от модуля

noavatar92

А в чем именно подвижки?

1) в статье http://radioprog.ru/post/211 есть возможность использовать для ESP и аппаратный, и программный UART порты. Подправил в ней комментарии к коду. Сейчас для связи с ESP используется аппаратный порт, а отладка (использование аппаратного порта для связи с компьютером) выключена.
#define DEBUG 0 // если вы для связи с ESP используете аппаратный последовательный порт, измените значение на 0
Тут то же самое
#define esp8266_Available() Serial.available() //esp8266.available()
Если в коде встречается esp8266_Available(), оно заменяется на Serial.available(). То есть везде используется аппаратный порт.
И чтобы не слать в ESP текст, добавленный для отладки, проверяем значение DEBUG, заданное ранее:
if (DEBUG == true)
Serial.println(«Server Ready»);

2) Скорее всего опечатка в комментариях, перешедшая из одной статьи в другую. Настраивается клиентский режим. В http://radioprog.ru/post/211 об этом и говорится: «В исходнике вы найдете часть кода, которая устанавливает модуля с вашим роутером. «.

avatar92

avatar92

Подвижки есть, спасибо. Появились новые вопросы:
1) из статьи http://radioprog.ru/post/211
#include

// Делает RX линию Arduino выводом 2, а TX линию Arduino выводом 3.
// Это означает, что вам необходимо подключить TX линию от ESP к выводу 2 Arduino,
// а RX линию от ESP к выводу 3 Arduino.
SoftwareSerial esp8266(2, 3);

2)
// настроить как точку доступа
sendCommand(«AT+CWMODE=1\r\n», 1000, DEBUG);
1-клиентский режим насколько я знаю
2-точка доступа
3-точка доступа + клиентский режим

Теперь я запутался

noavatar92

avatar92

преобразователей логических уровней нет(
на ардуино 115200 выставляю
прописываю программный посл.порт
вот схема что использую
хочу хоть с телефона диодом поморгать (
https://uploads.disquscdn.c.
tx rx тут для проверки модуля стоят

noavatar92

Третий вариант. Какой порт используете на Arduino: аппаратный или программный? Отсюда http://radioprog.ru/post/211
«Многие люди (включая меня) сообщают о проблемах с программным последовательным портом при высоких скоростях передачи – как на тех, что мы будем использовать с esp8266, 115200 бит/с. Я могу сказать, что у вас 50% принятых от модуля данных будет повреждено, если вы используете программный UART, а из переданных от Arduino к модулю данных почти 100% будет корректно. Я получил эти результаты после отслеживания сигналов на линиях RX и TX.»

avatar92

либо вылетает такое чудо, видно Fail Fail а позже Server ready, но адреса так и не видно, да и не подключился бы(наверное)
Подскажите пожалуйста чего нибудь
https://uploads.disquscdn.c.

avatar92

noavatar92

avatar92

подскажите прошивку для esp8266 01 пожалуйста
А также можно ли схему подключения?

Источник

Управляем esp8266 c android устройств

alexhi

Member

Решил поделиться своими приложениями под Андроид для тестирования и управления модулем esp8266 с Андроид. Они могут пригодиться когда комп по каким то причинам не очень удобно использовать или лень таскать как мне
Управление модулем esp8266 по COM порту AT-командами
Поддерживаются устройства и переходники USB-COM на чипах FT232RL(FTDI), CP2102(Silicon Lab), PL2303(PROLIFIC).
Андроид планшет должен иметь USB-HOST и версию не ниже 3.1. и разрешенные пермишены.
Если не работает,читаем что надо сделать.
https://play.google.com/store/apps/details?id=ru.shipov.termusb&hl=ru

Управление по TCP (TCP клиент)
Cоздаем на модуле TCP сервер подключаемся к модулю по WIFI сети и начинаем управлять модулем командами.
https://play.google.com/store/search?q=TermTCP&c=apps&hl=ru

Управление по UDP (UDP клиент)
Cоздаем на модуле UDP сервер подключаемся к модулю по WIFI сети и начинаем управлять модулем командами.
https://play.google.com/store/search?q=TermUDP&c=apps&hl=ru

Новая версия UDP клиента с возможностью записи макросов. Прогу делал под недавний проект, если не сложно отпишитесь что и как.
Внешний вид:

newmain

Создаем мост UDP COM на модуле:
void init_wifi(void)
<

//настроим UDP сервер на порту 7777
printf_P(PSTR(«AT+RST\r\n»));
printf_P(PSTR(«AT+CIPMUX=1\r\n»));
_delay_ms(1000);
printf_P(PSTR(«AT+CIPSERVER=1,7777\r\n»));
_delay_ms(1000);
printf_P(PSTR(«AT+CIPMUX=0\r\n»));
_delay_ms(1000);
printf_P(PSTR(«AT+CIPSTART=\»UDP\»,\»192.168.0.255\»,7777\r\n»));
_delay_ms(1000);
printf_P(PSTR(«AT+CIFSR\r\n»));
_delay_ms(1000);

>
При этом создается мост между UDP портом 7777 модуля, и uart портом. Короче все что приходит по UDP попадает в контроллер, а что отсылается в uart отсылается по UDP.
Далее все просто посылаем команду с Андроид терминала TepmUDP «!GetC» и получаем ответ на Андроид с температурой: «!TEMP +28» или включаем реле «!SetR1» ответ реле «RELEON»

Вот как отрабатываются команды в контроллере:

//получить температуру
if(!memcmp_P(uart_rx_buf, PSTR(«GetC»),4))

Источник

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

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

image loader

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

Для нашей работы мы воспользуемся инструментарием, который был описан в предыдущей статье — беспроводным программатором 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 приложений.

image loader

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

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

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

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

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

yheckwfcoqj3p01duei5y84mcle

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

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

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

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

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

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

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

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

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

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

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

image loader

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

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

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

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

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

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

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

n5tr nioum4avgw97qqcsqm63zi

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

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

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

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

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

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

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

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

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

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

lq2ywi0undiqsci5pf5rc2bkwqk

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

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

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

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

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

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

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

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

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

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • esim билайн подключить через приложение
  • esf gov kz счет фактура