Android-приложение для управления RGB-светодиодом с Arduino и Bluetooth
В этом проекте вы создадите Android-приложение для управления цветом RGB-светодиода со смартфона через Bluetooth.
Вы будете создавать Android-приложение с помощью бесплатного веб-приложения MIT App Inventor 2. Это отличный проект, чтобы научиться взаимодействию Arduino со смартфоном.
Если вы не знакомы с RGB-светодиодами, прочитайте следующий пост: Как работают RGB-светодиоды?
Скачать Android Apps for Arduino with MIT App Inventor 2
Необходимые компоненты
Вот полный список компонентов, необходимых для этого проекта:
Arduino UNO – читайте Лучшие стартовые наборы Arduino
RGB-светодиод (с общим анодом)
Кроме того, вам также понадобится смартфон с Bluetooth.
Вы можете использовать ссылки выше или перейти непосредственно на MakerAdvisor.com/tools, чтобы найти все компоненты для ваших проектов по лучшей цене!
Создание Android-приложения
Android-приложение будет создано с помощью бесплатного веб-приложения MIT App Inventor. MIT App Inventor – отличное место для начала разработки под Android, поскольку он позволяет создавать простые приложения методом перетаскивания (drag-n-drop).
Для регистрации в MIT App Inventor вам нужна учетная запись Google, а вот страница входа: http://ai2.appinventor.mit.edu.
После входа перейдите в Projects > Import project (.aia) from my computer и загрузите файл .aia. Нажмите здесь, чтобы скачать файл .aia.
После загрузки файла .aia вы увидите приложение в программе MIT App Inventor.
Designer (Дизайнер)
В MIT App Inventor есть 2 основных раздела: designer (дизайнер) и blocks (блоки).
Дизайнер – это то, что позволяет добавлять кнопки, текст, экраны и редактировать общий внешний вид приложения. В программе App Inventor приложение выглядит так:
Приложение выглядит по-разному в программе и на вашем смартфоне. Вот как приложение выглядит на нашем смартфоне:
Blocks (Блоки)
Затем есть раздел блоков. Раздел блоков позволяет создавать пользовательскую функциональность для вашего приложения, чтобы при нажатии кнопок приложение действительно что-то делало с этой информацией. Вот блоки для этого приложения (нажмите на изображение для увеличения):
Установка приложения
Чтобы установить приложение на смартфон, перейдите на вкладку Build.
Вы можете сгенерировать QR-код, который можно отсканировать смартфоном, и приложение автоматически установится на ваш смартфон.
Или вы можете скачать файл .apk, подключить смартфон к компьютеру и перенести файл .apk на телефон.
Просто следуйте мастеру установки, чтобы установить приложение, и готово!
Код
Скачайте или скопируйте следующий код в Arduino IDE и загрузите его на плату Arduino. Убедитесь, что вы выбрали правильную плату и COM-порт.
Примечание: перед загрузкой кода убедитесь, что контакты TX и RX отключены от Bluetooth-модуля!
/*
* Rui Santos
* Complete Project Details https://randomnerdtutorials.com
*/
#define max_char 12
char message[max_char]; // stores you message
char r_char; // reads each character
byte index = 0; // defines the position into your array
int i;
int redPin = 11; // Red RGB pin -> D11
int greenPin = 10; // Green RGB pin -> D10
int bluePin = 9; // Blue RGB pin -> D9
int redValue = 255; // Red RGB pin -> D11
int greenValue = 255; // Green RGB pin -> D10
int blueValue = 255; // Blue RGB pin -> D9
String redTempValue; // Red RGB pin -> D11
String greenTempValue; // Green RGB pin -> D10
String blueTempValue; // Blue RGB pin -> D9
int flag = 0;
char currentColor;
void setup() {
pinMode(redPin,OUTPUT);
pinMode(bluePin,OUTPUT);
pinMode(greenPin, OUTPUT);
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
void loop() {
//while is reading the message
while(Serial.available() > 0){
flag = 0;
//the message can have up to 12 characters
if(index < (max_char-1)){
r_char = Serial.read(); // Reads a character
message[index] = r_char; // Stores the character in message array
if(r_char=='R'){
currentColor = 'R';
redTempValue = "";
}
else if(r_char=='G'){
currentColor = 'G';
greenTempValue = "";
}
else if(r_char=='B'){
currentColor = 'B';
blueTempValue = "";
}
if(currentColor == 'R' && r_char!='R'){
redTempValue += r_char;
}
else if(currentColor == 'G' && r_char!='G'){
greenTempValue += r_char;
}
else if(currentColor == 'B' && r_char!='B'){
blueTempValue += r_char;
}
index++; // Increment position
message[index] = '\0'; // Delete the last position
}
}
if(flag == 0){
analogWrite(redPin, 255-redTempValue.toInt());
analogWrite(greenPin, 255-greenTempValue.toInt());
analogWrite(bluePin, 255-blueTempValue.toInt());
/*Serial.print('R');
Serial.println(redTempValue);
Serial.print('G');
Serial.println(greenTempValue);
Serial.print('B');
Serial.println(blueTempValue);
Serial.print("MESSAGE ");*/
Serial.println(message);
flag=1;
for(i=0; i<12; i++){
message[i] = '\0';
}
//resests the index
index=0;
}
}
Схема подключения
Следуйте схеме подключения на следующем рисунке, чтобы собрать вашу цепь.
Примечание: Если вы используете RGB-светодиод с общим катодом, вам нужно подключить более длинный вывод к GND.
Важно: Вот подключения Bluetooth-модуля к Arduino:
TX Bluetooth-модуля подключается к RX Arduino
RX Bluetooth-модуля подключается к TX Arduino
Вот как должна выглядеть ваша цепь:
Запуск приложения
Если вы не сгенерировали файл .apk на предыдущем шаге, вы можете нажать здесь, чтобы скачать файл .apk (это установочный файл Android-приложения). Перенесите этот файл на свой смартфон и откройте его. Следуйте мастеру установки, чтобы установить приложение.
Включите Bluetooth на вашем смартфоне.
Убедитесь, что вы сопрягли смартфон с Bluetooth-модулем – найдите сопряженные устройства в настройках Bluetooth вашего смартфона.
Затем откройте только что установленное приложение. Нажмите на кнопку Connect bluetooth, чтобы подключиться через Bluetooth к Bluetooth-модулю Arduino.
Выберите ваш Bluetooth-модуль (он должен называться linvor).
Теперь все готово к использованию!
Демонстрация
Вот ваше приложение в действии. Перемещайте ползунки и нажимайте CHANGE COLOR, чтобы установить выбранный цвет на RGB-светодиоде.
Устранение неполадок
1. Я не могу загрузить код на плату Arduino.
Проверьте, отключены ли кабели TX и RX от Bluetooth-модуля.
Когда вы загружаете код на Arduino, вы должны отключить кабели TX и RX от Bluetooth-модуля. Эти контакты нужны для последовательной связи между Arduino и вашим компьютером.
2. Я не могу найти устройство Bluetooth-модуля.
Убедитесь, что вы сопрягли смартфон с Bluetooth-модулем. Перейдите в настройки Bluetooth и найдите доступные устройства. Ваш Bluetooth-модуль должен появиться (обычно он называется: linvor, HC-06, HC-04, HC-05…). Сопрягите его. Если он запрашивает пароль, введите 1234.
3. Приложение не взаимодействует с Arduino.
Если ваше Android-приложение подключено к Bluetooth-модулю, оно должно отображать сообщение «Connected» (как показано ниже). В противном случае нажмите «Connect Bluetooth», чтобы установить Bluetooth-соединение.
Дважды проверьте подключения Bluetooth-модуля:
TX Bluetooth-модуля подключается к RX Arduino
RX Bluetooth-модуля подключается к TX Arduino
4. Мой Bluetooth-модуль запрашивает пароль.
Если ваш Bluetooth-модуль запрашивает пароль, введите 1234.
Заключение
В этом проекте вы узнали, как управлять цветом RGB-светодиода с помощью Android-приложения, созданного в программе MIT App Inventor 2.
Теперь вы можете изменить внешний вид приложения и добавить ему больше функциональности.
Если вам понравился этот проект, обязательно ознакомьтесь с нашим последним курсом: Android Apps for Arduino with MIT App Inventor 2.
Спасибо за чтение.