Բովանդակություն:

EAL-Industry 4.0 ավտոմատ արևային հետևող համակարգ ՝ 9 քայլ
EAL-Industry 4.0 ավտոմատ արևային հետևող համակարգ ՝ 9 քայլ

Video: EAL-Industry 4.0 ավտոմատ արևային հետևող համակարգ ՝ 9 քայլ

Video: EAL-Industry 4.0 ավտոմատ արևային հետևող համակարգ ՝ 9 քայլ
Video: Industrie 4.0 - The Fourth Industrial Revolution 2024, Նոյեմբեր
Anonim
Image
Image
EAL-Industry 4.0 ավտոմատ արևային հետևող համակարգ
EAL-Industry 4.0 ավտոմատ արևային հետևող համակարգ

Ես հեռացրել եմ նախագիծը, որը թույլ կտա բացել և խելացի ՏՏ ծառայություններ մատուցել, եթե ուզում եք, որ տվյալների հավաքագրումը կատարվի ծրագրում/հեռախոսի մեջ և դուրս գա տվյալների բազայից: Fra databasen skal det da være muligt at hente dataen og vise den. Vi har valgt at gøre dette med en solcelle, hvor vi læser voltagen via en arduino enhed og viser dette på en Windows app. Այսուհետ այն կարող է օգտագործվել տվյալների բազայի տվյալների հետ մեկտեղ:

Քայլ 1: Afgrænsning

Սկսելու համար անհրաժեշտ է իմանալ, թե ինչպես է այն աշխատում Solve- ում, եթե ցանկանում եք իմանալ, թե ինչպես կարելի է օգտագործել լարվածությունը և gemme- ն ՝ տվյալների բազայում: Առաջին անգամ այն պետք է օգտագործվի osve lave en hjemmeside og արգելել, տվյալների շտեմարան, hjemmesiden og Arduinoen sammen med Node-RED: Samt dette havde vi også tænkt os at monitorere e reelt solcellepanel med en inverter. Vi måtte dog gentænke projektet, da vi ikke kunne få inverteren til at virke med solcellepanelet, derfor endte vi med at gå med en lille solcelle, som kunne moniteres direkte fra Arduinoen. Vi endte også med at droppe Node-RED, da vi vil prøve at gøre projektet mere enkelt: Ես ուզում եմ իմանալ, թե ինչպես կարելի է օգտագործել Windows ծրագիրը, ինչպես նաև օգտագործել գործառնական ծառայություններ, ինչպես նաև տվյալների փոխանցում Arduinoen- ում, տվյալների փոխանցում տվյալների բազայում, տվյալների բազայում:

Քայլ 2. Byg Et Solpanels Holder

Byg Et Solpanels սեփականատեր
Byg Et Solpanels սեփականատեր
Byg Et Solpanels սեփականատեր
Byg Et Solpanels սեփականատեր
Byg Et Solpanels սեփականատեր
Byg Et Solpanels սեփականատեր
Byg Et Solpanels սեփականատեր
Byg Et Solpanels սեփականատեր

Կարող եք նախագծել և պահել ձեր սեփական ձեռքերով, որպեսզի կարողանաք օգտագործել ձեր սարքերը և եռաչափ սարքերը, ինչպես նաև 3D տպիչով և 3D տպիչով: derefter var det bare og montere panel og step motor på holderen vi har vedlagt filerne fra Inventor så de er lige til og bruge

Քայլ 3: Automatisk Solpanel

Ավտոմատիսկ Solpanel
Ավտոմատիսկ Solpanel
Ավտոմատիսկ Solpanel
Ավտոմատիսկ Solpanel

solpanelet bruger 2 հատ. Քայլ շարժիչ og 4 stk. lys sensor hvor vi så kan måle lys værdigerne som vi bruger til og vælge hvilken retning panelet skal stå i for og få bedst udnyttelse af panelet vi har vedlagt koden til panelet

her er link til de forskellige komponenter der er indkøbt

www.amazon.co.uk/gp/product/B00KCP76CS/ref…

www.amazon.co.uk/Neuftech-Stepper-28BYJ-48…

www.amazon.co.uk/Photo-Resistor-5mm-Photoc…

www.amazon.co.uk/Arduino-A000066-ATMEGA328…

