فكرة المشروع :
المشروع ببساطه هو السماح لك بفتح او اغلاق قفل اي باب او مكتب عن طريق الانترنت , من خلال جوالك او من اي متصفح انترنت , وذلك بربط محرك صغير في مفتاح القفل , وهذا المحرك يقوم بلف المفتاح للمين او اليسار بناء على الامر الذي يقرأه من صفحة PHP.


مثال على المشروع:

http://instagram.com/p/sGdtM7kGt0/?


متطلبات المشروع:
1- Arduino Uno
2- Ethernet Shield ENc28J60
3- 28YBT-48 DC 5V Stepper Motor with ULN2003 Driver


الدائرة الالكترونية:

Untitled Sketch_schem


الكود البرمجي :

Arduino:

#include ; #include ; #define STEPS_PER_MOTOR_REVOLUTION 32 #define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048 Stepper moto_Open(STEPS_PER_MOTOR_REVOLUTION, 7, 10, 9, 6); Stepper moto_Close(STEPS_PER_MOTOR_REVOLUTION, 7, 10, 6, 9); static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; byte Ethernet::buffer[700]; static uint32_t timer; const char website[] PROGMEM = "www.YOUR-SITE.com"; int state = 0; int Steps2Take; int lastState=0; void runMoto() { Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 2; // Rotate CCW 1/2 turn if(state49) { for(int i=0;i<2;i++) { moto_Open.setSpeed(700); moto_Open.step(Steps2Take); delay(1000); } }else if(state50) { for(int i=0;i<2;i++) { moto_Close.setSpeed(700); moto_Close.step(Steps2Take); delay(1000); } } } static void my_callback (byte status, word off, word len) { Serial.println("> > >"); Ethernet::buffer[off+300] = 0; Serial.print((const char*) Ethernet::buffer + off); state = (const char)(Ethernet::buffer + off + len - 1); Serial.println("---------------"); Serial.println(state); if(lastState!=state) { if(state!=48) runMoto(); lastState=state; } Serial.println("..."); } void setup () { Serial.begin(57600); Serial.println(F("\n[webClient]")); if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) Serial.println(F("Failed to access Ethernet controller")); if (!ether.dhcpSetup()) Serial.println(F("DHCP failed")); ether.printIp("IP: ", ether.myip); ether.printIp("GW: ", ether.gwip); ether.printIp("DNS: ", ether.dnsip); if (!ether.dnsLookup(website)) Serial.println("DNS failed"); ether.printIp("SRV: ", ether.hisip); } void loop () { ether.packetLoop(ether.packetReceive()); if (millis() > timer) { timer = millis() + 5000; Serial.println(); Serial.print("< < < REQ "); ether.browseUrl(PSTR("/getData.php"), "", website, my_callback); } }

**PHP: **
**submitData.php**
 
تم ارسال امر فتح القفل.

"); } elseif (isset($_GET['close'])) { file_put_contents('data.txt', '2'); echo ("

تم ارسال امر اغلاق القفل.

"); } ?>


getData.php