সুচিপত্র:

ইনভেন্টরি ড্রয়ার "স্মার্ট সিটিস হ্যাকাথন কোয়ালকম 17": 13 টি ধাপ
ইনভেন্টরি ড্রয়ার "স্মার্ট সিটিস হ্যাকাথন কোয়ালকম 17": 13 টি ধাপ

ভিডিও: ইনভেন্টরি ড্রয়ার "স্মার্ট সিটিস হ্যাকাথন কোয়ালকম 17": 13 টি ধাপ

ভিডিও: ইনভেন্টরি ড্রয়ার
ভিডিও: সুপার শপের জন্য ক্যাশ ড্রয়ার ও পজ প্রিন্টারের দাম জানুন। Creatus Computer 2024, জুলাই
Anonim
ইনভেন্টরি ড্রয়ার
ইনভেন্টরি ড্রয়ার

পরবর্তী নথিতে, আপনি একটি বুদ্ধিমান ড্রয়ারের নির্মাণ এবং প্রোগ্রামিংয়ের প্রক্রিয়া দেখতে পারেন। এই ড্রয়ারটি একটি ড্রাগন বোর্ড 410c এ প্রোগ্রাম করা হয়েছিল, যার উদ্দেশ্য ছিল শহরের মান উন্নত করা। প্রকল্পটি "স্মার্ট সিটিস হ্যাকাথন কোয়ালকম 17" প্রতিযোগিতার অংশ।

এই প্রকল্পের ধারণাটি এমন একটি সমস্যা দিয়ে শুরু হয়েছিল যা খুব কম লোকই দেখে, যা কারখানা এবং এমনকি হাসপাতালগুলির মতো সংস্থাগুলি দ্বারা সরবরাহ করা সরঞ্জাম এবং উপাদানগুলির হারিয়ে যাওয়া এবং খারাপ ব্যবস্থাপনা। এই জায়গাগুলিতে, কর্মীদের কাজ করার জন্য কিছু উপকরণ এবং সরঞ্জাম সরবরাহ করা হয়, এই উপাদান এবং সরঞ্জামগুলি অবশ্যই পুনusedব্যবহার করতে হবে কারণ সেগুলি ব্যয়বহুল বা তাদের প্রতিস্থাপনের জন্য অর্থনৈতিক সম্পদের অভাব।

হাসপাতালে, এমন কিছু লোক আছে যারা অপসারণ করা সামগ্রীর নিয়ন্ত্রণ নেয়, কিন্তু যখন মানুষের হস্তক্ষেপ হয় তখন ত্রুটি হয়, যা অপ্রয়োজনীয় খরচ হতে পারে। এই সমস্যার সর্বোত্তম সমাধান হল একটি বুদ্ধিমান ড্রয়ার যা ধার করা এবং ফেরত দেওয়া বস্তুর একটি তালিকা বজায় রাখতে সক্ষম এবং একই সাথে দায়ী কে তা জানে।

ধাপ 1: উপকরণ

প্রকল্পের জন্য প্রয়োজনীয় উপাদান পরবর্তী: 1 x ড্রাগন বোর্ড 410c

ড্রাগন বোর্ড 410c এর জন্য 1 x সেন্সর মেজানাইন 96 বোর্ড

1 x ব্রেডবোর্ড

1 x MDF (মাঝারি ঘনত্বের ফাইবারবোর্ড) শীট 61 x 122 সেমি

5 এক্স সেন্সর CNY 70

1 এক্স টিআইপি 31 বি

1 x ইলেক্ট্রোম্যাগনেট

1 x 7408

1 x কীবোর্ড

1 এক্স স্ক্রিন

3 এক্স স্ক্রু

প্রতিরোধ (বিভিন্ন)

তামার তার

আঠা

ড্রিল

ধাপ 2: MDF- এ ড্রয়ারের জন্য টুকরো কাটা। (ভালো ফলাফলের জন্য লেজার কাটার ব্যবহার করুন)

MDF এ ড্রয়ারের জন্য টুকরো টুকরো করুন। (ভালো ফলাফলের জন্য লেজার কাটার ব্যবহার করুন)
MDF এ ড্রয়ারের জন্য টুকরো টুকরো করুন। (ভালো ফলাফলের জন্য লেজার কাটার ব্যবহার করুন)

ধাপ 3: দুটি ছোট ড্রয়ার এবং একটি বড় একটি দিয়ে একটি ড্রয়ার তৈরি করতে সমস্ত টুকরা একসাথে আটকান।

ধাপ 4: প্রতিটি ড্রয়ারের মাঝখানে স্ক্রুগুলি স্ক্রু করুন।

প্রতিটি ড্রয়ারের মাঝখানে স্ক্রুগুলি স্ক্রু করুন।
প্রতিটি ড্রয়ারের মাঝখানে স্ক্রুগুলি স্ক্রু করুন।

ধাপ 5: ড্রিল দিয়ে পিছনের দিকের ড্রয়ারের মাধ্যমে গর্ত তৈরি করুন, হোলটি সেন্সরের আকার হতে হবে।

ড্রিল দিয়ে পিছনের দিকের ড্রয়ারের মাধ্যমে গর্ত তৈরি করুন, হোলটি সেন্সরের আকার হতে হবে।
ড্রিল দিয়ে পিছনের দিকের ড্রয়ারের মাধ্যমে গর্ত তৈরি করুন, হোলটি সেন্সরের আকার হতে হবে।

ধাপ 6: তামার তারের সাথে প্রতিটি সেন্সর CNY 70 Wালুন। (আরও 4 বার পুনরাবৃত্তি করুন)

কপার তারের সঙ্গে প্রতিটি সেন্সর CNY 70 elালুন। (আরও 4 বার পুনরাবৃত্তি করুন)
কপার তারের সঙ্গে প্রতিটি সেন্সর CNY 70 elালুন। (আরও 4 বার পুনরাবৃত্তি করুন)

ধাপ 7: সেন্সরের জন্য একটি বিশেষ সার্কিট ব্যবহার করা হয়।

একটি বিশেষ সার্কিট সেন্সরের জন্য ব্যবহৃত হয়।
একটি বিশেষ সার্কিট সেন্সরের জন্য ব্যবহৃত হয়।

ধাপ 8: সেন্সর মেজানাইনকে ড্রাগন বোর্ড 410c এর সাথে সংযুক্ত করুন। (জিপিআইও অ্যাক্সেস করতে ব্যবহৃত)

সেন্সর মেজানাইনকে ড্রাগন বোর্ড 410c এর সাথে সংযুক্ত করুন। (জিপিআইও অ্যাক্সেস করতে ব্যবহৃত)
সেন্সর মেজানাইনকে ড্রাগন বোর্ড 410c এর সাথে সংযুক্ত করুন। (জিপিআইও অ্যাক্সেস করতে ব্যবহৃত)

এটি খুবই গুরুত্বপূর্ণ যে এই পদক্ষেপটি ড্রাগন বোর্ড বন্ধ করে করা উচিত, যদি না হয় তবে এটি জ্বলতে পারে, এছাড়া সমস্ত পিন সঠিকভাবে স্থাপন করা প্রয়োজন।

ধাপ 9: ব্রেডবোর্ড থেকে মেজানিনে সার্কিটটি সংযুক্ত করুন

সার্কিটটি ব্রেডবোর্ড থেকে মেজানাইনের সাথে সংযুক্ত করুন
সার্কিটটি ব্রেডবোর্ড থেকে মেজানাইনের সাথে সংযুক্ত করুন
সার্কিটটি ব্রেডবোর্ড থেকে মেজানাইনের সাথে সংযুক্ত করুন
সার্কিটটি ব্রেডবোর্ড থেকে মেজানাইনের সাথে সংযুক্ত করুন
সার্কিটটি ব্রেডবোর্ড থেকে মেজানাইনের সাথে সংযুক্ত করুন
সার্কিটটি ব্রেডবোর্ড থেকে মেজানাইনের সাথে সংযুক্ত করুন
সার্কিটটি ব্রেডবোর্ড থেকে মেজানাইনের সাথে সংযুক্ত করুন
সার্কিটটি ব্রেডবোর্ড থেকে মেজানাইনের সাথে সংযুক্ত করুন

ধাপ 10: কোড লিখুন বা অনুলিপি করুন।

#অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত #অন্তর্ভুক্ত // #অন্তর্ভুক্ত

#অন্তর্ভুক্ত "libsoc_gpio.h"

#অন্তর্ভুক্ত "libsoc_debug.h" #অন্তর্ভুক্ত "libsoc_board.h"

/ * নীচের কোডের এই বিটটি এই উদাহরণটি সমস্ত 96 বোর্ডে কাজ করে তোলে */

স্বাক্ষরবিহীন int LED_1; // ইলেক্ট্রো ইমান

স্বাক্ষরবিহীন int BUTTON_1; // প্রথম সেন্সর

স্বাক্ষরবিহীন int BUTTON_2; // দ্বিতীয় সেন্সর স্বাক্ষরবিহীন int BUTTON_3; // বন্ধ স্বাক্ষরবিহীন int BUTTON_4; // তৃতীয় সেন্সর

স্ট্রাক্ট ব্যবহারকারী {

চার ব্যবহারকারীর নাম [20]; চার পাসওয়ার্ড [20]; } ব্যবহারকারী;

স্ট্রাক্ট ডাটাবেস {

char Article_Name [20]; চর অবস্থান [20]; }তথ্যশালা;

int সেন্সর 1;

int সেন্সর 2; int সেন্সর 3;

int sensor1_last_state;

int sensor2_last_state; int sensor3_last_state;

চার ইউজারনেম [50];

চার পাসওয়ার্ড [50];

চর YesNo [40];

ফাইল *pFILE;

char Yes [20] = {"হ্যাঁ"};

int চলমান = 1;

_attribute _ ((কন্সট্রাকটর)) স্ট্যাটিক অকার্যকর _init ()

{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (config, "GPIO-A"); // মুষ্টি সেন্সর BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // দ্বিতীয় সেন্সর BUTTON_3 = libsoc_board_gpio_id (config, "GPIO-D"); // বন্ধ র্যাক BUTTON_4 = libsoc_board_gpio_id (কনফিগ, "GPIO-B"); // তৃতীয় সেন্সর // BUTTON_5 = libsoc_board_gpio_id (কনফিগ, "GPIO-E");

LED_1 = libsoc_board_gpio_id (কনফিগ, "GPIO-E"); // ইলেক্ট্রো ইমান

libsoc_board_free (কনফিগ); } / * 96 বোর্ডের শেষ কোড বিশেষ কোড * /

int প্রধান ()

{gpio *led_1, *button_1, *button_2, *button_3, *button_4; // int স্পর্শ; স্ট্রাক্ট ব্যবহারকারী কারিনা; স্ট্রাক্ট ইউজার ম্যানেজার; strcpy (Karina.username, "Karina Valverde"); strcpy (Karina.password, "লম্বা উল্লম্ব"); strcpy (Manager.username, "The Boss"); strcpy (Manager.password, "ITESM"); struct ডাটাবেস টুল; স্ট্রাক্ট ডাটাবেস পেন; স্ট্রাক্ট ডাটাবেস কেস; strcpy (Tool. Article_Name, "Tool"); struct ডাটাবেস টুল; স্ট্রাক্ট ডাটাবেস পেন; স্ট্রাক্ট ডাটাবেস কেস; strcpy (Tool. Article_Name, "Tool"); strcpy (Pen. Article_Name, "Pen"); strcpy (Case. Article_Name, "Case"); libsoc_set_debug (0); led_1 = libsoc_gpio_request (LED_1, LS_SHARED); button_1 = libsoc_gpio_request (BUTTON_1, LS_SHARED); button_2 = libsoc_gpio_request (BUTTON_2, LS_SHARED); button_3 = libsoc_gpio_request (BUTTON_3, LS_SHARED); button_4 = libsoc_gpio_request (BUTTON_4, LS_SHARED); // button_5 = libsoc_gpio_request (BUTTON_5, LS_SHARED);

যদি ((led_1 == NULL) || (button_1 == NULL) || (button_2 == NULL) || (button_3 == NULL) || (button_4 == NULL))

{ব্যর্থ হয়েছে; } libsoc_gpio_set_direction (led_1, আউটপুট); libsoc_gpio_set_direction (button_1, INPUT); libsoc_gpio_set_direction (button_2, INPUT); libsoc_gpio_set_direction (button_3, INPUT); libsoc_gpio_set_direction (button_4, INPUT); // libsoc_gpio_set_direction (button_5, INPUT);

যদি ((libsoc_gpio_get_direction (led_1)! = আউটপুট)

|| (libsoc_gpio_get_direction (button_1)! = INPUT) || (libsoc_gpio_get_direction (button_2)! = INPUT) || (libsoc_gpio_get_direction (button_3)! = INPUT) || (libsoc_gpio_get_direction (button_4)! = INPUT)) {goto fail; } sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (button_2); sensor3 = libsoc_gpio_get_level (button_4); sensor1_last_state = sensor1; sensor2_last_state = sensor2; sensor3_last_state = sensor3; যদি (sensor1 == 1) {strcpy (Tool. Location, "Located on Rack"); } অন্যথায় যদি (sensor1 == 0) {strcpy (Tool. Location, "never put in this rack"); } if (sensor2 == 1) {strcpy (Pen. Location, "Located on Rack"); } অন্যথায় যদি (sensor2 == 0) {strcpy (Pen. Location, "কখনো এই র্যাকের মধ্যে রাখা হয়নি"); } if (sensor3 == 1) {strcpy (Case. Location, "Located on Rack"); } অন্যথায় যদি (sensor3 == 0) {strcpy (Case. Location, "never place in this rack"); } চলমান অবস্থায় {libsoc_gpio_set_level (led_1, HIGH); printf ("দয়া করে ব্যবহারকারীর নাম লিখুন:"); scanf ("%s", ব্যবহারকারীর নাম); printf ("দয়া করে পাসওয়ার্ড লিখুন:"); scanf ("%s", পাসওয়ার্ড); যদি (strcmp (ব্যবহারকারীর নাম, "কারিনা") == 0 && strcmp (পাসওয়ার্ড, "লম্বা") == 0) {libsoc_gpio_set_level (led_1, LOW); libsoc_gpio_set_level (led_1, LOW); যখন (libsoc_gpio_get_level (button_3)! = 1) {sensor1 = libsoc_gpio_get_level (button_1); sensor2 = libsoc_gpio_get_level (button_2); sensor3 = libsoc_gpio_get_level (button_4); } libsoc_gpio_set_level (led_1, উচ্চ); যদি (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, Karina.username); } অন্যথায় যদি (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location, "Located on Rack"); } if (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, Karina.username); } অন্যথায় যদি (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location, "Located on Rack"); }

