Orodha ya maudhui:
- Hatua ya 1: RFID Kortlæser
- Hatua ya 2: Servomotor (Anlæg)
- Hatua ya 3: Hifadhidata ya MySQL - Indhold
- Hatua ya 4: Arduino Kode
- Hatua ya 5: Ulinganishaji wa Fomu za Windows
- Hatua ya 6: Materialeliste
- Hatua ya 7: Fobindelsesdiagram / I / O Lliste
Video: EAL - Internet Internet - Fabrikshal: Hatua 7
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
Ili kufanya kazi kwa kutumia vifaa vya kuchapisha na kutekeleza mfumo na mfumo wa kutumia vifaa vya 4.0. Ninaelezea ushiriki, na kuiga masimulizi ya uigaji kwa picha. Ninaanguka kwenye huduma na huduma, na hivyo kuwa dioder. Udevendig, sidder der en RFID kortlæser, der skulle bruges til at lukke de relevante in i fabrikshallen. Takwimu zingine, vito kwenye hifadhidata kwenye Wampserver.
Hatua ya 1: RFID Kortlæser
Der er inkluderet en RFID orodha. Hensigten at ud from de num num der der på det kort, og den brik der er med er skrevet ind i vores Arduino kode. Tambua wakati wa kufanya kazi kwa njia ya upigaji kura kwa njia ya habari, ikiwa ni pamoja na kufanya kazi, utafta kazi yako kwa kutumia njia ya kupendeza, na kufanya kazi kwa njia ya msingi kutekelezewa kwa njia inayofaa.
Kama wewe ni mtoaji wa habari, unaweza kupata habari juu ya orodha. Lyset slukkes igen, en en en enhed, der er godkendt af kortlæseren, bliver detekteret.
Kortlæseren bliver fjernet fra projektet, da den kører seriel kommunikation. Kutoa taarifa kwa kufanya kazi kwa ajili ya kufanya kazi kwa njia ya bandari ya huduma, na kufanya kazi kwa Arduino Uno. Seriel porten, skal også bruges to Arduinoens ordrer, den vil kwa fresi vores Windows Forms applikation. Mimi hutaja swala moja kwa moja.
Hatua ya 2: Servomotor (Anlæg)
Ninaanguka kwa huduma, na kwa mtindo wa Arduino Uno. Den skalsimulere et anlæg, der kan productrer forskellige produkter. Kutumia, kuweka orodha ya vifaa kwa kutumia bidhaa, bliver gemt i en MySQL database. Motoren kan køre ud i tre forskellige positioner. Msimamizi wa msimamo wa Hver tre forskellige produkter. Kuongeza produktet er færdigproduceret, kører motoren tilbage i nul position, og afventer nye ordrer. Det er meningen at man, via WPF applikationen kan afgive nye ordrer to motoren. Hvad bliver zinazozalisha bliver gemt kwenye database ya MySQL.
Hatua ya 3: Hifadhidata ya MySQL - Indhold
Mimi MySQL databasen vil der være tre tabeller. Shimo la mmiliki wa shimo medje med hvilke produkter der er bestilt, na hvor mange. Katika andiko lenu kila kitu kinatokana na utaftaji wa bidhaa. Tena, na tunaweka orodha ya wamiliki wa hati juu ya uchunguzi zaidi juu ya matumizi ya bidhaa, na habari zaidi. Huduma zote za mtandaoni, tafadhali wasiliana na mipango ya uzalishaji. Kutoa fomu za Windows kwenye fomu za kupigia debe, na vifaa vyako vinatuma Arduinoen, pamoja na orodha. Kwa sasa kunaweza kutolewa kwa mpango, kila mtu atatumia Arduinoen, kwa sababu, orodha ya data inayofaa ya mpango wa habari. Kutoa taarifa juu ya data database kwa data. En Integer, en String, som bliver kaldt en VarChar, ni orodha. Utafikia wakati na Stempu ya Muda, Utafute kazi, na utafute habari.
Hatua ya 4: Arduino Kode
# pamoja
Servo myServo;
int servoPos; char produkt = '0'; kuanzisha batili () {myServo.ambatanisha (3); // Ujumuishaji wa mfululizo huanza Serial.begin (9600); } kitanzi batili () {// Læsning fra serial port produkt = Serial.read (); // Godkendelse af ingående ordrer switch (produkt) {// Produkt A (1) tutaamua kesi kesi 1 ': myServo.write (50); kuchelewesha (1000); andika (0); kuchelewesha (1000); Serial.println ("Imefanywa"); kuvunja; // Produkt B (2) udføres i denne kesi kesi '2': myServo.write (100); kuchelewesha (1000); andika (0); kuchelewesha (1000); Serial.println ("Imefanywa"); kuvunja; // Produkt C (3) udføres i denne kesi kesi '3': myServo.write (150); kuchelewesha (1000); andika (0); kuchelewesha (1000); Serial.println ("Imefanywa"); kuvunja; }}
Hatua ya 5: Ulinganishaji wa Fomu za Windows
kutumia System; kutumia System. Collections. Generic; kutumia System. ComponentModel; kutumia System. Data; kutumia Mfumo. Kuchora; kutumia System. Linq; kutumia Mfumo. Maandishi; kutumia System. Treading. Tasks; kutumia System. Windows. Forms; kutumia System. Collections; kutumia Bandari za System. IO; kutumia MySql; kutumia MySql. Data. MySqlClient;
nafasi ya majina WindowsFormsApp2
{darasa la sehemu ya umma Fomu1: Fomu {/ * Ninaelezea darasa bliver kwa umma kutofautisha oprettet. Herunder er der oprettet en Darasa (MySqlConnection) na viwango vya viwango vyangu ni brug, kwa kuwa saa moja ya kukataliwa kwa huduma ya MySQL. Ydermere er der oprettet en String (connectionString) den bruges to at definere hvilken bruger der skal on password and password, and database of database for er tale am. Kutumia idadi kamili, na safu ya 2d (safu). Grunden til det er at en ordrer kan bestå af flere produktioner af and produkt, au zaidi kuhusu bidhaa produkter. Huduma za Seriel kwa Arduinoen bliver zitamwonyesha. Ili kupata maelezo zaidi juu ya Darasa (BackgroundWorker). Shimo katika mpango bora wa mpango wa bliver inayowezesha kutafakariwa kwa watu wengi. Mimi dette tilfælde er det brugbart, da der kan blive oprettet nye ordrer, med korte mellemrum. * / Uunganisho wa MySqlConnection; unganisho la kambaString;
binafsi int ordrenummer;
siri ya kibinafsi [,] utaratibu = mpya int [100, 100]; siri ya kibinafsi kutumaOrder = mpya int [100]; kamba ya kibinafsi prodType;
SerialPort sp = mpya SerialPort ();
BackgroundWorker binafsi myWorker = mpyaWorker Worker ();
Fomu1 ya umma ()
{AnzishaComponent (); // Her bliver vores String (connectionString) ufafanuzi. unganishoString = "seva = 192.168.1.100; userid = mzizi; pwd = langeland; hifadhidata = arduino;"; / * Mtoaji wake anayebadilishwa "mfanyikazi wangu" alikaa kwenye kumbukumbu kwa kila aina ya vifaa bora vya kufanya kazi. * / myWorker. DoWork + = mpya DoWorkEventHandler (myWorker_DoWork); myWorker. WorkerReportsProgress = kweli; myWorker. WorkerSupportsCancellation = kweli; // Bliver yake mwenyewe baggrundsgennemløbet eksikveret. MyWorker. RunWorkerAsync (); // Her bliver der defineret hvilket format datoen kører i. Muundo wake bora unapewa data ya MySQL. tareheTimePicker1. CustomFormat = "yyyy-MM-dd"; tareheTimePicker1. Format = DateTimePickerFormat. Custom; }
utupu wa kibinafsi Afgiv_Ordre_Click (mtumaji wa vitu, EventArgs e)
{/ * Her er oprettet nogle variabler, der kun bliver brugt i dette batili. De tre første er Integers der skal definite hvilket produkt der er tale om. Ili kufanya kazi kwa ajili ya kutafakari juu ya mtu ambaye angeweza kutafakari juu ya mtu mwingine. Tenga nafasi ya kufanya kazi kwa ajili ya kufanya kazi kwa kila siku. * / int produktA = 1; int produktB = 2; int produktC = 3; int prodA = int. Parse (prodAOrder. Text); int prodB = int. Parse (prodBOrder. Text); int prodC = int. Parse (prodCOrder. Text); mpangilioLength = prodA + prodB + prodC; / * Nitagawanya vitanzi kwa biliver oprettet, zilizowekwa kwenye biti ya bidhaa zinazozalishwa na kutafutwa, na kutafutwa zaidi. * / kwa (int prod1A = 0; prod1A <prodA; prod1A ++) {order [ordrenummer, prod1A] = produktA; }
kwa (int prod1B = (prodA); prod1B <(prodB + prodA); prod1B ++) {order [ordrenummer, prod1B] = produktB; }
kwa (int prod1C = (prodA + prodB); prod1C 99)
{mkusanyiko wa joto = 0; } // Matumizi yake bora ya utengenezaji wa data. DBQuery ("Ingiza ndani ya` bestilteprod` (`Produkt A`,` Produkt B`, `Produkt C`) MAADILI (" + prodA + "," + prodB + "," + prodC + ")"); // Nyongeza yake juu ya uangalizi zaidi juu ya bidhaa zinazotengenezwa na mangler kwenye blive productrert, til databasen. DBQuery ("UPDATE` total` SET `manglende produkter` = (` manglende produkter` + ("+ (prodA + prodB + prodC) +")) WAPI 1 "); }
// Ninazuia utupu wa hali ya chini na nafasi ya kufanya kazi, lagt ind.
utupu wa kibinafsi myWorker_DoWork (mtumaji wa vitu, Tukio la Mikutano e) {wakati (ni kweli) {/ * Tutaangalia saa moja kwa moja kwenye orodha ya watu, lakini wakati huo huo unapoendelea. */ Hali(); wakati (sendOrder. Sum ()! = 0) {/ * Ninatambua kitanzi kwa njia ya kitanzi, saa moja kwa moja itafunguliwa kwa Nambari Kuu (i) itafikia mwisho wa kutafakari juu ya mpango wa kutolea huduma, lakini pia. Variablen (i) kigger på den pågældende række i arrayet, der på nuværende tidspunkt arbejdes i. Shimo kigger na kolonnen, ser hvilket tal der står i kolonnen. Tallet bliver inafanya kazi, na inaweza kutumika katika kutofautisha video kwa kila siku, na kwa muda mrefu tuwe na maoni juu ya kitu kimoja. Kwa hivyo, tutaweza kuuza bidhaa kwa kupakia kwa data. Endeni ikiwa mkombozi unapewa kommunikationen kwa Arduinoen åbnet, na mtu atapewa malipo kwa mtu anayetuma Arduinoen. * / kwa (int i = 0; i <sendOrder. Urefu; i ++) {Hali (); sp. BaudRate = 9600; sp. PortName = "COM4"; Sp. Fungua (); sp. Andika (SendOrder . ToString ()); // Programu inaweza kutekelezwa ikiwa taarifa, taarifa kamili, habari za habari na huduma zitatekelezwa (i). ikiwa (SendOrder == 1) {prodType = "Produkt A"; } kingine ikiwa (SendOrder == 2) {prodType = "Produkt B"; } kingine ikiwa (SendOrder == 3) {prodType = "Produkt C"; }
kutumaOda = 0;
// Nakala ya kutangaza kuwa inapeana mpangilio wa samlet 0, bliver de udførte produkter uploadet in databasen, and komunikationen til Arduinoen, bliver lukket. ikiwa (SendOrder. Sum () == 0) {DBQuery ("INSERT INO` udforte` (`Produkt type`) VALUES ('" + prodType + "')");
DBQuery ("UPDATE` total` SET `productret produkter` = (` productret produkter` + 1), `manglende produkter` = (` manglende produkter` - 1) ");
sp. Funga ();
kuvunja; } / * Wafanyikazi wake katika Arduinoen er færdig med ordren. Der kvitteres med et "done". Wakati huo huo, njia mpya ya kupigia debe itatumiwa kwenye kikundi kupakia kwenye orodha ya watu kwa Grunden, lakini wakati huo huo watu watakuwa wamepata nafasi ya kufanya hivyo. * / sp. ReadTo ("Imefanywa");
DBQuery ("INSERT IN` udforte` (`Produkt type`) VALUES ('" + prodType + "')");
DBQuery ("UPDATE` total` SET `productret produkter` = (` productret produkter` + 1), `manglende produkter` = (` manglende produkter` - 1) ");
sp. Funga (); Hali(); }} // Ninachambua kitanzi kwa njia ya kitanzi kwa njia mpya ya kutafakari, na kwa sababu hiyo inaweza kutekelezwa kwa njia ya maombi (kwa muhtasari wa kutangazwa kwa orodha ya watu). kwa (int i = 0; i <order. GetLength (0); i ++) {int test = order [i, 0]; ikiwa (mtihani! = 0) {kwa (int j = 0; j <100; j ++) {sendOrder [j] = kuagiza [i, j];
agizo [i, j] = 0;
}
kuvunja; }}
}
} / * Her er oprettet and void ved navn "Hali". Tambua kwa sababu ya fuvu la kichwa kwenye skrive de samme linjer kode flere steder. Mimi huamua mtu kuwa na maoni juu ya "Hali" inayofaa kwa sababu hakuna utaftaji wa nafasi ya kutokukamilika, kutafutiliwa mbali, na kutafakari. * / Hali ya utupu wa kibinafsi () {/ * Mtu wake wa MySQL anayekataza kazi, ataona orodha mpya ya orodha ya jumla ya simu, na ataangalia orodha ya watu. * / MySqlConnection con = mpya MySqlConnection (connectionString); Fungua (); kamba str = "chagua * kutoka jumla"; MySqlCommand com = mpya MySqlCommand (str, con); Msomaji wa MySqlDataReader = com. ExecuteReader (); // Kufanya kazi kwa siku kwa kufanya Baggrundskoden kwenye Programu ya CPU, na kwa hivyo tutaweza kupumzika tena. msomaji Soma (); MissingProd. Invoke ((MethodInvoker) mwakilishi {// Her bliver de manglende produkter, samt produkter der er lavet, skrevet ud på applikationen. MissingProd. Text = "manglende produkter:" + (msomaji ["manglende produkter"]. ToString () OrdereProd. Text = "produkter lavet:" + (msomaji ["productret produkter"]. ToString ());}); // Her bliver der implementere hvad procentbaren, skal udfyldes efter. ProcenteDone. Lebo. ikiwa (int. Parse (msomaji ["productret produkter"]. ToString ())! = 0) {// Mtu wake anayetengeneza bidhaa na bidhaa kutoka kwa mtu anayetengeneza bidhaa. få det ud i procent. ProcenteDone. Text = Math. Round ((kuelea. Parse (msomaji ["productret produkter"]. ToString ()) /(float. Parse (kusoma (kuelea. Parse (msomaji ["manglende produkter"]. ToString ())) * * 100). ToString (););}} mwingine {ProcenteDone. Text = "0%";}}); // Her lukkes MySQL forbindelsen. reader. Close (); con. Close ();} // I dette batili bliver alle produkter, der er productret på den valgte dato, lagt ud på a pplikationen. utupu wa kibinafsi Vis_Produkter_Click_1 (mtumaji wa vitu, EventArgs e) {string date = dateTimePicker1. Value. ToString () Ondoa (10);
tarehe = tareheTimePicker1. Text;
swala ya kamba = "CHAGUA` Produkt type`, `Tid` FROM udforte WHERE Tid> = '" + date + "00:00:00' NA Tid <= '" + tarehe + "23:59:59'"; kutumia (connection = new MySqlConnection (connectionString)) ukitumia (MySqlCommand command = new MySqlCommand (swala, unganisho)) ukitumia (MySqlDataAdapter adapta = mpya MySqlDataAdapter (amri)) {DataTable prodTable = DataTable mpya (); adapta Jaza (prodTable);
dataGridView1. DataSource = prodTable;
}
} // mimi hupunguza utupu wa bliver MySQL. Shina la kutumbukiza kwenye vifaa vya kuzuia beliver, mwongozo, na uzima. utupu wa kibinafsi DBQuery (kamba cmd) {swala ya kamba = cmd; kutumia (connection = new MySqlConnection (connectionString)) ukitumia (MySqlCommand command = new MySqlCommand (swala, unganisho)) {connection. Open ();
amri. ExecuteScalar ();
unganisho Funga ();
} } } }
Hatua ya 6: Materialeliste
1 stk. Arduino Uno
1 stk. Micro servo SG90 9g
Hatua ya 7: Fobindelsesdiagram / I / O Lliste
Servomotor:
+ = Upya
- = Panga
Ishara = Grøn
Ilipendekeza:
EAL - Viwanda 4.0 Ukusanyaji wa Takwimu za GPS kwenye Rc Car: Hatua 4
EAL - Viwanda 4.0 Ukusanyaji wa Takwimu za GPS kwenye Rc Gari: Katika hii inayoweza kufundishwa tutazungumza juu ya jinsi tunavyoweka moduli ya GPS kwenye gari la RC na kuchapisha data iliyokusanywa kwenye ukurasa wa wavuti kwa ufuatiliaji rahisi. Tumefanya previosly kufundisha juu ya jinsi tulivyotengeneza gari letu la RC, ambalo linaweza kupatikana hapa. Hii inatumia th
EAL- Iliyopachikwa - Mchanganyiko wa Mchanganyiko: Hatua 4
EAL- Iliyopachikwa - Mchanganyiko wa Mchanganyiko: Mradi huu ni mradi mmoja wa shule, ambao nimefanya kuchagua somo la 2.1 C-programu katika EAL. Ni mara ya kwanza, wakati nilifanya mradi wa Arduino na programu ya C. Huo ni mradi, ambao unawasilisha kufuli ya mchanganyiko. Mchanganyiko wa mchanganyiko
EAL - Programu Iliyopachikwa: Mchanganyiko wa Pipi 1000: 9 Hatua
EAL - Programu Iliyopachikwa: Mchanganyiko wa Pipi 1000: Kwa mradi wetu huko Arduino tumeamua kutengeneza mchanganyiko wa pipi. Wazo ni kwamba mtumiaji anaweza kushinikiza kitufe na kisha motors zitaanza kutoa pipi ndani ya bakuli, na wakati programu hiyo itakapoanza, itasimama. Rasimu ya kwanza w
EAL- Iliyowekwa ndani-hali ya hewa: 5 Hatua
EAL- Iliyowekwa ndani-hali ya hewa: Kwa mradi wetu wa shule, tulipewa jukumu la kuunganisha arduino katika mfumo wa kiotomatiki. Tulichagua kutengeneza sensorer ya hali ya hewa ya ndani, ambayo inaweza kuhisi joto, unyevu na kiwango cha decibel ndani ya nyumba. Tulichimba mashimo kadhaa kwenye baraza la mawaziri,
EAL - Uhifadhi wa Smart: Hatua 3
EAL - SmartStorage: Hii ni projekt ya SmartStorage na Kasper Borger Tulinius