Проект поможет нам управлять лампочкой через Bluetoth с помощью Arduino, и помимо этого мы сможем контролировать мощность света.
Бывает такое, что мы ложимся спать, но забываем выключить свет, а просыпаться уже не хочется, - холодно или потому, что мы очень устали или потому, что в коридоре есть монстры 🙂 Этот проект поможет избежать этот дискомфорт и сделает жизнь немного более простой и удобной. Мы можем помимо того, что включать или выключать свет - контролировать мощность света.
Шаг 1. Код Arduino
Мы будем использовать модуль Bluetooth HC-06, для этого мы установим связь программой для нашего Arduino Mega. Мы объявим необходимые параметры совместимости с приложением «Ardudroid»,
Приложение содержит 13 параметров, через которые мы можем управлять различными нагрузками с использованием реле, если оно использует 120 Вольт переменного тока или обычные лампы 12 В. Будем использовать схему с транзистором в этом проекте для управления лампами.
#define CARACTER_INICIO_CMD '*' #define CARACTER_FINAL_CMD '#' #define CARACTER_DIV_CMD '|' #define ESCRITURA_DIGITAL_CMD 10 #define ESCRITURA_ANALOGA_CMD 11 #define TEXTO_CMD 12 #define LECTURA_ARDUDROID_CMD 13 #define MAX_COMMAND 20 #define MIN_COMMAND 10 #define LONGITUD_ENTRADA_STRING 40 #define ESCRITURA_ANALOGICA_MAX 255 #define PIN_ALTO 3 #define PIN_BAJO 2 int Valordigital; int Kaioken = 14; int ledPin = 52; int speakerPin = 16; String inText; void setup() { Serial.begin(9600); Serial.println("6to Electronica B"); Serial.flush(); pinMode(14, OUTPUT); pinMode(15, INPUT); pinMode(16, OUTPUT); } void loop() { march(); Serial.flush(); int ard_command = 0; int pin_num = 0; int pin_value = 0; Valordigital = analogRead(A1); //Sensor de luz if (Valordigital >= 953) // Si hay luz, apago la luz :v { digitalWrite(Kaioken, HIGH); // Apagamos la luz } else if (Valordigital < 953) // Si no hay luz, enciendo la luz :v { digitalWrite(Kaioken, LOW); // Encendemos el LED } char get_char = ' '; if (Serial.available() < 1) return; get_char = Serial.read(); if (get_char != CARACTER_INICIO_CMD) return; ard_command = Serial.parseInt(); // Lee comando pin_num = Serial.parseInt(); // leer el pin pin_value = Serial.parseInt(); // leer el valor // 1)COMANDOS if (ard_command == TEXTO_CMD) { inText = ""; while (Serial.available()) { char c = Serial.read(); delay(5); if (c == CARACTER_FINAL_CMD) { break; } else { if (c != CARACTER_DIV_CMD) { inText += c; delay(5); } } } } // 2) OBTENER DATOS if (ard_command == ESCRITURA_DIGITAL_CMD) { if (pin_value == PIN_BAJO) pin_value = LOW; else if (pin_value == PIN_ALTO) pin_value = HIGH; else return; set_digitalwrite( pin_num, pin_value); return; } // 3) Escritura analogica if (ard_command == ESCRITURA_ANALOGA_CMD) { analogWrite( pin_num, pin_value ); return; } // 4) Enviar datos (Temperatura :V) if (ard_command == LECTURA_ARDUDROID_CMD) { return; } } // Escritura Digital void set_digitalwrite(int pin_num, int pin_value) { switch (pin_num) { case 13: pinMode(13, OUTPUT); digitalWrite(13, pin_value); break; case 12: pinMode(12, OUTPUT); digitalWrite(12, pin_value); break; case 11: pinMode(11, OUTPUT); digitalWrite(11, pin_value); break; case 10: pinMode(10, OUTPUT); digitalWrite(10, pin_value); break; case 9: pinMode(9, OUTPUT); digitalWrite(9, pin_value); break; case 8: pinMode(8, OUTPUT); digitalWrite(8, pin_value); break; case 7: pinMode(7, OUTPUT); digitalWrite(7, pin_value); break; case 6: pinMode(6, OUTPUT); digitalWrite(6, pin_value); break; case 5: pinMode(5, OUTPUT); digitalWrite(5, pin_value); break; case 4: pinMode(4, OUTPUT); digitalWrite(4, pin_value); break; case 3: pinMode(3, OUTPUT); digitalWrite(3, pin_value); break; case 2: pinMode(2, OUTPUT); Serial.println(analogRead(A0) * 0.48); Serial.println("° Celsius"); break; } } void march()//LAMAS A MI :v { while (analogRead(A2) <= 15) { digitalWrite(16,HIGH); } return; }
Вы можете скачать файл .ino ниже
Шаг 2. Подключение схемы
Как подключить наш Arduino к нашему модулю Bluetooth вы можете увидеть на изображении ниже. После этого перед загрузкой программы отключите порты TX и RX, после загрузки, подключите их так - RX к Arduino TX и после TX к Arduino RX.
Шаг 3. Приложение Ardudroid
После подключения всех соединений откройте приложение Ardudroid и подключите устройство. Скачать и установить приложение вы можете в Google Play по ссылке - https://play.google.com/store/apps/details?id=com.techbitar.android.Andruino&hl=ru.
Шаг 4. Первый тест
Используя простой светодиод и резистор вам самим нужно протестировать функции приложения.
Шаг 5. Зарядка
Теперь, когда мы проверили правильность работы приложения и устройства мы перейдем к подключению и управлению нашей лампочки. Следуя по примеру в изображения, мы подключим нагрузку в виде лампочки через реле к Arduino, чтобы управлять ей. Сделаем через выводы от 2 до 13.
Шаг 6. Дополнительная информация
Приложение может контролировать мощность, используя МОС, если у нас 120 В переменного тока, или транзистор, если нагрузка использует постоянный ток.
Если требуется управлять мощностью устройства, сигнал будет подключен к контактам 3, 5, 6, 9, 10 или 11.
Текущая программа, которую мы загрузили, имеет дополнение и показывает температуру используя lm35. Сигнал поступает на порт A0 и, если вы хотите прочитать, вы должны нажать на контакт 2, чтобы записать текущую температуру в приложение.
Шаг 7. Заключение
Будем надеяться, что у вас всё получилось и ваш проект работает. В ближайшее время смотрите еще больше уроков на нашем сайте.
Всего вам доброго и новых вам изобретений.