
15.Mar.2023
Nowadays, the number of Bluetooth controlled devices has increased tremendously. It is possible to see Android-based control applications everywhere, both in variety and in numbers. From our homes to our workplaces, from entertainment venues to the streets, we see Android applications that make our lives easier.
In this application, we wanted to make an application on how to control some electronic elements and devices.
In our application, there are two different colored led diodes, a buzzer, a DC motor and a 220 volt lamp connected to the relay. These components are connected to our microcontroller. We also connected a Bluetooth module to receive incoming commands. We reused theHC-05 bluetooth module that we used in our previous applications.
On the Android phone, we installed the application we wrote in Flutter-Dart language. There are basically two important functions in our Android application. One is the Connect function and the other is the sendData function. Since we got the MAC address, we wrote this MAC address into the connect function.
The sendData function, on the other hand, is a function that takes a string type value. For example, when we writesendData('ledon')in the codes, when the button with this function is pressed, the bluetooth adapter sends this data to the connected bluetooth module on the opposite side. Events on other buttons occur in a similar way.
import 'dart:async';
//import 'dart:convert';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bluetooth_serial/flutter_bluetooth_serial.dart';
void main() => runApp(const MyApp());
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
// ignore: library_private_types_in_public_api
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<BluetoothDevice> _devices = [];
late BluetoothConnection connection;
String adr="00:21:07:00:50:69"; // my bluetooth device MAC Adres
@override
void initState() {
super.initState();
_loadDevices();
}
Future<void> _loadDevices() async {
List<BluetoothDevice> devices = await FlutterBluetoothSerial.instance.getBondedDevices();
setState(() { _devices = devices; });
}
//----------------------------
Future<void> sendData(String data) async {
data = data.trim();
try {
List<int> list = data.codeUnits;
Uint8List bytes = Uint8List.fromList(list);
connection.output.add(bytes);
await connection.output.allSent;
if (kDebugMode) {
// print('Data sent successfully');
}
} catch (e) {
//print(e.toString());
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text("MULTI CONTROL with bluetooth"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("MAC Adress: 00:21:07:00:50:69"),
ElevatedButton(child:Text("Connect"),onPressed: () {
connect(adr); },),
SizedBox(height: 30.0,),
Row(
children:[
ElevatedButton(onPressed:(){sendData("redon");}, child: Text('RedOn')),
ElevatedButton(onPressed:(){sendData("redoff");}, child: Text('RedOFF')),
]),
const SizedBox(height: 30.0,),
Row(
children:[
ElevatedButton(onPressed:() {sendData("greenon");}, child: Text('GreenOn')),
ElevatedButton(onPressed:() {sendData("greenoff");}, child: Text('GreenOff')),
]),
const SizedBox(height: 30.0,),
Row(
children:[
ElevatedButton(onPressed: () {sendData("buzon");}, child: Text('BuzzerOn')),
ElevatedButton(onPressed: () {sendData("buzoff");}, child: Text('BuzzerOff')),
]),
const SizedBox(height: 30.0,),
Row(
children:[
ElevatedButton(onPressed: (){sendData("moton");}, child: Text('MotorOn')),
ElevatedButton(onPressed: (){sendData("motoff");}, child: Text('MotorOff')),
]),
const SizedBox(height: 30.0,),
Row(
children:[
ElevatedButton(onPressed: (){sendData("lampon");}, child: Text('LampOn'),),
ElevatedButton(onPressed:(){sendData("lampoff");}, child: Text('LampOff'),),
]),
],
),
),
)
);
}
Future connect(String address) async {
try {
connection = await BluetoothConnection.toAddress(address);
sendData('111');
//durum="Connected to the device";
connection.input!.listen((Uint8List data) {
//Data entry point
// durum=ascii.decode(data);
});
} catch (exception) {
// durum="Cannot connect, exception occured";
}
}
// --------------**************data gonder
//Future send(Uint8List data) async {
//connection.output.add(data);
//await connection.output.allSent;
}
//------------*********** data gonder end
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX
String rec_data="5";
void setup() {
pinMode(7, OUTPUT); // RED led
pinMode(6, OUTPUT); // green led
pinMode(5, OUTPUT); // Buzzer
pinMode(3, OUTPUT); // --------------> motor
pinMode(2, OUTPUT); // 220 volt lamp
Serial.begin(9600);
mySerial.begin(9600); // BlueTooth Data baud,set the data rate for the SoftwareSerial port
}
void loop() { // run over and over
if (mySerial.available()) {
rec_data=mySerial.readString();
if(rec_data=="redon"){digitalWrite(7,HIGH);} // RED LED ON
if(rec_data=="redoff"){digitalWrite(7,LOW);} // RED LED OFF
if(rec_data=="greenon"){digitalWrite(6,HIGH);} // GREEN LED ON
if(rec_data=="greenoff"){digitalWrite(6,LOW);} // GREEN LED OFF
if(rec_data=="buzon"){tone(5,260);} //BUZZER ON
if(rec_data=="buzoff"){ noTone(5);} // BUZZER OFF
if(rec_data=="moton"){analogWrite(3, 100);} // MOTOR ON
if(rec_data=="motoff"){analogWrite(3, 10);} // MOTOR OFF
if(rec_data=="lampon"){digitalWrite(2,HIGH);} // 220 volt lamp relay on
if(rec_data=="lampoff"){digitalWrite(2,LOW);} // 220 volt lamp relay off
delay(500);
Serial.println(rec_data);
}
}

How to make a night light with Bluetooth control and three colors?
A practical and inexpensive night light design with Bluetooth control
03.03.2023

Measuring DC Volts with Android Phone - Voltmeter
Converting an old tablet computer to a voltmeter (with bluetooth)
04.03.2023

We make temperature and humidity detection system with Android device
Android apps
05.03.2023

A BlueTooth-controlled Android App to Measure Heart Rate
An application related to biomedical devices: Measuring heartbeats
08.03.2023

Controlling 8 LEDs with Android phone
Android apps with Bluetooth Module
13.03.2023

DC Motor Speed Control by Android phone
Android Mobil Apps
14.03.2023

Projects with Wifi Module
Wifi module settings
20.03.2023

Application to Control Led Matrix Panel with Android Phone - Part 1
Led Panel-Bluetooth Apps
29.03.2023

Designing an IoT System
Designing an IoT system for personal and business
22.05.2023

Reading the Weather Using the GSM Module Connected to the Microcontroller
How to make weather reading application with GSM module
24.05.2023

Smart Homes Can Be Smarter Than Us.
I'm Programming My House.
18.12.2022

IoT impact in the Healthcare Industry
What is the level of applications of IoT objects in the health sector?
22.12.2022

Application of IoT(Internet of Things) Technologies to Animals
Animals on the Internet
23.12.2022

Smart Cars in the IoT Universe
The evolution of Smart Cars
24.12.2022

Use of HM-10, HC-06 and HC-05 Bluetooth Modules in IoT Projects
Use of HM-10, HC-06 and HC-05 Bluetooth Modules
23.01.2023

Led Control Application with HC-05 Bluetooth Module
Led Control with Android Phone-Flutter
25.02.2023

Electronic Organ Construction with HC-05 Bluetooth Module
Electronic organ design with the program written with Flutter-Dart codes
25.02.2023

220 Volt Lamp On-Off Application with Bluetooth
A bluetooth application made with Flutter-Dart codes
25.02.2023

Measuring resistance by phone to Android
Measuring resistance by phone to Android( with Flutter-Dart)
02.03.2023