Քայլ 4: Վոլտմետր

Վոլտմետր
Վոլտմետր

vi skal nu bruge nogle data som vi kan sende til database der har vi brugt solpanelets volt og læser dem på en analogous indgang på en Arduino på billedet kan i se hvordan det er forbundet og vi har også vedlagt koden til vores voltmeter.

Քայլ 5. Ներբեռնեք Af Programmet ծրագիրը

Beskrivelse Af Programmet
Beskrivelse Af Programmet

Vores ide med dette ծրագիրը er lave en Windows ծրագիրը, der kan vise voltagen live fra en solcelle. Dette gør vi ved at første at oprette en forbindelse mellem den Arduino som læser voltagen fra solcellen og app’en. Տվյալները կարող են պարունակվել Arduinoen- ի կողմից ՝ փորձելով «L datas data fra Arduino» - ում, այնուհետև նա կարող է իմանալ, թե ինչպես է մարդը հետևում իր «Antal man ønsker fra solcelle», տվյալների հավաքածուին և գաղտնիքներին: Այնուհետև մենք կարող ենք տվյալների փոխանցել տվյալների բազայից, այնուհետև այն կարող է ներբեռնել տվյալների բազայում, ինչպես նաև ժամանակային նշաններով և նույնականացման ID- ով: I app’en er der også mulighed for at hente dataen from database, man can selv bestemme hvor mang datasæt man and insker, found at skrive nummeret and tekstboksen”Antal der hentes fra databasen”: Man can nu vælge at for vist gennemsnittet fra disse ved at makkere de datasæt man ønsker gennemsnittet af.

Քայլ 6: Կոդ

