Electronic Organ Construction with HC-05 Bluetooth Module
This application is an electronic organ application. We wrote the codes for Android phone or tablet with Flutter-Dart codes. We wrote the codes that make a sound from the buzzer for Arduino, to which the Bluetooth module is connected.
Our Android app has eight buttons for base notes. There is also a "connect" button that provides connection to the bluetooth module.
Below are the Flutter-Dart codes:
// bluetooth ORG with Arduino-------------------------
import 'dart:async';
//import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter_bluetooth_serial/flutter_bluetooth_serial.dart';
const MyApp({super.key});
// ignore: library_private_types_in_public_api
_MyAppState createState() => _MyAppState();
}
List<BluetoothDevice> _devices = [];
late BluetoothConnection connection;
String adr="00:21:07:00:50:69"; // my bluetooth device MAC Adres
void initState() {
super.initState();
_loadDevices();
}
List<BluetoothDevice> devices = await FlutterBluetoothSerial.instance.getBondedDevices();
}
//----------------------------
Future<void> sendData(String data) async {
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());
}
}
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text("Electronic ORG width BlueTooth"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
const Text("MAC Adress: 00:21:07:00:50:69"),
connect(adr);
SizedBox(height: 30.0,),
children: [
ElevatedButton(child:Text(" DO "),onPressed: () {
sendData("Do");
},),
SizedBox(width: 4.0,),
sendData("Re");
},),
SizedBox(width: 4.0,),
sendData("Mi");
},),
SizedBox(width: 4.0,),
sendData("Fa");
},),
SizedBox(width: 4.0,),
sendData("Sol");
},),
SizedBox(width: 4.0,),
sendData("La");
},),
SizedBox(width: 4.0,),
sendData("Si");
},),
SizedBox(width: 4.0,),
sendData("Do2");
},),
SizedBox(width: 4.0,),
],
),
),
),
)
}
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);
});
// durum="Cannot connect, exception occured";
}
}
//Future send(Uint8List data) async {
//connection.output.add(data);
//await connection.output.allSent;
}
//------------*********** data gonder end
Arduino codes are below:
String rec_data="off";
int buzzer=2; //Uno digital out pin number
//freq------------------------------
int Do=261; int Re=294; int Mi=329; int Fa=349; int Sol=392; int La=440; int Si=493; int Do2=523;
pinMode(buzzer,OUTPUT);
Serial.begin(9600);
mySerial.begin(9600); // BlueTooth Data baud,set the data rate for the SoftwareSerial port
}
if (mySerial.available()) {
rec_data=mySerial.readString();
if(rec_data=="Re") {tone(buzzer,Re); delay(300); noTone(buzzer); delay(20); }
if(rec_data=="Mi") {tone(buzzer,Mi); delay(300); noTone(buzzer); delay(20); }
if(rec_data=="Fa") {tone(buzzer,Fa); delay(300); noTone(buzzer); delay(20); }
if(rec_data=="Sol") {tone(buzzer,Sol); delay(300); noTone(buzzer); delay(20); }
if(rec_data=="La") {tone(buzzer,La); delay(300); noTone(buzzer); delay(20); }
if(rec_data=="Si") {tone(buzzer,Si); delay(300); noTone(buzzer); delay(20); }
if(rec_data=="Do2") {tone(buzzer,Do2); delay(300); noTone(buzzer); delay(20); }
Serial.println(rec_data);
delay(10);
}
}