بسم الله الرحمن الرحيم
هل حلمت يوما بان تقوم بالتحكم بمصباح الكهربائى عن طريق صوتك
ان كنت نعم فهذه فرصتك لتحقيق حلمك
وان كانت لا فهذه فرصه رائع لتطوير مهارتك و توسيع علمك
ويعد هذا المشروع من احد مشاريع الأتمته
يعد مجال الأتمته (Automation) من احد اهم المجالات التى توجد فى القرن 21
اولا الهدف من المشروع :
الهدف من هذا المشروع هو التحكم باجهزة المنزل مثل المصباح الكهربائى عن طريق الأوامر الصوتية
وسنتحكم فى هذا المشروع فى 4 اجهزة تعمل على 220 فولت متردد
ثانيا الأدوات :
voice recognition module
arduino uno
relay module 4x4
usb to ttl driver
voice recognition module
هذا الموديول هو المسئول عن تفسير الصوت البشرى وعمل مقارنة له عن طريق اصوات مسجله فعلا فى الذاكرة الخاصه به
arduino uno
المتحكم الدقيق الذى سنستخدمه فى هذا المشروع والذى الغرض منه معالجة البيانات
relay module 4x4
يتكون من 4 ريلايهات مدمجة على شريحة pcb ويعمل كل ملف منهم على 5 فولت مستمر
ويتحمل فى حدود 250 فولت متردد
و 10 امبير
usb to ttl driver
الوسيط الذى سنستخدمه لتحميل الأصوات التى سنصدرها للتحكم بالأجهزة
وهو يعتمد على بروتوكول uart
ثالثا إضافة الأصوات:
فى البداية يجب توصيل voice recantation مع usb to ttl بهذه الطريقة لتحميل الأصوات الى الكمبيوتر ثم توصيل الجانب الأخر من usb to ttl الى الكمبيوتر
ثم الدخول الى manage لمعرفة المنفذ الذى سيتم توصيل به usb to ttl فى الكمبيوتر
ثم تحميل برنامج stud.com الذى سنستخدمه لرفع الأصوات الى الشريحة
ويمكن تحميله من الموقع الرسمى من هنا
كما ترون الواجهه الرئيسية للبرنامج فى البداية يجب تغيير
من char الى hex التان يوجدان فى المربع الأسود
ثم اتباع الخطوات التاليه :
فى المربع الأول يجب تغيير المنفذ الى المنفذ الخاص ب usb to ttl الذي حصلنا عليه من manage
ثم تحديد سرعه الإتصال من المربع الثانى والتى ستكون من 9600
ثم تغيير
char format الى hex format كما هو موضح فى المربع الثالث
اولا : aa36
ثم اضغط على زر send
ثانيا : aa11
ثم اضغط على زر send ثم قم بتحدث واتباع الذى سيعرض امامك
ثالثا : aa21
ثم اضغط على زر send يقوم هذا الأمر بتحميل الأصوات التى قمت بتسجيلها على الموديول الخاص بنا
بعد الإنتهاء من هذه العملية قم بتفكيك الموديول من usb to ttl
ملحوظة : يتحمل هذا الموديول حوالى 15 صوت فقط ولكن البرنامج سيبلغك عند امتلاء السعة التخزينية الخاصه بالموديول
رابعا التوصيلات :
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf8el13W8I2_clKddZrb-GtK-gTQxr8oe9c1p91XDVcamMLFjqH_RDVuxfsUYIOdEPZL7RKEMCLCBY1s9hyphenhyphenlhTiYGCeS1yldSwtQieXcwhfXa8rjUSMLFxeuCLnjDojiqhGgtjtuciXcWW/s16000/8.png)
كما تلاحظون التوصيلات فى الأعلى يحتوى relay module على 6 منافذ هم :
vcc : 5v
IN4 : 2
IN3 : 3
IN2 : 4
IN1 : 5
GND : GND
ويحتوى voice recognition على 4 منافذ هم
tx : 8
rx : 9
vcc : 5v
gnd : gnd
ثالثا الكود :
#include <SoftwareSerial.h>
SoftwareSerial voice(8,9);
//RELAY PIN
#define IN1 2
#define IN2 3
#define IN3 4
#define IN4 5
byte com = 0;
void setup() {
// for voice recognithion module
voice.begin(9600);
voice.write(0xAA);
voice.write(0x37);
delay(1000);
voice.write(0xAA);
voice.write(0x21);
//end of voice reconithation module
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
digitalWrite(IN1,0);
digitalWrite(IN2,0);
digitalWrite(IN3,0);
digitalWrite(IN4,0);
}
void loop() {
while(voice.available()) {
com = voice.read();
switch(com) {
case 0x11: //command 1 is for TURN ON THE FIRST DEVICE
digitalWrite(IN1,1);
break;
case 0x12: //command 2 is for TURN OFF THE FIRST DEVICE
digitalWrite(IN1,0);
break;
case 0x13: //command 3 is TURN ON THE SECONDE DEVICE
digitalWrite(IN2,1);
break;
case 0x14: //command 4 is for TURN OFF THE SECONDE DEVICE
digitalWrite(IN2,0);
break;
case 0x15: //command 5 is for TURN ON THE THIRD DEVICE
digitalWrite(IN3,1);
break;
case 0x16: //command 5 is for TURN OFF THE THIRD DEVICE
digitalWrite(IN3,0);
break;
case 0x17: //command 5 is for TURN ON THE FOURTH DEVICE
digitalWrite(IN4,1);
break;
case 0x18: //command 5 is for TURN OFF THE FOURTH DEVICE
digitalWrite(IN4,0);
break;
}
}
}
الهدف من هذا الكود هو :
اولا اضافة مكتبة بروتوكول UART عن طريق
#include <SoftwareSerial.h>
ثم تعريف المنافذ الخاصه ب الموديول عن طريق
SoftwareSerial voice(8,9);
تعريف المنافذ الخاصه بالريلاى عن طريق
#define IN1 2
#define IN2 3
#define IN3 4
#define IN4 5
وتعريف متغير نستلم فيه البيانات القادمه من الموديول
byte com = 0;
وتعريف هذه المنافذ كخرج
ثم كتابة الأكواد الأساسية التى الغرض منها تهيئة الموديول عن طريق
voice.begin(9600);
voice.write(0xAA);
voice.write(0x37);
delay(1000);
voice.write(0xAA);
voice.write(0x21);
بعد ذلك عمل مقارنات بالقراءة القادمة من الموديول والتى على حسب هذه القراءة ستقوم الأردوينو بأداء معين
لأى استفسار اتركه فى التعليقات
لتحميل الكود اضغط هنا
جميل جدا
ردحذف