Отправка и получение данных с помощью приложения Android, Arduino и модуля Wi-Fi esp8266Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Отправка и получение данных с помощью приложения Android, Arduino и модуля Wi-Fi esp8266

Сообщение Anonymous »


Я застрял с ними на несколько дней, я использую приложение для Android для управления двигателями, подключенными к Arduino Uno, я могу установить соединение и отправить данные, но проблема в том, что у него есть ограничение на то, сколько он может реагирует на нажатие кнопки и иногда не может точно выполнить команду. Это коды для ардуино

void цикл() { if(esp8266.available()) // проверяем, отправляет ли esp сообщение { Serial.println("Что-то получено"); задержка(50); if(esp8266.find("+IPD,")) { Струнное действие; Serial.println("+IPD, найден"); int ConnectionId = esp8266.read()-48; // вычитаем 48, потому что функция read() возвращает // десятичное значение ASCII и 0 (первое десятичное число) начинаются с 48 Serial.println("connectionId: " + String(connectionId)); esp8266.find("мотор="); char s = esp8266.read(); задержка(50); //верно если(s=='1'){ action = "Мотор поворачивает направо"; цифровая запись (5, ВЫСОКИЙ); цифровая запись (6, НИЗКИЙ); цифровая запись (9, НИЗКИЙ); цифровая запись (10, ВЫСОКИЙ); } иначе если(s=='0'){ action = «Двигатель останавливается»; цифровая запись (5, НИЗКИЙ); цифровая запись (6, НИЗКИЙ); цифровая запись (9, НИЗКИЙ); цифровая запись (10, НИЗКИЙ); } //левый иначе если(s=='2'){ action = "Мотор поворачивает налево"; цифровая запись (5, НИЗКИЙ); цифроваяЗапись(6,ВЫСОКИЙ); цифровая запись (9, ВЫСОКИЙ); цифровая запись (10, НИЗКИЙ); } //вперед иначе если(s=='3'){ action = "Мотор движется вперед"; цифровая запись (5, ВЫСОКИЙ); цифровая запись (6, НИЗКИЙ); цифровая запись (9, ВЫСОКИЙ); цифровая запись (10, НИЗКИЙ); } //назад иначе если(s=='4'){ action = "Мотор движется назад"; цифровая запись (5, НИЗКИЙ); цифроваяЗапись(6,ВЫСОКИЙ); цифровая запись (9, НИЗКИЙ); цифровая запись (10, ВЫСОКИЙ); } еще{ action = "Попробуйте другую команду"; } Serial.println(действие); sendHTTPResponse (connectionId, действие); } } } void sendHTTPResponse (int id, строковое содержимое) { Строковый ответ; ответ = "HTTP/1.1 200 OK\r\n"; ответ += "Тип контента: текст/html; кодировка = UTF-8\r\n"; ответ += "Длина контента: "; ответ += content.length(); ответ += "\r\n"; ответ +="Соединение: закрыть\r\n\r\n"; ответ += контент; Строка cmd = "AT+CIPSEND="; cmd += идентификатор; cmd += ","; cmd += ответ.длина(); Serial.println("--- AT+CIPSEND ---"); sendESP8266Cmdln(cmd, 50); Serial.println("--- данные ---"); sendESP8266Data (ответ, 50); } void sendESP8266Cmdln (String cmd, int waitTime) { esp8266.println(cmd); задержка (время ожидания); ОчиститьESP8266SerialBuffer(); } void sendESP8266Data (строковые данные, int waitTime) { esp8266.print(данные); задержка (время ожидания); ОчиститьESP8266SerialBuffer(); } void ClearESP8266SerialBuffer() { Serial.println("=clearESP8266SerialBuffer() ="); в то время как (esp8266.available() > 0) { char a = esp8266.read(); Serial.write(а); } Serial.println("=============================="); } Это коды для Android

публичный класс FeedTask расширяет AsyncTask { @Override защищенная строка doInBackground(String... параметры) { пытаться { //изменяем IP на IP, который вы установили в ARDUINO URL URL = новый URL("http://192.168.254.101/?" + параметры[0]); Соединение HttpURLConnection = (HttpURLConnection) url.openConnection(); BufferedReader in = новый BufferedReader (новый InputStreamReader (connection.getInputStream ())); Результат StringBuilder = новый StringBuilder(); Строка inputLine; while ((inputLine = in.readLine()) != null) result.append(inputLine).append("\n"); в.закрыть(); соединение.отключить(); вернуть результат.toString(); } catch (IOException e) { е.printStackTrace(); } вернуть ноль; } } общественное недействительное движение () { Кнопка вправо = (Кнопка) findViewById(R.id.button_right); Кнопка слева = (Кнопка) findViewById(R.id.button_left); Кнопка вперед = (Кнопка) findViewById(R.id.button_forward); Кнопка назад = (Кнопка) findViewById(R.id.button_backward); Кнопкаled_on = (Кнопка) findViewById(R.id.led_on); Кнопкаled_off = (Кнопка) findViewById(R.id.led_off); right.setOnTouchListener(новый OnTouchListener() { @Override public boolean onTouch(View v, событие MotionEvent) { если (event.getAction() == MotionEvent.ACTION_DOWN) { TextView text = (TextView) findViewById(R.id.textView); text.setText("Верно"); новый FeedTask().execute("мотор=1"); } else if (event.getAction() == MotionEvent.ACTION_UP) { TextView text = (TextView) findViewById(R.id.textView); text.setText("Нажмите еще раз"); новый FeedTask().execute("двигатель=0"); } вернуть истину; } }); Я также работаю над отправкой данных с помощью Arduino обратно на Android, но из-за этих ошибок я не могу продолжить. Я читал, что существует ограничение на то, сколько HTML может обрабатывать или около того, я не копаю слишком глубоко в этом вопросе. Ошибки, которые у меня возникают при просмотре последовательных окон, - это «Принять-кодирование gzip», а иногда застревать с «что-то полученным» и не реагировать ни на какие кнопки, нажимаемые позже.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отправка и получение данных с помощью приложения Android, Arduino и модуля Wi-Fi esp8266
    Anonymous » » в форуме Android
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Отправка и получение данных с использованием Android Application, Arduino и ESP8266 WiFi модуль
    Anonymous » » в форуме Android
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Отправка данных с помощью ESP8266 и получение с помощью Django
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Arduino-esp8266 использовать с C# вместо приложения RemoteXY [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • ESP8266 Arduino — комбинированное событие двух кнопок
    Anonymous » » в форуме C++
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»