تركيب كارت شبكة واي فاي للأردوينو وتشغيله.Add Wifi to Arduino
توصيل وحدة التحكم الخاصة بك بالإنترنت عبر إضافة EP8266 WiFi Module!الوحدة النمطية EP8266 Wifi عبارة عن شبكة WiFi كاملة حيث يمكنك الاتصال بسهولة كمحول Wi-Fi يعمل أو واجهة الوصول إلى الواي فاي..
قم بتوصيل الوحدة النمطية ESP8266 Wifi عبارة عن شبكة WiFi كاملة حيث يمكنك الاتصال بسهولة كمحول Wi-Fi يعمل أو واجهة الوصول إلى الإنترنت اللاسلكي لأي تصميم يستند إلى متحكم على اتصاله البسيط من خلال واجهة Serial Communication أو واجهة UART.
تؤدي إضافة هذه الوحدة إلى Arduino UNO إلى فتحك أمام المزيد من المشاريع المثيرة
الخطوة 1: بناء الدائرة
قم بتوصيل المسامير الموضحة على طاولة Pin المرفقة
اتبع هذه الخطوات.
- قم بتوصيل السلك الأحمر بـ VIN (3.3V) بقوة + 3.3 فولت من متحكم.
- قم بتوصيل السلك الأسود بالأرض.
- قم بتوصيل السلك الأخضر بـ TX بوحدة Wifi ووحدة التحكم
- قم بتوصيل wite الأصفر بـ RX لوحدة wifi و متحكم
عن الدائرة
يتم تشغيل ESP8266 بشكل صارم فقط إلى 3.3 فولت. أكثر من ذلك سيدمر الوحدة.
هام لا تستخدم الفولتية أكثر من 3.3V!
قم بتوصيل VIN بـ 3.3v لتشغيله وأيضًا دبوس ENABLE لتمكين الوحدة.
TX متصل بـ RX مما يعني أن كل ما نريد الإرسال في ESP8266 سيستقبله Arduino UNO. والعكس صحيح ل RX إلى TX. عند بناء هذه الدائرة ، نحن الآن على استعداد لبدء WIFI مع Arduino UNO.
الخطوة 2: التحدث إلى الوحدة النمطية
يتم التواصل مع ESP8266 عبر أوامر Attention Command أو AT.
تحقق من جدول أوامر AT المرفق لمراجعة الرموز.
وضع لوحة الخاص بك
1. قم بتحميل نموذج الرسم المرفق هنا مع Arduino UNO الخاص بك.
2. قم بتنزيل عميل Telnet لنظام Android
3. الاتصال ESP8266 واي فاي الخاص بك
4. بمجرد الاتصال ، احصل على عنوان IP
5. افتح عميل Telnet على هاتف Android.
6. إنشاء اتصال عن طريق النقر فوق اتصال ، إضافة IP والمنفذ 80.
بمجرد اتصال إرسال طلب عن طريق الكتابة:
esp8266:
أو تشغيل المدمج في الصمام باستخدام الأوامر
LEDON
أو إيقاف المدمج في الصمام باستخدام الأوامر
انطلق
أو قل فقط
الكود:
سيتم قراءة كل طلبنا وتحليله على وظيفة loop ()
إذا (wifiSerial.available ()> 0) {
سلسلة الرسائل = readWifiSerialMessage () ؛ if (find (message، "esp8266:")) {String result = sendToWifi (message.substring (8، message.length ())، responseTime، DEBUG)؛ إذا (find (نتيجة ، "OK")) sendData (" n" + نتيجة) ؛ آخر sendData (" nErrRead") ؛ // في الأمر ERROR CODE for Failed Executioning statement} آخر إذا (find (message ، "HELLO")) {// يتلقى HELLO من wifi sendData (" nHI!") ؛ // arduino يقول HI} آخر إذا (find (message ، "LEDON")) {digitalWrite (13، HIGH)؛ } if if (find (message، "LEDOFF")) {digitalWrite (13، LOW)؛ } {{بيانات أخرى (" nErrRead") ؛ // Command Error code code for unable to read}}
إذا كنت ترغب في التواصل مع Arduino UNO أو أن تطلب شيئًا ما ، فعليك فقط إضافة حالتك
إذا (العثور على (رسالة، "")) {
/ / تفعل شيئا هنا
}
أضفت بعض الوظائف للتواصل مع ESP8266.
/*
* اسم: sendData
* الوصف: الدالة المستخدمة لإرسال سلسلة إلى عميل tcp باستخدام cipsend * Params: * إرجاع: void * / void sendData (String str) {String len = ""؛ ليون + = str.length ()؛ sendToWifi ( "AT + CIPSEND = 0،" + ليون، responseTime، DEBUG)؛ تأخير (100)؛ sendToWifi (شارع، responseTime، DEBUG)؛ تأخير (100)؛ sendToWifi ( "AT + CIPCLOSE = 5"، responseTime، DEBUG)؛ }
/* * اسم: تجد * الوصف: الدالة المستخدمة لمطابقة سلسلتين * البارامترات: * الإرجاع: صواب إذا كانت المطابقة غير صحيحة * / boolean find (سلسلة السلسلة ، قيمة السلسلة) {if (string.indexOf (value)> = 0) return true؛ عودة كاذبة؛ }
/* * اسم: readSerialMessage * الوصف: وظيفة تستخدم لقراءة البيانات من اردوينو المسلسل. * Params: * إرجاع: استجابة من Arduino (إذا كان هناك رد) * / سلسلة readSerialMessage () {char value؛ int index_count = 0 ؛ بينما (Serial.available ()> 0) {value = Serial.read ()؛ index_count ++؛ القيمة = ' 0' ؛ // Null إنهاء السلسلة} String str (value)؛ str.trim ()؛ العودة شارع ؛ }
/* * اسم: readWifiSerialMessage * الوصف: وظيفة تستخدم لقراءة البيانات من ESP8266 المسلسل. * Params: * إرجاع: استجابة من esp8266 (إذا كان هناك رد) * / سلسلة readWifiSerialMessage () {char value؛ int index_count = 0 ؛ بينما (wifiSerial.available ()> 0) {value = wifiSerial.read ()؛ index_count ++؛ القيمة = ' 0' ؛ // Null إنهاء السلسلة} String str (value)؛ str.trim ()؛ العودة شارع ؛ }
/* * اسم: sendToWifi * الوصف: وظيفة تستخدم لإرسال البيانات إلى ESP8266. * Params: الأمر - البيانات / الأمر لإرسال ؛ مهلة - الوقت لانتظار استجابة. debug - الطباعة إلى نافذة تسلسلية (صواب = نعم ، خطأ = لا) * إرجاع: الرد من esp8266 (إذا كان هناك استجابة) * / سلسلة sendToWifi(String command، const int timeout، debool debug) {String response = ""؛ wifiSerial.println (الأمر). / / أرسل حرف القراءة إلى esp8266 وقت طويل int = millis ()؛ بينما ((time + timeout)> millis ()) {while (wifiSerial.available ()) {// The esp لديه بيانات لذلك يعرض مخرجاته على النافذة التسلسلية char c = wifiSerial.read ()؛ / / اقرأ الشخصية التالية. استجابة + = ج. }} if (debug) {Serial.println (response)؛ استجابة عودة ؛ }
/* * اسم: sendToUNO * الوصف: وظيفة تستخدم لإرسال البيانات إلى UNO. * Params: الأمر - البيانات / الأمر لإرسال ؛ مهلة - الوقت لانتظار استجابة. debug - الطباعة إلى نافذة تسلسلية؟ (صواب = نعم ، خطأ = لا) * الإرجاع: الاستجابة من UNO (إذا كان هناك استجابة) * / String sendToUno (أمر String ، const int time ، debug debug) {String response = ""؛ Serial.println (الأمر). / / أرسل حرف القراءة إلى esp8266 وقت طويل int = millis ()؛ بينما ((time + timeout)> millis ()) {بينما (Serial.available ()) {// The esp لديه بيانات لذلك يعرض ناتجه على النافذة التسلسلية char c = Serial.read ()؛ / / قراءة الشخصية التالية. استجابة + = ج. }} if (debug) {Serial.println (response)؛ استجابة عودة ؛ }
هذا هو! الآن بعد أن تعلمت كيفية التواصل مع ESP8266 ، يمكنك الآن استكشاف المزيد من مشاريع إنترنت الأشياء. قم بزيادة قوة وحدة WiFI هذه إلى الحد الأقصى وكن صانعًا !.
تعليقات
إرسال تعليق