օգտագործելով System; օգտագործելով System. Collections. Generic; օգտագործելով System. ComponentModel; օգտագործելով System. Data; օգտագործելով System. Drawing; օգտագործելով System. Linq; օգտագործելով System. Text; օգտագործելով System. Threading. Tasks; օգտագործելով System. Windows. Forms; օգտագործելով System. IO. Ports; օգտագործելով MySql; օգտագործելով MySql. Data. MySqlClient; օգտագործելով System. Globalization; namespace WindowsFormsApp1 {հանրային մասնակի դասարան Form1: Form { /* Her har vi vore data to connectionstring. Այն կարող է օգտագործվել միայն այն բանից հետո, երբ նա պետք է մուտքագրի տվյալների բազայի կամ սերվեր:*/ մասնավոր SerialPort myport; string _server = "127.0.0.1"; string _database = "test"; string _uid = "արմատ"; string _pwd = ""; հանրային ձև 1 () {InitializeComponent (); } /* I denne Void laver vi vores connectionstring til vores database vi bruger de data overfor. Hvis der laves en connections vil der komme en messagebox hvor der står "connected" Hvis der ikke kan laves en connection to til databasen vil der kommer and errormessage hvor i der står "Չհաջողվեց միանալ, խնդրում ենք ստուգել ձեր կապը" */ private void knap_Click (օբյեկտ ուղարկող, EventArgs ե) {try {// Her laver vi en string hvor vi skriver hvordan vores connetions er til databasen. string myConn = "server =" + _server + "; տվյալների բազա =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; MySqlConnection կապ = նոր MySqlConnection (myConn); միացում: Բաց (); MessageBox. Show («Միացված է»); } catch (Բացառություն) {MessageBox. Show («Չհաջողվեց միանալ, խնդրում ենք ստուգել ձեր կապը»); }} /* Ես չեմ ճանաչում ուղարկողին vi til vores տվյալների բազան: Տվյալները կարող են օգտագործվել տվյալների փոխանցման տուփի կամ տվյալների փոխանցման տուփի միջոցով, որը կարող է օգտագործվել տվյալների բազայի վերաբերյալ տվյալների փոխանցման համար: Der vil komme en hvor der står "data send DB" կամ derefter bliver Data Box cleart */ private void insetDB_Click (օբյեկտ ուղարկող, EventArgs e) {// Her laver vi en string string կամ viver skriver hvordan vores connetions or til databasen. string myConn = "server =" + _server + "; տվյալների բազա =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; օգտագործելով (MySqlConnection conn = նոր MySqlConnection (myConn)) {conn. Open (); // I vores foreach statment læser den alle linjerne i vores Data Box ind indsætters være for sig inde i tablen power and rækken volt and databasen foreach (var lines in textBoxDB. Lines) {string myInsert = "INSERT INTO power (volt) VALUES ('" + lines. ToString () +"') "; MySqlCommand cmd = նոր MySqlCommand (myInsert, conn); cmd. ExecuteNonQuery (); } conn. Close (); MessageBox. Show («Տվյալները ուղարկվում են մինչև տվյալների բազա»); textBoxDB. Clear (); }} /* I denne Void henter vi det data vi har gemmt i vores տվյալների բազա: vi har en tekstbox hvor der er lavet 3 kolonner hvor der kommer forsekilg data ind. Den første viser data id der efter vises hvad volten var og til sidst kan du se tidspunket det er målt på. lige nu hentes det antal man har valgt til målinger men det kan laves om hvis man insins in se felre eller mindre.*/ private void knapDBGet_Click (օբյեկտի ուղարկող, EventArgs e) {listViewDb. Clear (); // Her bliver de 3 kolonner lavet. listViewDb. Columns. Add («id»); listViewDb. Columns. Add («վոլտ»); listViewDb. Columns. Add («ամսաթիվ»); listViewDb. MultiSelect = ճշմարիտ; listViewDb. View = Դիտել. Մանրամասներ; // Her laver vi en string hvor vi skriver hvordan vores connetions er til databasen. string myConn = "server =" + _server + "; տվյալների բազա =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; օգտագործելով (MySqlConnection conn = նոր MySqlConnection (myConn)) {conn. Open ();

// Her henter vi de sidste til 20 id der er indsat i tablen Power and databasen.

int antal = int. Parse (textBoxAntal. Text); string myInsert = "SELECT * FROM (SELECT * FROM power ORDER BY id DESC LIMIT"+antal+") sub ORDER BY id ASC"; MySqlCommand cmd = նոր MySqlCommand (myInsert, conn);

// Her laver vi en data tabel (dTable) hvor den data vi henter i databasen bliver lagt ind.

MySqlDataAdapter MyAdapter = նոր MySqlDataAdapter (); MyAdapter. SelectCommand = cmd; DataTable dTable = նոր DataTable (); MyAdapter. Fill (dTable); for (int i = 0; i <dTable. Rows. Count; i ++) {// Her fordeler vi det data vi lagt ind i dtable ud i de 3 kolonner vi oprettede tidliger i koden. DataRow dataRow = dTable. Տողեր ; ListViewItem listitem = նոր ListViewItem (dataRow ["id"]. ToString ()); listitem. SubItems. Add (dataRow ["volt"]. ToString ()); listitem. SubItems. Add (dataRow ["ամսաթիվ"]. ToString ()); listViewDb. Items. Add (listitem); } conn. Close (); }

}

/* I denne Void har vi lavet en funktion hvor vi kan regne gennemsnitet af det makere data vi har hentet fra databasen.

Du makere det du vil lægge sammen og i bunden af teksboxen står der hvad gennemsnitet. Hvis der sker en fejl vil den skrive en մերսում «Սխալ 40. Օգտագործողը կեղծ է» */ private void listViewDb_SelectedIndexChanged (օբյեկտի ուղարկող, EventArgs ե) {try {float output = 0; if (listViewDb. SelectedItems. Count> = 2) { /* Her ligger vi verores som er 0 sammen med den mærkeret data som bliver lavert om til data typen float og derefter divideres der med den antal der er mærkert så den regner gennemsnitet af վոլտեն Ved at vi brugte CultureInfo. InvariantCulture kan vi få lov til at bruge. i vores komatal */ foreach (ListViewItem item in listViewDb. SelectedItems) {output += float. Parse (item. SubItems [1]. Text, CultureInfo. InvariantCulture)/ listViewDb. SelectedItems. Count; } Output. Text = output. ToString (); }} catch {MessageBox. Show («Սխալ 40. Օգտատերը կեղծ է»); }} /* I denne Void har vi lavet så den kan læse på serieport i vores tilfælde på en arduino. Den læser hvad der står i serieport på com port3 og ligger den data vi modtager ind i vores Data Box Når vi trykker på Read data læser den de næste 50 linjer der bliver sendt til serieporten Hvis der er en fejl så den ikke kan læse daten vil der komme en errobox hvor der vil stå "god help you" */ private void startBn_Click (օբյեկտ ուղարկող, EventArgs e) {// Her skriver du de data du skal bruge til at kunne connct til det du skal læse fra. textBoxDB. Clear (); myport = նոր SerialPort (); myport. BaudRate = 9600; myport. PortName = textBoxPort. Text; myport. DataBits = 8; myport. StopBits = StopBits. One; փորձել {// Her siger vi hvor mange den skal ind læse af gangen og hvor det skal ligges henne. myport. Open (); for (int i = 1; i <= int. Parse (textBoxAntalArduino. Text); i ++) {string inData = myport. ReadLine (); textBoxDB. AppendText (inData); } myport. Close (); } բռնել (բացառություն) {

MessageBox. Show («Der udfylt forkert»);

}

} private void helpBt_Click (օբյեկտ ուղարկող, EventArgs ե)

{MessageBox. Show ("1 Սեղմեք տվյալների փոխանցման համար անհրաժեշտ է ամսաթվին i programet." på læs fra տվյալների շտեմարան ՝ gæmet den տվյալների փոխանցման համար: " +" / n " +" 4 մարդ կարող է նման բան իմանալ դրա համար. " +" / n " +" 5 Test forbinles ser om databasen køre. " +" / n " +" port navn skal udfyldes med den port man har sat solcellen til " +" / n " +" der skal skrives et antal på hvor mange man vil hendte fra solcellen " +" / n " +" Antal der skal hentes fra databasen skal udfyldes »); }}}

Քայլ 7: Տվյալների բազա

Տվյալների շտեմարան
Տվյալների շտեմարան

Եթե ցանկանում եք, որ այն բավարարվի, դուք կարող եք խելացի լինել, եթե ցանկանում եք, որ այն ավելի լավ լինի, քան երբևէ: Vi ville også gerne kunne se hvad den lave ved tidliger målinger, eller hvad den i gennemsnittet har productionret i den sidste tid. For at kunne gemme det data har vi lavet en database and wampserver. Ես ավելի լավ և ծրագիր եմ ներկայացնում Visual studio- ի կամ ուղարկողի միջոցով, որը կարող է օգտագործվել տվյալների բազայում: Databasen gemmer værdien som en varchar, da vi havde store problemer med at databasen ville modtage komatal, hvis den gemte dem i double. Vores տվյալների բազան տալիս է բոլոր målinger և unikt id hvor man kan se værdien hvad, and hvilke tidspunkter det er målt- ը: Oresրագիրը կարող է տվյալների բազայի տվյալների փոխանցման համար անհրաժեշտ տեղեկատվություն ստանալ, այնուհետև այն չի կարող օգտագործվել մի քանի անգամ, երբ կարող եք օգտագործել բազմաթիվ տեղեկություններ:

Քայլ 8: HTML Hjemmeside

HTML Hjemmeside
HTML Hjemmeside
HTML Hjemmeside
HTML Hjemmeside
HTML Hjemmeside
HTML Hjemmeside
HTML Hjemmeside
HTML Hjemmeside

Եթե ուզում եք, որ տվյալների փոխանցումը կատարվի տվյալների բազայում, կարող եք օգտագործել HTML- ը և CSS- ը: HTML er blevet brugt til at bygge alle elementerne op på side and lin linke til data side side to put at man kan komme mellem de to side.

CSS er blevet brugt til at give html elementerne farve og til at give den afstand der skal være mellem alting på hjemmesiden.

Քայլ 9: PHP Hjemmeside

PHP Hjemmeside
PHP Hjemmeside
PHP Hjemmeside
PHP Hjemmeside
PHP Hjemmeside
PHP Hjemmeside

ved brugen af php er der blevet lavet en hjemmeside sådan at en ikke tekniker er i stand til at læse data ud fra solcellen.

denne side er lavet ved at php conneer til databasen and henter dataen ind på hjemmeside lige så snart man loader den. ved brugen af CSS կոդ կամ det blevet sat op på en nem og overskuelige måde, med alt den data der kommer fra databasen.

Խորհուրդ ենք տալիս: