حقا اردوينو يسمح لك أن تفعل أشياء كثيرة تتعلق بالإنترنت من الأشياء ، لديها فقط القليل من "الرغبة والحدس لإنشاء أي نوع من المشروع.
في هذه المشاركة سوف نرى كيف للتحكم عن بعد مكيف الهواء الخاص بك في المنزل ، من خلال Arduino ، وهو متصل بالإنترنت.
المتطلبات
2 Arduino Mega Arduino Uno
جهاز استقبال الأشعة تحت الحمراء TSOP1738
دايود ضوئي
330 أوم المقاوم
بعض الكابلات المرنة
الخطوة 1: كيف يعمل النظام؟
Spegnimento
Raw (150): -3276 3100 -2900 2950 -4400 700 -1500 700 -400 700 -1500 700 -400 650 -450 550 -1650 550 -550 650 -1500 600 -500 600 -1600 600 -500 600 -500 600 -450 650 -450 600 -550 550 -550 550 -550 550 -600 500 -1600 600 -500 600 -500 600 -550 550 -500 600 -500 600 -550 550 -550 550 -1600 600 -500 600 -500 600 -500 550 -1650 550 -1600 600 -500 600 -500 600 -550 550 -550 550 -1600 600 -1600 550 -550 550 -550 550 -1650 550 -1600 600 -550 550 -500 600 -500 600 -550 550 -550 550 -500 600 -500 600 -1600 600 -1600 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -500 600 -550 550 -550 550 -500 600 -500 600 -500 600 -1600 600 -500 600 -1600 550 -550 550 -1600 600 -550 550 -550 550
Accensione 23 C° Freddo 2 FAN
Raw (150): -16044 3050 -3000 3000 -4400 550 -1600 600 -550 550 -1650 550 -550 550 -550 550 -1650 550 -500 600 -1600 550 -550 550 -1650 550 -1650 550 -1650 550 -550 550 -550 550 -500 600 -1600 550 -550 550 -550 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -500 600 -1650 500 -550 550 -600 500 -1700 500 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -550 550 -500 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -500 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1600 600 -550 550
Accensione 20 C° Caldo e Swing
Raw (150): 18566 3000 -3000 3000 -4400 550 -1650 550 -500 600 -1600 600 -500 600 -500 600 -1600 550 -550 550 -1650 550 -500 600 -1600 600 -550 550 -550 550 -550 550 -1600 600 -500 600 -500 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -550 550 -1600 550 -550 550 -600 500 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -550 550 -550 550 -1600 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -550 550 -550 550 -550 550 -550 500 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -1650 500 -1650 550 -550 550 -1700 500
Accensione 23 C° Freddo 2 FAN e Swing
Raw (150): 2084 2950 -3050 2950 -4400 550 -1600 600 -550 550 -1650 550 -550 550 -550 550 -1600 600 -500 600 -1600 550 -500 600 -1650 550 -1650 550 -1600 600 -500 600 -1600 600 -500 600 -500 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -500 600 -550 550 -500 600 -1650 550 -550 550 -1600 600 -500 600 -1600 550 -1600 600 -500 600 -500 600 -550 550 -500 600 -1650 550 -1600 600 -500 600 -500 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -500 600 -500 600 -500 600 -500 600 -500 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -1600 600 -1600 550 -550 600 -500 550 -550 550 -550 550
الآن بعد أن أكملنا عملية التحميل ، علينا فقط القيام ببعض الأعمال لتحسين المشروع ، الأكثر فائدة ، هو إتاحته من خلال خادم ويب بعيد. للقيام بذلك ، يجب علينا "فتح الأبواب" لجهاز التوجيه الخاص بنا لتوجيه الطلبات التي تتم خارج شبكتنا المحلية بشكل صحيح.
تجدر الإشارة إلى أنه في نسخة من التعليمات البرمجية على Github ذكرت ، لا يوجد كلمة مرور الأمان المستوى ، لتبسيط بت 'المشروع. ومع ذلك ، مع بعض التعديلات على الشفرة AC_Webpage_Controller.ino ، يمكنك أيضًا تنفيذ هذه الميزة.
الخطوة 4: إعادة توجيه الميناء ، لوضع Arduino و A / C على WEB
تشغيل إعادة توجيه المنفذ ، يختلف من موجه إلى موجه ، ولكن بشكل عام ، يمكنك المتابعة كما يلي:
• تحديد عنوان IP لخادم الويب اردوينو
• تحديد عنوان IP للبوابة
• افتح المتصفح واكتب عنوان IP الخاص بالموجّه وأدخل بيانات الاعتماد
• اﻓﺗﺢ ﻗﺳم إﻋﺎدة ﺗوﺟﯾﮫ اﻟﻣﻧﻔذ وأدﺧل اﻟﺑﯾﺎﻧﺎت ﻣﺛل ﻣﻧﻔذ IP ﮐﻣﺎ ھو Arduino و 80.
الآن يمكننا أيضًا الوصول إلى خارج شبكتنا المحلية ، ببساطة عن طريق فتح صفحة ويب مع عنوان IP العام لاتصال ADSL (لاسترداد هذه القيمة ، اكتب ببساطة على Google.com "my ip").
الآن يمكننا أخيرًا اختبار مشروعنا!
الخطوة 5: تنزيل تطبيق Android!
إذا كنت لا ترغب في استخدام صفحة الويب ، فيمكنك تنزيل التطبيق على Android!
يمكنك القيام بذلك عن طريق كتابة RemoteAC من متجر Play ، أو استخدام هذا الرابط: هنــــــــــــــــــا
تذكر أنه بمجرد فتح التطبيق تحتاج إلى ضبط IP من اردوينو في تفضيلات!
في هذه المشاركة سوف نرى كيف للتحكم عن بعد مكيف الهواء الخاص بك في المنزل ، من خلال Arduino ، وهو متصل بالإنترنت.
المتطلبات
2 Arduino Mega Arduino Uno
جهاز استقبال الأشعة تحت الحمراء TSOP1738
دايود ضوئي
330 أوم المقاوم
بعض الكابلات المرنة
الخطوة 1: كيف يعمل النظام؟
كما يعلم الكثيرون ، فإن آلية تنظيم الإعدادات المختلفة بين المستخدم تكون عبر جهاز تحكم عن بعد ، والذي يعتمد على إرسال إشارات الأشعة تحت الحمراء. للتحقيق في وظيفة هذه الإشارات
من الواضح أن كود مكيف الهواء ، يختلف باختلاف الموديل ووفقًا للجهة المصنعة. لهذا السبب ، كمرحلة أولى من العمل ، يجب عليك تنفيذ الإجراء الذي يسمى الهندسة العكسية ، وهو الحصول على الرموز الخاصة بجهازك ، باستخدام جهاز الاستشعار TSOP1738
بمجرد الحصول على الرموز الخاصة بمكيف الهواء الخاص بك ، سنكمل "العمل" تقريبًا. تحتاج إلى استخدام برنامج صغير يبسط وضع رمز لإدراج في اردوينو ، ويمكنك إرسال مختلف الترميزات. يمكن للمستخدم ضبط هذه الرموز من خلال صفحة ويب بسيطة ، مع أو بدون حماية.
كما قرأتها في "متطلبات الأجهزة" ، كتبت أنك بحاجة إلى اثنين من Arduino ، والسبب الرئيسي هو أن تسلسل البتات التي يتم إرسالها إلى مكيفات الهواء أكبر من أن يتم احتواؤها في جهاز واحد ، والتي من بين أشياء أخرى يجب أيضًا الاهتمام بجزء أوامر الإدارة التي سيتم إرسالها عبر الإنترنت.
في الممارسة العملية ، سيكون هناك جهاز سيهتم بجزء ويب خادم والآخر لإرسال إشارات الأشعة تحت الحمراء. السبب الآخر الذي دفعني للقيام بهذا المشروع مع جهاز
الخطوة 2: كيفية إعداد البيانات المختلفة
كما ذكر في الصفوف السابقة ، يجب عليك الحصول على ترميزات جهاز التحكم عن بعد الخاص بنا لإعادة إرسالها إلى Arduino. للقيام بذلك ، سنستخدم مكتبة Arduino iRemote ، ولا سيما هذا الكود:
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
// Dumps out the decode_results structure.
// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) {
// decode_results *results = (decode_results *)v
void dump(decode_results *results) {
int count = results->rawlen;
if (results->decode_type == UNKNOWN) {
Serial.print("Unknown encoding: ");
}
else if (results->decode_type == NEC) {
Serial.print("Decoded NEC: ");
}
else if (results->decode_type == SONY) {
Serial.print("Decoded SONY: ");
}
else if (results->decode_type == RC5) {
Serial.print("Decoded RC5: ");
}
else if (results->decode_type == RC6) {
Serial.print("Decoded RC6: ");
}
else if (results->decode_type == SAMSUNG) {
Serial.print("Decoded SAMSUNG: ");
}
else if (results->decode_type == JVC) {
Serial.print("Decoded JVC: ");
}
else if (results->decode_type == PANASONIC) {
Serial.print("Decoded Panasonic: ");
}
Serial.print(results->value, HEX);
Serial.print("(");
Serial.print(results->bits, DEC);
Serial.println(" bits)");
Serial.print("#define Something_DEC ");
Serial.println(results->value, DEC);
Serial.print("#define Something_HEX ");
Serial.println(results->value, HEX);
Serial.print("Raw (");
Serial.print(count, DEC);
Serial.print("): ");
for (int i = 0; i < count; i++) {
if ((i % 2) == 1) {
Serial.print(results->rawbuf[i]*USECPERTICK, DEC);
}
else {
Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC);
}
Serial.print(" ");
}
Serial.println("");
}
void loop() {
if (irrecv.decode(&results)) {
dump(&results);
irrecv.resume(); // Receive the next value
}
}
بعد تحميل الرمز على Arduino ، يجب أن نضغط على الأزرار الموجودة على جهاز التحكم عن بعد وننسخ في مكان ما النتائج التي يظهرها المسلسل.
في حالتي ، حصلت على التسلسل التالي من الترميزات:
Accensione 20 C° Caldo
Raw (150): -5320 3000 -3000 3000 -4400 550 -1600 600 -550 550 -1650 550 -550 550 -550 550 -1650 550 -550 550 -1650 500 -550 550 -1650 550 -550 550 -500 600 -500 600 -550 550 -550 550 -1650 500 -550 550 -600 500 -1700 500 -550 550 -550 550 -550 550 -600 500 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -1650 500 -1650 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -500 550 -550 550 -1700 500 -1650 550 -550 550 -500 600 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 500 -1700 500 -550 550 -550 550 -550 550 -550 550 -550 550 -600 500 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -500 550 -1700 500 -550 550 -550 550 -550 550 -1650 550Spegnimento
Raw (150): -3276 3100 -2900 2950 -4400 700 -1500 700 -400 700 -1500 700 -400 650 -450 550 -1650 550 -550 650 -1500 600 -500 600 -1600 600 -500 600 -500 600 -450 650 -450 600 -550 550 -550 550 -550 550 -600 500 -1600 600 -500 600 -500 600 -550 550 -500 600 -500 600 -550 550 -550 550 -1600 600 -500 600 -500 600 -500 550 -1650 550 -1600 600 -500 600 -500 600 -550 550 -550 550 -1600 600 -1600 550 -550 550 -550 550 -1650 550 -1600 600 -550 550 -500 600 -500 600 -550 550 -550 550 -500 600 -500 600 -1600 600 -1600 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -500 600 -550 550 -550 550 -500 600 -500 600 -500 600 -1600 600 -500 600 -1600 550 -550 550 -1600 600 -550 550 -550 550
Accensione 23 C° Freddo 2 FAN
Raw (150): -16044 3050 -3000 3000 -4400 550 -1600 600 -550 550 -1650 550 -550 550 -550 550 -1650 550 -500 600 -1600 550 -550 550 -1650 550 -1650 550 -1650 550 -550 550 -550 550 -500 600 -1600 550 -550 550 -550 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -500 600 -1650 500 -550 550 -600 500 -1700 500 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -550 550 -500 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -500 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1600 600 -550 550
Accensione 20 C° Caldo e Swing
Raw (150): 18566 3000 -3000 3000 -4400 550 -1650 550 -500 600 -1600 600 -500 600 -500 600 -1600 550 -550 550 -1650 550 -500 600 -1600 600 -550 550 -550 550 -550 550 -1600 600 -500 600 -500 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -550 550 -1600 550 -550 550 -600 500 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -550 550 -550 550 -1600 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -550 550 -550 550 -550 550 -550 500 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -1650 500 -1650 550 -550 550 -1700 500
Accensione 23 C° Freddo 2 FAN e Swing
Raw (150): 2084 2950 -3050 2950 -4400 550 -1600 600 -550 550 -1650 550 -550 550 -550 550 -1600 600 -500 600 -1600 550 -500 600 -1650 550 -1650 550 -1600 600 -500 600 -1600 600 -500 600 -500 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -500 600 -550 550 -500 600 -1650 550 -550 550 -1600 600 -500 600 -1600 550 -1600 600 -500 600 -500 600 -550 550 -500 600 -1650 550 -1600 600 -500 600 -500 550 -1650 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -500 600 -500 600 -500 600 -500 600 -500 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -550 550 -1650 550 -1650 550 -1600 600 -1600 550 -550 600 -500 550 -550 550 -550 550
الخطوة 3: إرسال أمر الأشعة تحت الحمراء إلى A / C
باستخدام التعليمة البرمجية التالية ، ستتمكن من إرسال أمر IR إلى A / C عبر Arduino:
#include "IRremote.h"
IRsend irsend;
void setup()
{
Serial.begin(9600);
}
int khz=38; //NB Change this default value as neccessary to the correct modulation frequency
// ON and 2O C° with 1 FAN heat
unsigned heat[] = {3000,3000,3000,4400,550,1600,600,550,550,1650,550,550,550,550,550,1650,550,550,550,1650,500,550,550,1650,550,550,550,500,600,500,600,550,550,550,550,1650,500,550,550,600,500,1700,500,550,550,550,550,550,550,600,500,550,550,550,550,550,550,550,550,1650,550,1650,550,1650,500,1650,550,1650,550,550,550,550,550,550,550,550,550,1650,550,1650,550,500,550,550,550,1700,500,1650,550,550,550,500,600,550,550,550,550,550,550,550,550,550,550,1650,500,1700,500,550,550,550,550,550,550,550,550,550,550,600,500,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,500,550,1700,500,550,550,550,550,550,550,1650,550};
// OFF the A/C
unsigned OFF[] = {3100,2900,2950,4400,700,1500,700,400,700,1500,700,400,650,450,550,1650,550,550,650,1500,600,500,600,1600,600,500,600,500,600,450,650,450,600,550,550,550,550,550,550,600,500,1600,600,500,600,500,600,550,550,500,600,500,600,550,550,550,550,1600,600,500,600,500,600,500,550,1650,550,1600,600,500,600,500,600,550,550,550,550,1600,600,1600,550,550,550,550,550,1650,550,1600,600,550,550,500,600,500,600,550,550,550,550,500,600,500,600,1600,600,1600,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,500,600,550,550,550,550,500,600,500,600,500,600,1600,600,500,600,1600,550,550,550,1600,600,550,550,550,550};
// ON and 23° with 2 FAN cold
unsigned cold[] = {3050,3000,3000,4400,550,1600,600,550,550,1650,550,550,550,550,550,1650,550,500,600,1600,550,550,550,1650,550,1650,550,1650,550,550,550,550,550,500,600,1600,550,550,550,550,550,1650,550,550,550,550,550,550,550,550,550,550,550,550,550,500,600,1650,500,550,550,600,500,1700,500,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,1650,550,550,550,500,550,1650,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,550,550,550,550,550,550,550,550,500,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,1600,600,550,550};
// ON and 20 C° with 1 FAN heat and SWING
unsigned heat_with_swing[] = {3000,3000,3000,4400,550,1650,550,500,600,1600,600,500,600,500,600,1600,550,550,550,1650,550,500,600,1600,600,550,550,550,550,550,550,1600,600,500,600,500,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,550,550,1600,550,550,550,600,500,550,550,550,550,550,550,550,550,550,550,1650,550,1650,550,550,550,550,550,1600,550,1650,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,1650,550,550,550,550,550,550,550,550,500,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,1650,550,1650,500,1650,550,550,550,1700,500};
// ON and 23° with 2 FAN cold and SWING
unsigned cold_with_sqwing[] = {2950,3050,2950,4400,550,1600,600,550,550,1650,550,550,550,550,550,1600,600,500,600,1600,550,500,600,1650,550,1650,550,1600,600,500,600,1600,600,500,600,500,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,500,600,550,550,500,600,1650,550,550,550,1600,600,500,600,1600,550,1600,600,500,600,500,600,550,550,500,600,1650,550,1600,600,500,600,500,550,1650,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,500,600,500,600,500,600,500,600,500,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,1650,550,1650,550,1600,600,1600,550,550,600,500,550,550,550,550,550};
void loop() {
irsend.sendRaw(heat, sizeof(heat)/sizeof(int), khz);
delay(10000);
irsend.sendRaw(OFF, sizeof(OFF)/sizeof(int),khz);
delay(10000);
}
إذا خرجنا لتشغيل مكيف الهواء في المنزل ، فنحن على الطريق الصحيح لإكمال المشروع!
كما ذكر سابقا ، من الضروري استخدام اثنين من اردوينو ، واحد يدير خادم الويب ، والآخر الذي يعالج الاتصالات مع مكيف الهواء.
لتوصيل اثنين من اردوينو بطريقة صحيحة ، ينبغي الحرص على الصورة أدناه.
من الضروري على الجهاز المتصل بـ Ethernet Shield تحميل البرنامج الذي يحمل اسم AC_Webpage_Controller.ino ، بينما يقوم nell'Arduino بإرسال أوامر الأشعة تحت الحمراء ، فيجب تحميل البرنامج الذي يحمل اسم AC_Sender_Code.ino من هنا
تجدر الإشارة إلى أنه في نسخة من التعليمات البرمجية على Github ذكرت ، لا يوجد كلمة مرور الأمان المستوى ، لتبسيط بت 'المشروع. ومع ذلك ، مع بعض التعديلات على الشفرة AC_Webpage_Controller.ino ، يمكنك أيضًا تنفيذ هذه الميزة.
الخطوة 4: إعادة توجيه الميناء ، لوضع Arduino و A / C على WEB
تشغيل إعادة توجيه المنفذ ، يختلف من موجه إلى موجه ، ولكن بشكل عام ، يمكنك المتابعة كما يلي:
• تحديد عنوان IP لخادم الويب اردوينو
• تحديد عنوان IP للبوابة
• افتح المتصفح واكتب عنوان IP الخاص بالموجّه وأدخل بيانات الاعتماد
• اﻓﺗﺢ ﻗﺳم إﻋﺎدة ﺗوﺟﯾﮫ اﻟﻣﻧﻔذ وأدﺧل اﻟﺑﯾﺎﻧﺎت ﻣﺛل ﻣﻧﻔذ IP ﮐﻣﺎ ھو Arduino و 80.
الآن يمكننا أيضًا الوصول إلى خارج شبكتنا المحلية ، ببساطة عن طريق فتح صفحة ويب مع عنوان IP العام لاتصال ADSL (لاسترداد هذه القيمة ، اكتب ببساطة على Google.com "my ip").
الآن يمكننا أخيرًا اختبار مشروعنا!
الخطوة 5: تنزيل تطبيق Android!
إذا كنت لا ترغب في استخدام صفحة الويب ، فيمكنك تنزيل التطبيق على Android!
يمكنك القيام بذلك عن طريق كتابة RemoteAC من متجر Play ، أو استخدام هذا الرابط: هنــــــــــــــــــا
تذكر أنه بمجرد فتح التطبيق تحتاج إلى ضبط IP من اردوينو في تفضيلات!