Përmbajtje:

EAL-Industry 4.0 Sistemi automatik i gjurmimit diellor: 9 hapa
EAL-Industry 4.0 Sistemi automatik i gjurmimit diellor: 9 hapa

Video: EAL-Industry 4.0 Sistemi automatik i gjurmimit diellor: 9 hapa

Video: EAL-Industry 4.0 Sistemi automatik i gjurmimit diellor: 9 hapa
Video: IIoT Based Smart Factory 4.0 Over The Cloud (Final Year Project) 2024, Korrik
Anonim
Image
Image
EAL-Industry 4.0 Sistemi automatik i gjurmimit diellor
EAL-Industry 4.0 Sistemi automatik i gjurmimit diellor

Kam hequr dorë nga projekti deri në hapjen dhe përdorimin e inteligjencës të IOT, duke përdorur informacione të mëparshme në aplikacion/hjemmeside dhe largimin nga baza e të dhënave. Për të dhëna të mëtejshme, mund të lexoni të dhëna dhe viza të tjera. Në këtë rast, ju mund të përdorni një zgjidhje të shkëlqyeshme, duke përdorur tensione të mëparshme përmes një programi Windows, i cili mund të shihet dhe të shfaqet. Ju mund të lexoni më tutje dhe të dhënat tuaja në bazën e të dhënave.

Hapi 1: Afganizmi

Filloni të njiheni me sistemin operativ në Solcelle, nëse dëshironi të kontrolloni tensionin dhe të dhënat e bazës së të dhënave. Për herë të parë do të njiheni me sistemin tuaj për të ndaluar, të dhëna, të dhëna, dhe duke përdorur Arduinoen sammen në Nyje-KUQ. 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 në gå med en lille solcelle, som kunne moniteres direkte fra Arduinoen. Vi endte også med at droppe Nyje-KUQ, dhe kjo do të ishte e mundur në një projekt të thjeshtë. Fillova të hapja aplikacionin Windows, duke përdorur të gjitha funksionet, duke përdorur të dhëna të tjera në Arduinoen, duke u regjistruar në të dhëna në bazën e të dhënave, duke përdorur bazat e të dhënave.

Hapi 2: Mbajtësi Byg Et Solpanels

Mbajtës Byg Et Solpanels
Mbajtës Byg Et Solpanels
Mbajtës Byg Et Solpanels
Mbajtës Byg Et Solpanels
Mbajtës Byg Et Solpanels
Mbajtës Byg Et Solpanels
Mbajtës Byg Et Solpanels
Mbajtës Byg Et Solpanels

Në sajë të dizajnit dhe mbajtësit të solpanelit në kanalin e ardhshëm, ju mund të përdorni një dizajn 3D dhe të krijoni një printer 3D, duke përdorur një skedar 3D të përshtatshëm për ta bërë këtë. derefter var det bare dhe montere panel og hap motor på holderen vi har vedlagt filerne fra Inventor në er lige til og bruge

Hapi 3: Automatisk Solpanel

Automatisk Solpanel
Automatisk Solpanel
Automatisk Solpanel
Automatisk Solpanel

solpanelet bruger 2 stk. Hapi motor 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 për og få bedst udnyttelse nga 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…

Hapi 4: Voltmetri

Voltmetër
Voltmetër

vi skal nu bruge nogle som vi kan dërgohen në bazën e të dhënave nga har vi brugt solpanelets volt dhe læser dem på en analog indgang på en Arduino në billedet kan i se hvordan det er forbundet og vi har også vedlagt koden til vores voltmeter.

Hapi 5: Përshkruani Programmet

Beskrivelse Af Programmet
Beskrivelse Af Programmet

Ju mund të përdorni një program të veçantë në programin Windows, nëse mund të përdorni një tension të drejtpërdrejtë. Dette gør vi ved at første at oprette en forbindelse mellem den Arduino som læser voltagen fra solcellen og app’en. Të dhënat mund të jenë më të thjeshta në Arduinoen në përpjekjet për "Të dhënat nga Arduino", të cilët i kanë kontrolluar të dhënat e njeriut dhe i kanë kërkuar në antal i "Antal man ønsker fra solcelle", datasættene kommer med dhe sekunds mellemrum. Për më tepër, mund të shkarkoni të dhëna deri në bazën e të dhënave, të ndiqni të dhënat dhe të shënoni kohën në një ID të veçantë. Unë aplikova për një numër të madh të dhënash nga baza e të dhënave, por më së miri mund të lexoj të dhëna nga burri dhe kërkuesi, dhe të shkruaj numrin dhe tekstet "Antal der hentes fra databasen". Njeriu nuk mund të vlerësohet për herë të parë në gjennemsnittet nga disse ved dhe në krijimin e të dhënave nga njeriu ønsker gennemsnittet af.

Hapi 6: Kode

duke përdorur Sistemin; duke përdorur System. Collections. Generic; duke përdorur System. ComponentModel; duke përdorur System. Data; duke përdorur System. Drawing; duke përdorur System. Linq; duke përdorur System. Text; duke përdorur System. Threading. Tasks; duke përdorur System. Windows. Forms; duke përdorur System. IO. Ports; duke përdorur MySql; duke përdorur MySql. Data. MySqlClient; duke përdorur System. Globalization; hapësira e emrave WindowsFormsApp1 {klasa e pjesshme publike Form1: Forma { /* Her har viore jep të dhëna deri në lidhjen e vargut. Åshtë e mundur që të mos zbulohet dhe të hyjë në të dhënat e mëparshme të serverit.*/ Private SerialPort myport; string _server = "127.0.0.1"; string _database = "test"; string _uid = "rrënjë"; string _pwd = ""; publike Form1 () {InitializeComponent (); } /* Unë heq dorë nga Lidhja e pavlefshme e lidhjes së vargut deri në bazën e të dhënave në të dhënat e tepërta. Hvis der laves en lidhjet vil der komme në kutinë e mesazheve hvor der står "lidhur" Hvis der ikke kan laves en connection til databasen vil der kommer en errormessage hvor i der står "Failed to connect please check your connection" */ private void knap_Click (objekt dërguesi, EventArgs e) {try {// Her laver vi en string hvor vi skriver hvordan vores connetions er til databasen. string myConn = "server =" + _server + "; baza e të dhënave =" + _baza e të dhënave + "; uid =" + _uid + "; pwd =" + _pwd + ";"; Lidhja MySqlConnection = MySqlConnection e re (myConn); lidhje. Hapur (); MessageBox. Show ("I lidhur"); } catch (Përjashtim) {MessageBox. Show ("Lidhja dështoi, kontrolloni lidhjen tuaj"); }} /* Unë e braktis dërguesin e pavlefshëm në bazën e të dhënave. Të dhënat mund të jenë të disponueshme për modulimin dhe përdorimin e të dhënave në Kutinë e të Dhënave, në të cilat nuk mund të provoni të futni informacione për të dërguar informacione në bazat e të dhënave. Përdorni komentet tuaja për të dërguar "të dhënat dërgohen në DB" ose në heqjen e të dhënave në Data Box cleart */ private void insetDB_Click (dërguesi i objekteve, EventArgs e) {// Her lever vi en string string duke përdorur një skriver hvordan vores connetions ose til databasen. string myConn = "server =" + _server + "; baza e të dhënave =" + _baza e të dhënave + "; uid =" + _uid + "; pwd =" + _pwd + ";"; duke përdorur (MySqlConnection conn = MySqlConnection i ri (myConn)) {conn. Open (); // Unë paralajmëroj paralajmërimin për të folur në të gjitha kutitë e të dhënave dhe për të treguar për fuqinë e fuqisë dhe fuqinë e përdorur dhe të dhëna të bazës së të dhënave (vargjet e ndryshme në textBoxDB. Lines) {string myInsert = "INSERT INTO power (volt) VLERAT ('" + lines. ToString () +"') "; MySqlCommand cmd = MySqlCommand i ri (myInsert, conn); cmd. ExecuteNonQuery (); } lidh. Mbyll (); MessageBox. Show ("Të dhënat janë dërguar deri në bazën e të dhënave"); textBoxDB. Clear (); }} /* I denne Void henter vi det të dhëna vi har gemmt i vores bazën e të dhënave. vi har en tekstbox hvor der er lavet 3 kolonner hvor der kommer forsekilg data ind. Për më tepër shikoni të dhëna id der efter vises hvad volten var og til sidst kan du se tidspunket det er målt på. ligjë tani nuk është e nevojshme për njerëzit antal, të cilët mund të merren nga njerëzit që mund të kenë nevojë për të gjithë ata që janë të interesuar.*/ private void knapDBGet_Click (dërguesi i objektit, EventArgs e) {listViewDb. Clear (); // Bliver i saj i 3 kolonner levet. listViewDb. Columns. Add ("id"); listViewDb. Columns. Add ("volt"); listViewDb. Columns. Add ("data"); listViewDb. MultiSelect = e vërtetë; listViewDb. View = Shiko. Detalet; // Lipi i saj vi në varg hvor vi skriver hvordan vores connetions er til databasen. string myConn = "server =" + _server + "; baza e të dhënave =" + _baza e të dhënave + "; uid =" + _uid + "; pwd =" + _pwd + ";"; duke përdorur (MySqlConnection conn = MySqlConnection i ri (myConn)) {conn. Open ();

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

int antal = int. Parse (textBoxAntal. Text); string myInsert = "SELECT * NGA (SELECT * NGA fuqia ORDER NGA ID DESC LIMIT"+antal+") nën ORDER NGA id ASC"; MySqlCommand cmd = MySqlCommand i ri (myInsert, conn);

// Lajmi i saj vihet në tabelën e të dhënave (dTabela) dhe i jep të dhëna të tjera në të dhëna dhe informacione të mëparshme.

MySqlDataAdapter MyAdapter = MySqlDataAdapter i ri (); MyAdapter. SelectCommand = cmd; DataTable dTable = DataTable e re (); MyAdapter. Fill (dTable); për (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. Rreshtat ; ListViewItem listitem = listViewItem i ri (dataRow ["id"]. ToString ()); listitem. SubItems. Add (dataRow ["volt"]. ToString ()); listitem. SubItems. Add (dataRow ["data"]. ToString ()); listViewDb. Artikuj. Shto (listitem); } lidh. Mbyll (); }

}

/* I denne Void har vi lavet en funktion hvor vi kan regne gennemsnitet nga det make make data nga 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 në masazh kur "Error 40: User is a dummy" */ private void listViewDb_SelectedIndexChanged (dërguesi i objektit, EventArgs e) {provoni {daljen e notave = 0; if (listViewDb. SelectedItems. Count> = 2) { /* Lidhësi i saj do të dalë në mënyrë të barabartë me 0 të dhëna të mëparshme dhe të dhëna të tjera, të cilat mund të fshihen nga të dhënat e tualetit dhe nga ndarjet e tjera të derdhura, nga meden antal, të cilat janë të njohura nga gjenerimet e përgjithshme. volten Ved at vi brugte CultureInfo. InvariantCulture kan vi få lov til në 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 ("Gabimi 40: Përdoruesi është një bedel"); }} /* 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 dhe ligger den data të dhëna vi modtager ind i vores Data Box Når vi trykker på Lexoni të dhëna më shumë se 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 (dërguesi i objektit, 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 i ri (); myport. BaudRate = 9600; myport. PortName = textBoxPort. Text; myport. DataBits = 8; myport. StopBits = StopBits. One; provo {// Her siger vi hvor mange den skal ind læse af gangen og hvor det skal ligges henne. myport. Hapur (); për (int i = 1; i <= int. Parse (textBoxAntalArduino. Text); i ++) {string inData = myport. ReadLine (); textBoxDB. AppendText (inData); } myport. Mbyll (); } kap (Përjashtim) {

MessageBox. Show ("Der udfylt forkert");

}

} ndihmë private e pavlefshmeBt_Click (dërguesi i objektit, EventArgs e)

{MessageBox. Show ("1 Kliko këtu për të dhënat e mëparshme për një datë tjetër në programet." p database læs fra bazën e të dhënave për më pak të dhëna gemet. " +" / n " +" 4 burra mund të pëlqejnë på id për at renge gennemsnite af de valt dataer ud. " +" / 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 dhe antal på hvor mange vil hendte fra solcellen " +" / n " +" Antal der skal hentes fra databasen skal udfyldes "); }}}

Hapi 7: Baza e të dhënave

Baza e të dhënave
Baza e të dhënave

Për më tepër, ju lutemi të zgjidhni një zgjidhje të shkëlqyeshme, nëse jeni të zgjuar dhe të kuptoni se si të kontrolloni tensionin e saj të ulët. Në këtë rast, ju mund të shikoni se çfarë do të thotë për një kohë të gjatë, për shembull, unë do të gjeni një prodhim të mëtejshëm. Për kunne gemme det data har vi lavet en database në wampserver. Për shembull, në programin Visual Studio ose në dërgimin e tij në një mesatare të tensionit të madh deri në bazën e të dhënave. Databasen gemmer værdien som en varchar, ka një dyqan të problemeve në bazën e të dhënave në modalitetin e komisionit, ai është i dyfishtë. Dhënat e bazës së të dhënave i japin të gjitha të dhënat dhe nuk e identifikojnë atë nëse ju mund ta përdorni atë, dhe nëse dëshironi, mund ta përdorni atë. Aplikacioni mund të zbulojë të dhëna të dhëna nga bazat e të dhënave, të cilat nuk mund të gjenden në të dhënat e mëparshme të gjenenemsnittet nga më shumë se një herë.

Hapi 8: HTML Hjemmeside

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

Për më tepër, përderisa nuk mund të përdorni të dhëna të tjera për bazën e të dhënave të dhëna, mund të zgjidhni një HTML ose CSS. HTML është i përzier deri në kalimin e të gjitha elementeve në anën tjetër dhe lidhjen e të dhënave në anën tjetër të informacionit në anën tjetër.

CSS është i shkëlqyeshëm deri në dhënien e html elementerne farve dhe til at give den afstand der skal være mellem alting på hjemmesiden.

Hapi 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 në en ikke tekniker er i stand til at læse data ud fra solcellen.

denne side er lavet ved në lidhësin php deri te bazat e të dhënave dhe të dhëna të dhëna në ind på hjemmeside lige si snart man loader den. ved brugen af CSS kode er det blevet sat op på en nem og overskuelige måde, med alt den data der kommer fra databasen.

Recommended: