ዝርዝር ሁኔታ:

የእቃ መጫኛ መሳቢያ “ስማርት ከተሞች ሃክታቶን Qualcomm17” 13 ደረጃዎች
የእቃ መጫኛ መሳቢያ “ስማርት ከተሞች ሃክታቶን Qualcomm17” 13 ደረጃዎች

ቪዲዮ: የእቃ መጫኛ መሳቢያ “ስማርት ከተሞች ሃክታቶን Qualcomm17” 13 ደረጃዎች

ቪዲዮ: የእቃ መጫኛ መሳቢያ “ስማርት ከተሞች ሃክታቶን Qualcomm17” 13 ደረጃዎች
ቪዲዮ: የእቃ ማጠቢያ መሺን አጠቃቀም | How to load a dishwashing machine 2024, ህዳር
Anonim
የእቃ ቆጣሪ መሳቢያ
የእቃ ቆጣሪ መሳቢያ

በሚቀጥለው ሰነድ ውስጥ የማሰብ ችሎታ ያለው መሳቢያ የግንባታ እና የፕሮግራሙን ሂደት ማየት ይችላሉ። ይህ መሳቢያ የከተሞችን ጥራት የማሻሻል ዓላማ ያለው በዘንዶ ቦርድ 410 ሐ ውስጥ ፕሮግራም ተይዞ ነበር። ፕሮጀክቱ የውድድሩ አካል ነው “ብልጥ ከተሞች ሃክታቶን Qualcomm 17”።

የዚህ ፕሮጀክት ሀሳብ የተጀመረው በጣም ጥቂት ሰዎች በሚያዩት ችግር ነው ፣ ይህም እንደ ፋብሪካዎች እና እንደ ሆስፒታሎች ባሉ ኩባንያዎች የሚቀርበው የጠፋ እና መጥፎ የመሣሪያዎች እና የቁሳቁስ አያያዝ ነው። በእነዚህ ቦታዎች አንዳንድ ቁሳቁሶች እና መሳሪያዎች ለሠራተኞቹ እንቅስቃሴዎችን እንዲያደርጉ ይሰጣቸዋል ፣ ይህ ቁሳቁስ እና መሣሪያዎች ውድ በመሆናቸው ወይም እነሱን ለመተካት ኢኮኖሚያዊ ሀብቶች እጥረት በመኖራቸው እንደገና ጥቅም ላይ መዋል አለባቸው።

በሆስፒታሎች ውስጥ የተወገዱትን ቁሳቁሶች የሚቆጣጠሩ ሰዎች አሉ ፣ ግን የሰው ጣልቃ ገብነት ሲኖር ስህተቱ አለ ፣ ይህም ወደ አላስፈላጊ ወጪዎች ሊያመራ ይችላል። ለዚህ ችግር ከሁሉ የተሻለው መፍትሔ ተበድረው የተመለሱ እና በተመሳሳይ ጊዜ ተጠያቂው ማን እንደሆነ የሚያውቁ ዕቃዎችን ዝርዝር የመያዝ ችሎታ ያለው አስተዋይ መሳቢያ ነው።

ደረጃ 1: ቁሳቁሶች

ለፕሮጀክቱ የሚያስፈልገው ቁሳቁስ ቀጣዩ 1 x Dragon Board 410c ነው

1 x ዳሳሽ Mezzanine 96 ቦርዶች ለ Dragon ቦርድ 410c

1 x የዳቦ ሰሌዳ

1 x ኤምዲኤፍ (መካከለኛ ጥግግት ፋይበርቦርድ) ሉህ 61 x 122 ሳ.ሜ

5 x ዳሳሽ CNY 70

1 ኤክስ TIP31B

1 x ኤሌክትሮማግኔት

1 x 7408

1 x የቁልፍ ሰሌዳ

1 x ማያ ገጽ

3 x ብሎኖች

ተቃውሞዎች (የተለያዩ)

የመዳብ ሽቦዎች

ሙጫ

ቁፋሮ

ደረጃ 2 በኤምዲኤፍ ውስጥ ለመሳቢያ ክፍሎቹን ይቁረጡ። (ለተሻለ ውጤት የጨረር መቁረጫ ይጠቀሙ)

በኤምዲኤፍ ውስጥ ለመሳቢያ ክፍሎቹን ይቁረጡ። (ለተሻለ ውጤት የጨረር መቁረጫ ይጠቀሙ)
በኤምዲኤፍ ውስጥ ለመሳቢያ ክፍሎቹን ይቁረጡ። (ለተሻለ ውጤት የጨረር መቁረጫ ይጠቀሙ)

ደረጃ 3 በሁለት ትናንሽ መሳቢያዎች እና በትልቁ መሳቢያ ለመሳል ሁሉንም ቁርጥራጮች በአንድ ላይ ይለጥፉ።

ደረጃ 4 - በእያንዳንዱ መሳቢያ መሃከል ላይ ያሉትን መከለያዎች ይከርክሙ።

በእያንዲንደ መሳቢያ መካከሌ ውስጥ መከለያዎቹን ይከርክሙ።
በእያንዲንደ መሳቢያ መካከሌ ውስጥ መከለያዎቹን ይከርክሙ።

ደረጃ 5 - ከኋላ በኩል ባለው መሳቢያ በኩል ቀዳዳውን ያድርጉ ቀዳዳው የአነፍናፊው መጠን መሆን አለበት።

በጀርባው በኩል ባለው መሳቢያ በኩል በ Drill Make Holes አማካኝነት ቀዳዳው የአነፍናፊው መጠን መሆን አለበት።
በጀርባው በኩል ባለው መሳቢያ በኩል በ Drill Make Holes አማካኝነት ቀዳዳው የአነፍናፊው መጠን መሆን አለበት።

ደረጃ 6: እያንዳንዱ ዳሳሽ CNY 70 ን ከመዳብ ሽቦዎች ጋር ያዙ። (4 ጊዜ ተጨማሪ ይድገሙ)

ከመዳብ ሽቦዎች ጋር እያንዳንዱ ዳሳሽ CNY 70 ን ያዙ። (4 ጊዜ ተጨማሪ መድገም)
ከመዳብ ሽቦዎች ጋር እያንዳንዱ ዳሳሽ CNY 70 ን ያዙ። (4 ጊዜ ተጨማሪ መድገም)

ደረጃ 7: ልዩ ወረዳ ለሴንሰር ያገለግላል።

አንድ ልዩ ወረዳ ለሴንሰር ያገለግላል።
አንድ ልዩ ወረዳ ለሴንሰር ያገለግላል።

ደረጃ 8: ዳሳሽ Mezzanine ን ወደ ዘንዶ ቦርድ 410c ያገናኙ። (GPIO ን ለመድረስ ያገለግላል)

ዳሳሽ Mezzanine ን ወደ ዘንዶ ቦርድ 410c ያገናኙ። (GPIO ን ለመድረስ ያገለግላል)
ዳሳሽ Mezzanine ን ወደ ዘንዶ ቦርድ 410c ያገናኙ። (GPIO ን ለመድረስ ያገለግላል)

ይህ እርምጃ ከዘንዶው ቦርድ ጠፍቶ መደረጉ በጣም አስፈላጊ ነው ፣ ካልሆነ ሊቃጠል ይችላል ፣ ከሁሉም ፒን በተጨማሪ በትክክል መቀመጥ አለበት።

ደረጃ 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 int BUTTON_4; // ሦስተኛ ዳሳሽ

የተዋቀረ ተጠቃሚ {

የቻር የተጠቃሚ ስም [20]; የቻር የይለፍ ቃል [20]; } ተጠቃሚ;

የተዋቀረ የውሂብ ጎታ {

char Article_Name [20]; ቻር አካባቢ [20]; } የውሂብ ጎታ;

int ዳሳሽ 1;

int ዳሳሽ 2; int sensor3;

int sensor1_last_state;

int sensor2_last_state; int sensor3_last_state;

የቻር የተጠቃሚ ስም [50];

የቻር የይለፍ ቃል [50];

char YesNo [40];

FILE *PFILE;

ቻር አዎ [20] = {«አዎ»};

int ሩጫ = 1;

_ አበርክቱ _ ((ግንበኛ)) የማይንቀሳቀስ ባዶ _init ()

{board_config *config = libsoc_board_init (); BUTTON_1 = libsoc_board_gpio_id (ውቅረት ፣ "GPIO-A") ፤ // የጡጫ ዳሳሽ BUTTON_2 = libsoc_board_gpio_id (config, "GPIO-C"); // ሁለተኛ ዳሳሽ BUTTON_3 = libsoc_board_gpio_id (ውቅር ፣ "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 ፤ // ንክኪ; መዋቅራዊ ተጠቃሚ ካሪና; መዋቅራዊ የተጠቃሚ አስተዳዳሪ; strcpy (Karina.username ፣ “ካሪና ቫልቨርዴ”); strcpy (ካሪና የይለፍ ቃል ፣ “ከፍ ያለ አቀባዊ”); strcpy (አስተዳዳሪ. የተጠቃሚ ስም ፣ “አለቃው”); strcpy (አስተዳዳሪ. የይለፍ ቃል ፣ “ITESM”); የተዋቀረ የውሂብ ጎታ መሣሪያ; የተዋቀረ የውሂብ ጎታ ብዕር; መዋቅራዊ የውሂብ ጎታ መያዣ; strcpy (Tool. Article_Name ፣ “Tool”); የተዋቀረ የውሂብ ጎታ መሣሪያ; የተዋቀረ የውሂብ ጎታ ብዕር; መዋቅራዊ የውሂብ ጎታ መያዣ; 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); አዝራር_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))

{goto fail; } libsoc_gpio_set_direction (led_1 ፣ OUTPUT) ፤ libsoc_gpio_set_direction (button_1 ፣ INPUT) ፤ libsoc_gpio_set_direction (አዝራር_2 ፣ INPUT); libsoc_gpio_set_direction (አዝራር_3 ፣ INPUT); libsoc_gpio_set_direction (button_4 ፣ INPUT); // libsoc_gpio_set_direction (button_5 ፣ INPUT);

ከሆነ ((libsoc_gpio_get_direction (led_1)! = OUTPUT)

|| (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; } አነፍናፊ 1 = 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; ከሆነ (አነፍናፊ 1 == 1) {strcpy (Tool. Location ፣ “በመደርደሪያ ላይ የሚገኝ”); } ሌላ ከሆነ (sensor1 == 0) {strcpy (Tool. Location ፣ “በዚህ መደርደሪያ ውስጥ በጭራሽ አልተቀመጠም”) ፤ } ከሆነ (sensor2 == 1) {strcpy (Pen. Location ፣ “በመደርደሪያ ላይ የሚገኝ”); } ሌላ ከሆነ (sensor2 == 0) {strcpy (Pen. Location ፣ “በዚህ መደርደሪያ ውስጥ በጭራሽ አልተቀመጠም”) ፤ } ከሆነ (sensor3 == 1) {strcpy (Case. Location ፣ "Rack on Located"); } ሌላ ከሆነ (sensor3 == 0) {strcpy (Case. Location ፣ “በዚህ መደርደሪያ ውስጥ በጭራሽ አልተቀመጠም”) ፤ } (በመሮጥ ላይ) {libsoc_gpio_set_level (led_1 ፣ HIGH) ፤ printf ("እባክዎን የተጠቃሚ ስም ያስገቡ:"); ስካንፍ ("%s" ፣ የተጠቃሚ ስም); printf ("እባክዎን የይለፍ ቃል ያስገቡ"); ስካንፍ ("%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 ፣ HIGH) ፤ ከሆነ (sensor1 == 1 && sensor1! = sensor1_last_state) {strcpy (Tool. Location ፣ Karina.username); } ሌላ ከሆነ (sensor1 == 0 && sensor1! = sensor1_last_state) {strcpy (Tool. Location ፣ "Rack on Located"); } ከሆነ (sensor2 == 1 && sensor2! = sensor2_last_state) {strcpy (Pen. Location ፣ Karina.username); } ሌላ ከሆነ (sensor2 == 0 && sensor2! = sensor2_last_state) {strcpy (Pen. Location ፣ "Rack on Located"); }

ከሆነ (sensor3 == 1 && sensor3! = sensor3_last_state) {

strcpy (ጉዳይ። ቦታ ፣ ካሪና። የተጠቃሚ ስም); } ሌላ ከሆነ (sensor3 == 0 && sensor3! = sensor3_last_state) {strcpy (Case. Location ፣ "Rack on Located"); }} ሌላ ከሆነ (strcmp (የተጠቃሚ ስም ፣ “አለቃ”) == 0 && strcmp (የይለፍ ቃል ፣ “ITESM”) == 0) {printf (“የውሂብ ጎታውን የያዘ የጽሑፍ ፋይል ለማመንጨት ይፈልጋሉ? [አዎ/አይደለም] "); scanf ("%s", YesNo); ከሆነ ((strcmp (YesNo, Yes) == 0)) {// Manager_user (pFILE); pFILE = fopen ("Database.txt", "w"); fprintf (pFILE ፣ "%s" ፣ "-------- Rack's Database ----- / 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 ("የ gpio ሃብት አልተሳካም! / n") ፤ libsoc_gpio_free (led_1); libsoc_gpio_free (button_1); libsoc_gpio_free (አዝራር_2); libsoc_gpio_free (አዝራር_3); }

ደረጃ 11: ፕሮግራሙን ያሂዱ።

ደረጃ 12 መደምደሚያዎች

በጣም ውጤታማ በሆነ መንገድ ሊሻሻል ስለሚችል ፕሮጀክቱ የወደፊት ተስፋ አለው ፣ አነፍናፊዎቹ ለ RFID´S መለያዎች ሊለወጡ ይችላሉ እና በተመሳሳይ ጊዜ ከ RFID ጋር ለቁሳዊው ኃላፊነት ያለው ማንነትን ለመቆጣጠር የመታወቂያ ካርዶችን መጠቀም ይቻላል።

የሚመከር: