Урок 6. Считываем информацию с Arduino. Связываем Arduino и телефон на Android через Bluetooth.

  Переглядів 3,037

Astar Channel

Astar Channel

5 років тому

#android #java #arduino #bluetooth
Продолжаем предыдущий урок, в котором мы реализуем считывание данных с Arduino. Для этого в Java мы воспользуемся классом InputStream вместе с классом BufferedInputStream.
Bluetooth модуль HC-06 goo.gl/VHhNXi
Arduino UNO goo.gl/aiN1D8
Arduino NANO goo.gl/mWuTVZ
Проект Android Studio в ZIP-архиве goo.gl/XmoioS
Скетч к проекту из видеоурока goo.gl/ZrC1Se
Android Studio скачать goo.gl/kJbNkt
Для тех кто хочет помочь финансово
Yandex.Деньги: 410012064564580
Заранее огромное спасибо =)
Ссылка на проект Android Studio в ZIP-архиве goo.gl/5GU15k

КОМЕНТАРІ: 40
@s1aw1ck
@s1aw1ck 5 років тому
Отличный курс) Подписка! :-)
@user-il2bm7bj3n
@user-il2bm7bj3n 3 роки тому
Спасибо! Очень помог!
@demosthenes4276
@demosthenes4276 5 років тому
спасибо за ролик и за код. У меня всё раборает!
@AsTaR75256
@AsTaR75256 5 років тому
Спасибо за отзыв. Скоро выпущу продолжение. Тема будет про получение информации с датчиков и построение графиков по этим данным
@user-hm4yd4ml3m
@user-hm4yd4ml3m 2 роки тому
конечно видео уже старые, но помогли, большое спасибо!!!
@AsTaR75256
@AsTaR75256 2 роки тому
спасибо за отзыв
@MihailNikolayevich
@MihailNikolayevich 5 років тому
спасибо! Я так не умею, быстро и без ошибок.
@AsTaR75256
@AsTaR75256 5 років тому
Спасибо за отзыв. Поверьте, я тоже не умею быстро и без ошибок) А выиграл за счёт небольшой подготовки к уроку)
@MihailNikolayevich
@MihailNikolayevich 5 років тому
Вот классно было бы сделать фреймик что бы в нем менять пароль и имя hc-05/06 модуля. только там в конце r/n/ идут а в начале AT. Одного символа конца - # уже не достаточно. Я нечто подобное сделал в mit AppInventor - андроид, и algorithm builder - avr, привык уже к ним но решил соскочить из-за бесперспективности. Пока что тяжело идет. Все на уровне повторения кода с ютуб.
@AsTaR75256
@AsTaR75256 5 років тому
Я вас понял. Да, задумка конечно интересная. Можете связаться со мной в ВК? vk.com/d.astar
@MihailNikolayevich
@MihailNikolayevich 5 років тому
@@AsTaR75256 пробовал зарегиться в вк, трудно это, с vpn заморачиваться , и паспорт свой зачемто им передавать.
@AsTaR75256
@AsTaR75256 5 років тому
@@MihailNikolayevich хах. Серьезно? А телеграмм?
@MihailNikolayevich
@MihailNikolayevich 5 років тому
Astar75 помоги, хотел кнопку очистки консоли , но понял что не достаточно очистить EditText, в StringBuffer остается все, а когда приходит новая строка то все вываливается в EditText старое+новая. Как получить доступ из слушателя onClick(View v) к StringBuffer что бы очистить его? Или я че-то не так понимаю?
@AsTaR75256
@AsTaR75256 5 років тому
Объявите StringBuffer переменную как глобальную и вызывайте метод delete(0, sb.size())
@MihailNikolayevich
@MihailNikolayevich 5 років тому
@@AsTaR75256 Спасибо! заработала кнопка!
@user-fz5cj5nv7d
@user-fz5cj5nv7d 5 років тому
​@@MihailNikolayevich​, можешь кинуть кусочек кода как ты это реализовал?
@AsTaR75256
@AsTaR75256 5 років тому
Очищаете StringBuffer и всё
@user-fz5cj5nv7d
@user-fz5cj5nv7d 5 років тому
@@AsTaR75256 уже несколько дней пробую но никак не получается. Может помочь?
@rukerwilson6410
@rukerwilson6410 3 роки тому
Здравствуте, а можете подсказать как сделать, чтобы принимаемое с arduino сообщение - sbConsole.toString() или lastSensorValues окрашивалось в зависимости от содержания этого сообщения? То есть, если сообщение RED, то оно должно окрашиваться в красный, если GREEN, то в зелёный. Я пытался реализовать это при помощи оператора сравнения, но у меня почему-то не получается(всегда красный): s2 = buffer.toString(); @Override public void run() { if(s2.equals("GREEN")){ text1.setTextColor(GREEN);} else{ text1.setTextColor(RED); }
@AsTaR75256
@AsTaR75256 3 роки тому
Ну самое первое на что я обратил внимание, что ты пытаешься обратиться к элементам UI из стороннего потока. Используй для этого метод runOnUiThread(). Второе, мне не понятно что лежит в GREEN и RED. Если они у тебя заранее определены, тогда ок или же лучше используй Color.RED и Color.GREEN соответственно. Для сравнения строк лучше использовать метод equalsIgnoreCase() если регистр не столько важен. Как мне ещё может показаться что в sbConsole у тебя может содержаться не только RED или GREEN значения но и другие символы, потому у тебя equals() не работает
@rukerwilson6410
@rukerwilson6410 3 роки тому
@@AsTaR75256 Код приведенный выше находится уже внутри runOnUiThread(), GREEN и RED определены через import static android.graphics.Color.GREEN; import static android.graphics.Color.RED; ,за место sbConsole у себя я использую строку, которая называется s2. Я также забыл упомянуть, что её я помещаю в TextView - text1 вот таким образом text1.setText(s2) и поэтому у меня отображается содержимое(других символов, кроме GREEN или RED там нету). Попробовал использовать equalsIgnoreCase() не помогло
@AsTaR75256
@AsTaR75256 3 роки тому
Ну вот сначала тебе надо разобраться почему тебе не приходят строки содержащие значение GREEN. Пройдись дебаггером по коду
@rukerwilson6410
@rukerwilson6410 3 роки тому
@@AsTaR75256 НЕТ Строка GREEN мне как раз таки приходит, она отображается у меня в TextView. Может быть вы попробуете реализовать подобное у себя? Чтобы при нажатии кнопки, arduino присылала вам название цвета, а само это название окрашивалось в TextView в этот цвет?)
@AsTaR75256
@AsTaR75256 3 роки тому
@@rukerwilson6410 ну так я же в первом ответе на твой комментарий говорил почему не работает ) И что мешает пройтись дебаггером по коду и посмотреть что находится у тебя в переменной s2? Цитата: >> Как мне ещё может показаться что в sbConsole у тебя может содержаться не только RED или GREEN значения но и другие символы, потому у тебя equals() не работает. Наверняка у тебя в конце строки в s2 содержится символ переноса строки, а через equals("GREEN") ты просто проверяешь совпадает ли твоя строка s2 со строкой "GREEN". Короче говоря "GREEN " != "GREEN" )) В таком случае как альтернативу используй startsWith() или contains() startsWith() - проверяет вхождение последовательности символов сначала строки или с указанной позиции contains() - проверяет вхождение последовательности символов в строке
@friji_5823
@friji_5823 4 роки тому
В описании оставлена ссылка на файл из 5 урока.Можете отправить ссылку на 6 урок очень нужно. Спасиюо
@AsTaR75256
@AsTaR75256 4 роки тому
Ссылка на весь плейлист "Arduino и Bluetooth (ПЕРЕЗАЛИВ)": ukposts.info/slow/PLUuqYwe8e-mZajv11iD_vljp5FB11aYmK
@friji_5823
@friji_5823 4 роки тому
@@AsTaR75256 Я про, то что если перейти в описание и в разделе проект Android studio , то сслка ведёт на файл из 5 урока
@AsTaR75256
@AsTaR75256 4 роки тому
drive.google.com/file/d/1lhrF3OJOamhG_yQ-GAXibm8bro0bjv7S/view?usp=drivesdk drive.google.com/file/d/19k6IEskS3J8uL1ATlJilGxp7URPLlgBF/view?usp=drivesdk
@friji_5823
@friji_5823 4 роки тому
@@AsTaR75256 Огромное спасибо!
@friji_5823
@friji_5823 4 роки тому
@@AsTaR75256 Единственный человек , который отвечает на комментарии , а не игнорит их. Спасибо за уроки и за вашу помощь.
@molluk
@molluk 2 роки тому
"-И снова прямая линия с... Нет, не с Путиным, не угадали" долго смеялся :D
@AsTaR75256
@AsTaR75256 2 роки тому
Надо возобновлять трансляции) а то те весь эфир заполонили
@molluk
@molluk 2 роки тому
@@AsTaR75256 Подскажи пожалуйста, при приеме данных с микроконтроллера, теряются байты либо они просто не отображаются/записываются. К примеру, при получении байтов я должен на экране увидеть "D1 03 00 E7", а мне выводит: "D1 30 E7", по пути к выводу на экран он теряет три нуля. Т.е. по факту вывод идет с пропуском байтов "D1 _3 __ E7" где '_' он пропускает 0 Помоги пожалуйста если знаешь в чем может быть причина
@molluk
@molluk 2 роки тому
тестировал через стороннюю программу, там все отображается корректно
@AsTaR75256
@AsTaR75256 2 роки тому
В таком случае нужно сделать что типа начала и конца пакета с данными. Начинай читать данные только тогда, как найдешь начальный байт, и заканчивай чтение когда встретишь конечный байт
Старейшая нерешённая задача [Veritasium]
30:08
ДРУГА РЕПЕТИЦІЯ alyona alyona та Jerry Heil на сцені Євробачення-2024
00:34
Євробачення Україна | Eurovision Ukraine official
Переглядів 94 тис.
Работа с Coze используя рабочие процессы
19:09
Руслан Провоторов
Переглядів 6 тис.
Redux Toolkit для управления состоянием в React-приложении
1:00:09
Михаил Непомнящий
Переглядів 186 тис.
Уроки Ардуино. ПИД регулятор
28:57
Заметки Ардуинщика
Переглядів 446 тис.
Docker за 20 минут
21:42
suchkov tech
Переглядів 23 тис.
КАК РАБОТАЮТ СОРТИРОВКИ | АЛГОРИТМЫ
23:41
Урок 9. Bluetooth LE. ESP-32. Android.
34:14
Astar Channel
Переглядів 3,2 тис.
ДРУГА РЕПЕТИЦІЯ alyona alyona та Jerry Heil на сцені Євробачення-2024
00:34
Євробачення Україна | Eurovision Ukraine official
Переглядів 94 тис.