Mündəricat:
- Addım 1: RFID Kortlser
- Addım 2: Servomotor (Sürücü)
- Addım 3: MySQL Database - Indhold
- Addım 4: Arduino Kode
- Addım 5: Windows Forms Tətbiqi
- Addım 6: Materialist
- Addım 7: Fobindelsesdiagram / I / O Lliste
Video: EAL - Industriel İnternet - Fabrikshal: 7 Addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Sənayedə 4.0 -in bütün sistemlərində avtomatlaşdırılmış sistemin işləməsini təmin edəcəksiniz. İstəyirəm ki, ən çox simulyasiyanı ən yaxşı şəkildə həyata keçirək. Xidməti mühərriklə birlikdə işləyə bilərəm. İstifadəçi, RFID -in bir hissəsi olduğu kimi, bütün sənədlərin istehsalına da icazə verir. Əlavə məlumat, qiymətli məlumatlar və verilənlər bazası və Wampserver.
Addım 1: RFID Kortlser
Bu, RFID xidmətlərinin istifadəsini təmin edir. Məlumatların sayı nə qədər çox olarsa, Arduino sistemində də bir o qədər çox şey var. Müvəqqəti məlumatların və məlumatların təhlili, bir çox məlumatların tapılması ilə əlaqədardır.
Heç bir şey təqdim etmədikdə, bu heç bir şey yaratmadı. Şəxsi məlumatların yoxlanılması, yoxlanılması, təhvil verilməsi və s.
Layihə layihələri ilə bağlı bütün məlumatları əldə edə bilərsiniz. Arduino Uno ilə əlaqəli hər hansı bir layihə ilə əlaqədar olaraq, bu proqramlar bir yerdədir. Bu proqramlar, Windows Forms tətbiqetmələri ilə əlaqədar olaraq, Arduinolar tərəfindən yoxlanılır. Mən bunu başa düşmədim.
Addım 2: Servomotor (Sürücü)
Arduino Uno -nun xidməti mühərriki ilə əlaqə qururam. İstifadəçi və mütəxəssislər, istehsalçıların ən yaxşı istehsalçılarından biridir. Bu, MySQL verilənlər bazası ilə əlaqəli bütün məhsullar və xidmətlərdir. Mühüm mövqelərdən istifadə etmək üçün mühərriklər. İstənilən mövqeyi simvollaşdırın. Məhsullar heç bir yerdə yoxlanılmadan, heç bir mövqedə deyil, həm də heç bir yerdə yoxdur. Ətraflı məlumat, WPF tətbiqləri vasitəsi ilə mühərriklərin istifadəsinə verilə bilər. İstənilən istehsalçı MySQL verilənlər bazası hazırlayır.
Addım 3: MySQL Database - Indhold
Mən MySQL verilənlər bazası ilə bağlı bütün məlumatları əldə edə bilərəm. Şəxsi məlumatların saxlanması üçün ən yaxşı məlumatları əldə edə bilərsiniz. İstənilən vaxt bütün məhsulların satışını həyata keçirin. Bu gündən etibarən, bu məhsulların istehsalçıları və istehsalçıları bir daha gözdən keçirə bilərlər. İstehsalçı, istehsalçı və prodüserlərin ən çox maraqlandığı yerdir. Windows Forms proqramları, məlumat bazası və digər proqramlar üçün istifadə edilə bilər. Arduino, məlumat və ya məlumat bazası ilə əlaqəli məlumatların təhvil verilməsi ilə bağlı heç bir məlumat yoxdur. Verilənlər bazası üçün məlumat göndərmək üçün məlumat göndərin. Bütün ədədlər, String və digər məlumat bazaları da var. Zaman damgası və məlumat bazası ilə əlaqəli məlumatları təhlil edin.
Addım 4: Arduino Kode
#daxil edin
Servo myServo;
int servoPos; char produkt = '0'; void setup () {myServo.attach (3); // Serial kommunikasiya Serial.begin başlayır (9600); } void loop () {// Ətraflı serial serial produkt = Serial.read (); // Sifariş vermə düymələri (məhsullar) {// Məhsul A (1) "1" vəziyyətinə baxılır: myServo.write (50); gecikmə (1000); myServo.write (0); gecikmə (1000); Serial.println ("Bitti"); fasilə; // Produkt B (2) "2" vəziyyətinə bax: myServo.write (100); gecikmə (1000); myServo.write (0); gecikmə (1000); Serial.println ("Bitti"); fasilə; // Produkt C (3) "3" vəziyyətini nəzərdən keçirin: myServo.write (150); gecikmə (1000); myServo.write (0); gecikmə (1000); Serial.println ("Bitti"); fasilə; }}
Addım 5: Windows Forms Tətbiqi
System. Collections. Generic istifadə edərək; System. ComponentModel istifadə edərək; System. Data istifadə edərək; System. Drawing istifadə edərək; System. Linq istifadə edərək; System. Text istifadə edərək; System. Threading. Tasks istifadə edərək; System. Windows. Forms istifadə edərək; System. Collections istifadə; System. IO. Ports istifadə etmək; MySql istifadə etmək; MySql. Data. MySqlClient istifadə edərək;
ad sahəsi WindowsFormsApp2
{Public partial class Form1: Form { /* I class class bliver allle public variabler oprettet. MySQL serverləri üçün bu gündən etibarən bütün siniflərdə (MySqlConnection) məlumatların təhlili aparılır. Yadda saxla ki, String (connectionString) şifrəni və şifrəni yoxlamaq üçün bütün məlumatları tapmağa imkan verir. Tam ədəd, və 2d sıra (orde). Məhsullar və məhsullar istehsalçıları arasında ən yaxşı nəticəni əldə edə bilərsiniz. Arduino ilə əlaqə qurun və onu təyin edin. Sınıf (BackgroundWorker) ilə əlaqəli məlumatları yoxlayın. Bu proqramlar ən yaxşı proqramlar arasında ən yaxşısıdır. Mən sizə lazım olan hər şeyi öyrənə bilərəm. */ MySqlConnection bağlantısı; simli əlaqəString;
şəxsi int ordrenummer;
private int [,] order = new int [100, 100]; şəxsi int SendOrder = yeni int [100]; xüsusi simli prodType;
SerialPort sp = yeni SerialPort ();
şəxsi BackgroundWorker myWorker = yeni BackgroundWorker ();
ictimai forma1 ()
{InitializeComponent (); // Onun bliveri String (connectionString) anlayışına malikdir. connectionString = "server = 192.168.1.100; userid = root; pwd = langeland; verilənlər bazası = arduino;"; /* Onun "MyWorker" proqramı müxtəlif vaxtlarda müxtəlif proqramların hazırlanmasında iştirak etdi. */ myWorker. DoWork += yeni DoWorkEventHandler (myWorker_DoWork); myWorker. WorkerReportsProgress = doğru; myWorker. WorkerSupportsCancellation = doğru; // Onun həyat yoldaşı heç bir problemi yoxdur. myWorker. RunWorkerAsync (); // Məlumatların hvilket formatında olduğu kimi. Bu, MySQL verilənlər bazası üçün ən yaxşı formatdır. dateTimePicker1. CustomFormat = "yyyy-AA-gg"; dateTimePicker1. Format = DateTimePickerFormat. Custom; }
şəxsi boşluq Afgiv_Ordre_Click (obyekt göndərən, EventArgs e)
{ /* Məlumat yoxlanıldıqdan sonra, məlumatların etibarsız olduğu bildirilir. Bütün tam məlumatların təhlili ilə bağlı bütün məlumatların təhlili başa çatmışdır. Müvafiq məlumatları əldə etmək üçün bu gündən etibarən istifadəçilərə məlumat verin. Sifariş verildikdən sonra ora daxil olun. */ 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); int orderLength = prodA + prodB + prodC; /* Mən döngələr haqqında məlumatı yoxlayıram, istehsalçını və istehsalçını tanıyıram. */ for (int prod1A = 0; prod1A <prodA; prod1A ++) {order [ordrenummer, prod1A] = produktA; }
for (int prod1B = (prodA); prod1B <(prodB+prodA); prod1B ++) {order [ordrenummer, prod1B] = produktB; }
üçün (int prod1C = (prodA + prodB); prod1C 99)
{ordrenummer = 0; } // Verilənlər bazası üçün ən yaxşı məlumatları təqdim edir. DBQuery ("INSTERT INTO` bestilteprod` "(` Produkt A`, `Produkt B`,` Produkt C`) VALUES (" + prodA +", " + prodB +", " + prodC +") "); // Verilənlər bazasında istehsalçıların ən çox qazandıqları işlərdir. DBQuery ("UPDATE` total` SET `manglende produkter` = (` manglende produkter` +(" +(prodA +prodB +prodC) +")) WHERE 1 "); }
// Mən bütün məlumatları boşa çıxardığımı başa düşdüm.
şəxsi boşluq myWorker_DoWork (obyekt göndərən, EventArgs e) {while (true) { /* Sifariş verildikdən sonra hər hansı bir məlumatı əldə edə bilərsiniz. */ Status (); while (SendOrder. Sum ()! = 0) { /* Mən bütün məlumatları bir neçə gündən sonra əldə edə bilərəm, bu da bütün məlumatların sona çatdığını göstərir. Variablen (i) hər hansı bir problemi həll etmək üçün hər şeyi hazırlayın. Yığıncaq və kolonenlər arasında ən yaxşı xidmətlər var. Tallet bomba yoxlamaq üçün ən çox tələb olunan məlumatları, məlumatların sayını 0 -dan 0 -a qədər artıra bilərsiniz. Əgər siz Arduino ilə əlaqə qurarsanız, bu məlumatları Arduino ilə göndərə bilərsiniz. */ for (int i = 0; i <SendOrder. Length; i ++) {Status (); sp. BaudRate = 9600; sp. PortName = "COM4"; sp. Open (); sp. Write (SendOrder . ToString ()); // Proqramlar, əgər ifadələr yoxlanılarsa və ya dəyişdirilməsə, hər şeyi dəyişdirə bilərsiniz. if (SendOrder == 1) {prodType = "Produkt A"; } else if (SendOrder == 2) {prodType = "Produkt B"; } else if (SendOrder == 3) {prodType = "Produkt C"; }
SendOrder = 0;
// Heç bir problem yoxdursa, məlumatların verilməsi 0, məlumat bazası və məlumatların yüklənməsi, Arduino və digər məlumatların verilməsi ilə əlaqədardır. if (SendOrder. Sum () == 0) {DBQuery ("INFERT INTO` udforte` ("Produkt type`) VALUES ('" + prodType + "')"));
DBQuery ("UPDATE` total` SET` prodüser produkter` = (`prodüser prodüser` + 1),` manglende produkter` = (`manglende produkter` - 1)");
sp. Close ();
fasilə; } /* Arduino haqqında daha çox məlumat əldə edin. Dərhal "bitdi". Bu proqramlar, məlumat bazası və ya məlumat bazası yükləndikdən sonra, məlumatların silinməməsi üçün bütün məlumatların yüklənməsini təmin edir. */ sp. ReadTo ("Bitti");
DBQuery ("INSERT INTO` udforte` ("Produkt type`) VALUES ('" + prodType + "')");
DBQuery ("UPDATE` total` SET` prodüser produkter` = (`prodüser prodüseri` + 1),` manglende produkter` = (`manglende produkter` - 1)");
sp. Close (); Vəziyyət (); }} // Mən bunu başa düşdükdən sonra heç bir problemi həll etməyəcəyəm, çünki bu heç bir şey yoxdur (bu, 0 -a bərabərdir). for (int i = 0; i <order. GetLength (0); i ++) {int test = order [i, 0]; if (test! = 0) {for (int j = 0; j <100; j ++) {SendOrder [j] = order [i, j];
sifariş [i, j] = 0;
}
fasilə; }}
}
} /* "Vəziyyət" yazılmamışdır. Ətraflı məlumat əldə etmək üçün bir neçə gündən sonra istifadə edin. Mən "Status" un yoxlanılması haqqında məlumatları yoxladım və bu məlumatların boşluğunu yoxladım, məlumatları və sənədləri dəyişdirdim. * / private void Status () { /* Mənim MySQL -in bütün məlumatları, bütün məlumatların cədvəlini və bütün məlumatları gizlədir. */ MySqlConnection con = yeni MySqlConnection (connectionString); con. Open (); string str = "cəmi arasından seçin *"; MySqlCommand com = yeni MySqlCommand (str, con); MySqlDataReader oxucu = com. ExecuteReader (); // Bu proqramlar CPU -da və ya kompüterinizdə işləyərkən istifadə edilə bilər. oxucu. Oxu (); MissingProd. Invoke ((MethodInvoker) nümayəndəsi {// Məşhur istehsalçı, istehsalçı və proqramçı, MissiyaProd. Text = "manglende produkter:" + (oxucu ["manglende produkter"]. ToString ()); OrdereProd. Text = "produkter lavet:" + (oxucu ["prodüser produkter"]. ToString ());}); // Həyata keçirtdiyi bütün proqramlar, daha çox məlumat əldə etdi. ProcenteDone. Invoke ((MethodInvoker) nümayəndəsi {// İstifadəçi məlumatları mənim SQL -də "prodüserlər tərəfindən hazırlanır" ifadəsi yoxlanılırsa, ifadələr yoxlanılır. Hepsini aç və ya "0%" düyməsini basın. etiket. if (int. Parse (oxucu ["prodüser produkter"]. ToString ())! = 0) {// İstehsalçı və prodüserlər həm də həm də çox böyük işlər görürlər. ProcenteDone. Text = Math. Round ((float. Parse (oxucu ["prodüser produkter"]. ToString ()) /(float. Parse(oxucu ["produceret istehsalçısı "]. ToString ()) + float. Parse (oxucu ["manglende produkter"]. ToString ()))) * 100). ToString (),);} başqa {ProcenteDone. Text = "0%";}}); // MySQL -in yüklənməsi oxucu. Close (); con. Close ();} // Mən bütün məlumatları ləğv etmişəm. nə vaxt, nə də bir müddət bəyənmə. şəxsi boşluq Vis_Produkter_Click_1 (obyekt göndərən, EventArgs e) {string date = dateTimePicker1. Value. ToString (). Sil (10);
tarix = dateTimePicker1. Text;
string sorğusu = "SELECT` Produkt type`, `Tid` FROM udforte WHERE Tid> = '" + date + "00:00:00' AND Tid <= '" + date + "23:59:59'"; (əlaqə = yeni MySqlConnection (connectionString)) istifadə edərək (MySqlCommand əmri = yeni MySqlCommand (sorğu, əlaqə)) istifadə edərək (MySqlDataAdapter adapter = yeni MySqlDataAdapter (əmr)) {DataTable prodTable = new DataTable (); adapter doldurun (prodTable);
dataGridView1. DataSource = prodTable;
}
} // Mən MySQL -in istifadəsini dayandırdım. Göstərilən vaxtdan etibarən bütün məlumatların yoxlanılması, yoxlanılması və oxunması ilə əlaqədardır. şəxsi boşluq DBQuery (string cmd) {string sorğusu = cmd; istifadə edərək (bağlantı = yeni MySqlConnection (connectionString)) istifadə edərək (MySqlCommand əmri = yeni MySqlCommand (sorğu, əlaqə)) {connection. Open ();
command. ExecuteScalar ();
əlaqə. Close ();
} } } }
Addım 6: Materialist
1 stk. Arduino Uno
1 stk. Mikro servo SG90 9g
Addım 7: Fobindelsesdiagram / I / O Lliste
Servomotor:
+ = Yol
- = Sırala
Siqnal = Qrn
Tövsiyə:
EAL - Rc Car -da Sənaye 4.0 GPS Məlumatlarının Toplanması: 4 Addım
EAL - Rc Car -da Sənaye 4.0 GPS Məlumatlarının Toplanması: Bu Təlimat kitabında bir RC avtomobildə GPS modulunu necə qurduğumuzdan və topladığımız məlumatları asan izləmək üçün veb səhifəyə yerləşdirməyimizdən bəhs edəcəyik. Burada tapıla bilən RC avtomobilimizi necə hazırladığımızı əvvəlcədən öyrətdik. Bu istifadə edir
EAL - Gömülü - Qarışıq Kilid: 4 Addım
EAL- Gömülü- Qarışıq Kilid: Bu layihə, EAL-da 2.1 C-proqramlaşdırma fənni seçmək üçün hazırladığım bir məktəb layihəsidir. Arduino layihəsi və C-proqramlaşdırma etdiyim ilk dəfədir. Bu bir kombinasiya kilidi təqdim edən bir layihədir. Qarışıq kilid
EAL - Gömülü Proqramlaşdırma: Candy Mikser 1000: 9 Addım
EAL - Gömülü Proqramlaşdırma: Candy Mixer 1000: Arduino layihəmiz üçün konfet üçün bir qarışdırıcı hazırlamağa qərar verdik. Fikir ondan ibarətdir ki, istifadəçi bir düyməni basa bilər və sonra mühərriklər konfetləri bir qaba atmağa başlayacaq və proqram öz axarına çatdıqda dayanacaq
EAL- Daxili iqlim: 5 addım
EAL- Daxili Bağlı İqlim: Məktəb layihəmiz üçün bir arduino sistemini avtomatlaşdırılmış sistemə inteqrasiya etmə vəzifəmiz vardı. İçəridə temperatur, rütubət və desibel səviyyəsini hiss edə bilən qapalı iqlim sensoru hazırlamağı seçdik. Kabinetdə bir neçə deşik qazdıq
EAL - SmartStorage: 3 addım
EAL - SmartStorage: Bu Kasper Borger Tulinius tərəfindən SmartStorage üçün bir layihədir