Съдържание:

EAL-Industry 4.0 Автоматична слънчева система за проследяване: 9 стъпки
EAL-Industry 4.0 Автоматична слънчева система за проследяване: 9 стъпки

Видео: EAL-Industry 4.0 Автоматична слънчева система за проследяване: 9 стъпки

Видео: EAL-Industry 4.0 Автоматична слънчева система за проследяване: 9 стъпки
Видео: Elon Musk: The future we're building -- and boring | TED 2024, Юли
Anonim
Image
Image
EAL-Industry 4.0 Автоматична слънчева система за проследяване
EAL-Industry 4.0 Автоматична слънчева система за проследяване

I dete projekt har vi fået til opgave at lave en smart IOT løsning, hvor man scal læse data fra en enhed på en app/hjemmeside og derefter lager denne på en база данни. Fra databasen skal det da være muligt at hente dataen og vise den. Можете да харчите в gøre dette med en solcelle, hvor vi læser voltagen чрез en arduino enhed и viser dette på в приложението за Windows. По -нататък е необходимо да се променят и да се запазят данните в базата данни.

Стъпка 1: Изтегляне

Fra starten havde vi tænkt os at lave en Solcelle, fra hvor vi skulle kunne læse voltagen og gemme den på en база данни. Първо трябва да видите tænkt os at lave en hjemmeside og forbinde, база данни, hjemmesiden og Arduinoen sammen с 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 direte fra Arduinoen. Vi endte også med at droppe Node-RED, да ви vil prøve at gøre projektet просто enkelt. Записах ви в lave en приложението за Windows, hvor vi хар самлет всички функционални, алтернативни данни за Arduinoen, забавяне на данните в базата данни, само изтегляне на база данни.

Стъпка 2: Byg Et Solpanels държач

Държач на Byg Et Solpanels
Държач на Byg Et Solpanels
Държач на Byg Et Solpanels
Държач на Byg Et Solpanels
Държач на Byg Et Solpanels
Държач на Byg Et Solpanels
Държач на Byg Et Solpanels
Държач на Byg Et Solpanels

Vi begyndte og designe en owner до solpanel så vi kan bevæge det rundt efter solen vi valgte og tegne det и 3D så vi kunne printe delene ud i en 3D принтер målene skulle bare pass efter det solpanel vi har indkøbt. derefter var det bare og montere panel и 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 stk. Стъпков двигател 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

нейната ер линк до дескриптиращ компонент дер е индкобт

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 analog indgang på en Arduino p billedet kan i se hvordan det er forbundet og vi har også vedlagt koden til vores voltmeter.

Стъпка 5: Описание на програмата

Описание на програмата
Описание на програмата

Vores ide med dette program er at lave en Windows app, 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. Dataen kan nu blive læst fra Arduinoen ved at trykke på „Læs data fra Arduino“, man vælger hvor mange datasæt man ønsker ved at skrive dette antal и „Antal man ønsker fra solcelle“, datasættene kommer med et sekunds mellemrum. Никакви данни не са налични, можете да изтеглите данни в базата данни, или да въведете времева отметка и идентификационен идентификатор. Прилагам приложението, което е приведено в базата данни за данни, човек може да се нуждае от данни за човека с данни, човек, който е скрил номер, текст и текст „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: Kode

използване 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; пространство на имена WindowsFormsApp1 {публичен частичен клас Form1: Form { /* Нейните харви съхраняват данни до низ за връзка. På dennne måde ertt det nemt at lave om hvis man ændre sin база данни или друг сървър.*/ Private SerialPort myport; низ _сервър = "127.0.0.1"; низ _database = "тест"; низ _uid = "корен"; низ _pwd = ""; публичен Form1 () {InitializeComponent (); } /* Отказвам Void laver vi vores connectionstring til vores database vi bruger de data overfor. Hvis der laves en връзки vil der komme en messagebox hvor der står "connected" Hvis der ikke kan laves en връзка до база данни база данни vil error komss en errormessage hvor i der står "Неуспешно свързване, моля, проверете връзката си" */ private void knap_Click (object изпращач, EventArgs д) {опитайте {// Нейното измиване на низа hvor ви скривер hvordan vores връзки до база данни. string myConn = "server =" + _server + "; database =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; MySqlConnection връзка = нова MySqlConnection (myConn); връзка. Open (); MessageBox. Show ("Свързан"); } catch (Exception) {MessageBox. Show ("Неуспешно свързване, моля, проверете връзката си"); }} /* Отказвам изпращача за анулиране до базата данни vores. Den data der som vi har modtaget fra arduino og står и Data Box vil når vi trykker på inset bliver infomationen sendt toil databasen. Der vil komme en messages hvor der står "data send to DB" og derefter bliver Data Box cleart */ private void insetDB_Click (изпращач на обект, EventArgs e) {// Нейната лавираща програма в скрипт hvordan извежда връзки до базата данни. string myConn = "server =" + _server + "; database =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; използвайки (MySqlConnection conn = new MySqlConnection (myConn)) {conn. Open (); // I vores foreach statment læser den alle linjerne i vores Data Box и indsætters være for sig inde i tablen power and rækken volt i 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 database. 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 ønsker at 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 скривер hvordan vores connections er to databasen. string myConn = "server =" + _server + "; database =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; използвайки (MySqlConnection conn = new MySqlConnection (myConn)) {conn. Open ();

// Нейният хентер ви де сидсте до 20 id der er indsat и tablen Power и база данни.

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

// Her laver vi en data tag (dTable) hvor den data vi henter and 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 ++) {// Нейният форделер ви дет данни vi lagt ind i dtable ud i de 3 kolonner vi oprettede tidliger и koden. DataRow dataRow = dTable. Rows ; 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. Преглед на скрийн и фейл вил скрипт и масаж hvor der står "Грешка 40: Потребителят е манекен" */ private void listViewDb_SelectedIndexChanged (изпращач на обект, EventArgs e) {try {float output = 0; if (listViewDb. SelectedItems. Count> = 2) { /* Нейният ligger vi vores извежда сом за 0 sammen med den mærkeret данни som bliver lavert om til data typen float og derefter divideres der med den antal der er mærkert så den regner gennemsnitet af volten. Ved at vi brugte CultureInfo. InvariantCulture може да ви любим до bruge. i vores komatal */ foreach (ListViewItem елемент в 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å Прочетете данните 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å "bog help you" */ private void startBn_Click (изпращач на обекти, EventArgs e) {// Нейният скривър 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 ++) {низ inData = myport. ReadLine (); textBoxDB. AppendText (inData); } myport. Close (); } catch (изключение) {

MessageBox. Show ("Der udfylt forkert");

}

} private void helpBt_Click (подател на обект, EventArgs e)

{MessageBox. Show ("1 Щракнете върху данните от Solcelle за нова дата в програмата." + "\ N" + "2 щракнете върху базата данни за gemme данни." + "\ N" + "3 щракване på læs fra database for at læse den gemet data. " +" / n " +" 4 man can klike på id for at renge gennemsnite af de valt dataer ud. " +" / n " +" 5 Тествайте forbinles на база данни на данни. " +" / 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: База данни

База данни
База данни

Da vi besluttede at vi ville lave en solcellestyring, ville det være smart at vi kunne se hvor mange volt den laver lige nu. Vi ville også gerne kunne se hvad den lave ved tidliger målinger, eller hvad den i gennemsnittet har produceret i den sidste tid. Защото в kunne gemme det data har vi lavet en база данни и 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 даряващ база данни all målinger et unikt id hvor man kan se værdien hvad, og hvilke tidspunkter det er målt. Приложението Vores може да хвърли данни за търсене на данни от базата данни, така че да ги отхвърли и да ги отхвърли, като ги отхвърли.

Стъпка 8: HTML Hjemmeside

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

Der er blevet lavet en forside til den al den data vi for ind fra databasen, denne side е bygget for ved hjælp HTML og CSS. HTML е най -добрият, който може да бъде направен от всички елементи, които са елементарни, за да се покажат и да се свържат данните, за да се видят данните за човека, който може да бъде сменен.

CSS е най -добрият до момента, който дава html елементен фарв и до този момент дава възможност да се поддържат скали, които да се променят на първо място.

Стъпка 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 в php connecter до база данни и henter dataen ind på hjemmeside lige s 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.

Препоръчано: