به نام خدا : پروژه led blinker ماژول esp8266 12e با webpage و شبکه داخلی
پروژه led blinker ماژول esp8266 12e با webpage و شبکه داخلی
توضیح پروژه : قبل هر چیزی اینو بگم که پروژه 1 یه پروزه ساده هستش و پروژه 2 یه جورایی نمونه ارتقا داده شده پروژه 2 هستش؛ مورد بعد اسم پروژه led blinker هستش یا همون led چشمک زن، که میخوایم از طریق یه صفحه وب، بیایم و یه led رو روشن خاموش کنیم ( کنترلش کنیم )؛ هم کامپیتور و هم ماژول هر دو باید به یه شبکه داخلی وصل باشه ( حالا یا هات اسپات موبایل یا وایفای خونتون )؛ تو پروژه 1 اول کدهای پروژه لینک مربوطه رو گزاشتم که این لینک رو در صفحه مرورگر وارد میکنید و دستور مد نظر به ماژول وایفای ارسال میشه؛ که 2 تا در کل دستور داریم، یکی برا روشن کردن و یکی برا خاموش کردن led، و چون آیپی ماژول برای هر سیستم و شبکه ای ممکنه فرق کنه لذا من آیپی خاصی قرار ندادم ( تو اون تو خط اول پروژه 1 _ 2خط راهنمای پروژه ) و شما ببیند ماژولتون در پنجره سریال آیپی خودشو ارسال میکنه اونو لحاظ کنید، تو پروژه 2 هم فقط یکبار آیپی ماژول رو در صفحه مرورگر میزنید و بعد با دکمه های موجود led رو روشن خاموش میکنید که تو این پروژه دومی یکم باید html هم بلد باشید تا از کدهای پروژه خوب سر در بیارید؛ در ضمن در عنوان مطلب منظور از webpage همون صفحه وب هستش ^_^
شماتیک : برای دیدن در اندازه اصلی روی عکس کلیک کنید.
کد پروژه 1 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
/* http://ESP8266_IP/LED1/0 will set LED1 low http://ESP8266_IP/LED1/1 will set LED1 high */ #include <ESP8266WiFi.h> WiFiClient client; WiFiServer server(80); const char* ssid = "***"; const char* password = "***"; #define LED1 D1 String DataRead = ""; void setup() { Serial.begin(115200); pinMode(LED1, OUTPUT); digitalWrite(LED1, 0); connectWiFi(); startServer(); Serial.println("-----------------------"); } void loop() { // Check if a client has connected client = server.available(); if (!client) return; DataRead = ReadDataFromClient(); Serial.println( DataRead ); // Match the request int val; if (DataRead.indexOf("/LED1/0") != -1) { val = 0; } else if (DataRead.indexOf("/LED1/1") != -1) { val = 1; } else { client.stop(); return; } digitalWrite(LED1, val); SendDataToClient( (String)"GPIO is now " + (val?"high":"low") ); } void connectWiFi(void) { Serial.println("Connecting to WIFI"); WiFi.begin(ssid, password); while( WiFi.status() != WL_CONNECTED ){ delay(300); Serial.print(".."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("NodeMCU Local IP is : "); Serial.println((WiFi.localIP())); } void startServer(void) { server.begin(); Serial.println("Server started"); } void SendDataToClient(String echo) { client.println(echo); client.stop(); delay(1); } String ReadDataFromClient(void) { while(!client.available()) delay(1); String request = client.readStringUntil('\r'); while(client.available()) client.read(); // Remove Other Data return request; } |
کد پروژه 2 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
// http://ESP8266_IP/ #include <ESP8266WiFi.h> WiFiClient client; WiFiServer server(80); const char* ssid = "***"; const char* password = "***"; #define LED1 D1 String DataRead = ""; void setup() { Serial.begin(115200); pinMode(LED1, OUTPUT); digitalWrite(LED1, LOW); connectWiFi(); startServer(); Serial.println("-----------------------"); } void loop() { // Check if a client has connected client = server.available(); if (!client) return; DataRead = ReadDataFromClient(); Serial.println( DataRead ); // Match the request if (DataRead.indexOf("") != -10) { if (DataRead.indexOf("/OFF") != -1) { digitalWrite(LED1, LOW); } else if (DataRead.indexOf("/ON") != -1) { digitalWrite(LED1, HIGH); } } else { client.stop(); return; } // Prepare the response String s = "HTTP/1.1 200 OK\r\n"; s += "Content-Type: text/html\r\n\r\n"; s += "<!DOCTYPE HTML>\r\n<html>\r\n"; s += "<input type=\"button\" name=\"bl\" value=\"Turn LED ON \" onclick=\"location.href='/ON'\">"; s += " "; s += "<input type=\"button\" name=\"bl\" value=\"Turn LED OFF\" onclick=\"location.href='/OFF'\">"; s += "</html>\n"; SendDataToClient( s ); } void connectWiFi(void) { Serial.println("Connecting to WIFI"); WiFi.begin(ssid, password); while( WiFi.status() != WL_CONNECTED ){ delay(300); Serial.print(".."); } Serial.println(""); Serial.println("WiFi connected"); Serial.println("NodeMCU Local IP is : "); Serial.println((WiFi.localIP())); } void startServer(void) { server.begin(); Serial.println("Server started"); } void SendDataToClient(String echo) { client.println(echo); client.stop(); delay(1); } String ReadDataFromClient(void) { while(!client.available()) delay(1); String request = client.readStringUntil('\r'); while(client.available()) client.read(); // Remove Other Data return request; } |
فیلم پروژه 2 : حسش نبود فیلمشو بگیرم ^_^؛ کسی فیلم گرفت، بفرسته تا پیوست کنم به مطلب!
فیلم پروژه 1 :
امیدوارم این مطلب مفید باشه براتون، فعلا یا علی.
کلیپ زیر رو هم ببینید، خاک بر سر ما مسلمونا که یه اسرائیلی حرومی داره برا مردم مظلوم فلسطین رجز میخونه، هر چند که حرفاش هم تلخ و هم تا حدودی داره به حقیقت میپیونده متاسفانه ( http://www.aparat.com/v/tKvZY )
مهمان
سلام عزیز خوبی؟
من میخوام که دقیقا همین پروژه رو انجام بدم ولی با این تفاوت که وب پیج نداره و از طریق اپ اندروید به یه مودم وصل میشی و نو ام سی یو رو هم به اون مودم متصل میکنیو از طریق اپ ال ای دی رو کنترل میکنی
من تو این زمینه آماتور نیستم ولی با اصطلاحاتش آشنایی ندارم
توی منابع فارسی و انگلیسی گشتم چیزی پپیدا نکردم
ممکنه راهنمایی کنی؟
مهمان
ممنون از زحمتی که برای این پروژها میکشید اجر شما با اقا امام زمان متشکر از اینکه خالصانه پروژهایی که با وقت زیاد جمع اوری میکنید وان را برای رشد علم میزارید دست مریزاد
نویسنده این مطلب
جمع آوری چیه سالار – خودم انجامشون دادم
مهمان
با سلام خدمت شما مهندس گرامی من این برنامه رو کامپایل کردم ارور کتابخانه میده کتابخانه های وای فا رو درون سایت میزارین
نویسنده این مطلب
سلام
ته مطلب گزاشتم همه چیزای مورد نیازو
مهمان
سلام .حاج مهدی من یه ماژول enc28j60 خریدم که یه ماژول اترنت هست و من با example خود آردوینو کد rbbb_serverش رو کامپایل کردم و یه سرور تو یه آی پی ایجاد کرد و اطلاعاتی که میخواستم رو توش گذاشت ولی وقتیexampleمربوط به کدweb client رو اجرا میکنم کاری انجام نمیده میشه یه نگاهی به کدای web clientش بندازی ببینی کجاها رو باید تغییر بدم چون خیلی شبیه کدیه که تو این مطلب گذاشتی.
اینم کدای web client
….