যদি (sensor3 == 1 && sensor3! = sensor3_last_state) {

strcpy (Case. Location, Karina.username); } অন্যথায় যদি (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location, "Located on Rack"); }} অন্যথায় যদি "); scanf ("%s", YesNo); যদি ((strcmp (YesNo, Yes) == 0)) {// Manager_user (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE, "%s", "-------- র্যাকের ডাটাবেস ----- / n"); fprintf (pFILE, "%s", "নিবন্ধের নাম:"); fprintf (pFILE, "%s", Tool. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "নিবন্ধের অবস্থান:"); fprintf (pFILE, "%s", Tool. Location); fprintf (pFILE, "%s", "\ n"); fprintf (pFILE, "%s", "নিবন্ধের নাম:"); fprintf (pFILE, "%s", Pen. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "নিবন্ধের অবস্থান:"); fprintf (pFILE, "%s", Pen. Location); fprintf (pFILE, "%s", "\ n");

fprintf (pFILE, "%s", "নিবন্ধের নাম:");

fprintf (pFILE, "%s", Case. Article_Name); fprintf (pFILE, "%s", "\ t"); fprintf (pFILE, "%s", "নিবন্ধের অবস্থান:"); fprintf (pFILE, "%s", Case. Location); fprintf (pFILE, "%s", "\ n");

fclose (pFILE);

}

printf ("অ্যাক্সেস অস্বীকার / n");

}} ব্যর্থ: যদি (led_1 || button_1 || button_2 || button_3) {printf ("apply gpio resource fail! / n"); libsoc_gpio_free (led_1); libsoc_gpio_free (button_1); libsoc_gpio_free (button_2); libsoc_gpio_free (button_3); }

ধাপ 11: প্রোগ্রামটি চালান।

ধাপ 12: উপসংহার

প্রকল্পটির ভবিষ্যতের প্রতিশ্রুতি রয়েছে, যেহেতু এটি একটি খুব কার্যকর উপায়ে উন্নতি করতে পারে, RFID´S ট্যাগগুলির জন্য সেন্সরগুলি পরিবর্তন করা যেতে পারে এবং একই সাথে RFID এর সাহায্যে আইডি কার্ডগুলি ব্যবহার করা যেতে পারে যা উপাদানটির জন্য দায়ী।

প্রস্তাবিত: