สารบัญ:

EAL-Industry 4.0 ระบบติดตามแสงอาทิตย์อัตโนมัติ: 9 ขั้นตอน
EAL-Industry 4.0 ระบบติดตามแสงอาทิตย์อัตโนมัติ: 9 ขั้นตอน

วีดีโอ: EAL-Industry 4.0 ระบบติดตามแสงอาทิตย์อัตโนมัติ: 9 ขั้นตอน

วีดีโอ: EAL-Industry 4.0 ระบบติดตามแสงอาทิตย์อัตโนมัติ: 9 ขั้นตอน
วีดีโอ: Dsync ระบบรายงานสถานะการผลิตอัจฉริยะ เพื่อยุค Industry 4.0 by Factory Max 2024, กรกฎาคม
Anonim
Image
Image
EAL-Industry 4.0 ระบบติดตามแสงอาทิตย์อัตโนมัติ
EAL-Industry 4.0 ระบบติดตามแสงอาทิตย์อัตโนมัติ

ฉันพบโครงการก่อนหน้านี้ถึง opgave at lave en smart IOT løsning, hvor man skal læse data fra en enhed på en app/hjemmeside og derefter lager denne på en database. Fra databasen skal det da være muligt ที่ 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. Hvor det ต่อไปนี้และ muligt ที่ lagre og hente denne data fra en database.

ขั้นตอนที่ 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 ฐานข้อมูล สำหรับความช่วยเหลือจากระบบที่ lave en hjemmeside และ forbinde, databasen, hjemmesiden และ Arduinoen sammen med Node-RED Samt dette havde vi også tænkt os at monitorere e reelt solcellepanel med en อินเวอร์เตอร์ ดูสุนัข gentænke โครงการ, 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. สิ้นสุดการทำงานที่ droppe Node-RED, da vi vil prøve at gøre projektet mere enkelt ฉัน stedet valgte vi ที่ lave en Windows app, hvor vi har samlet alle funktionerne, altså data opsamlingen fra Arduinoen, lagringen af denne data på en database, samt læsning af databasen.

ขั้นตอนที่ 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 เครื่องพิมพ์ 3D เครื่องพิมพ์ 3D เครื่องพิมพ์ 3D ใช้งานไม่ได้และไม่ต้องเสียค่าใช้จ่าย derefter var det เปลือย og montere แผง og ขั้นตอนมอเตอร์ på holderen vi har vedlagt filerne fra Inventor så de er lige til og bruge

ขั้นตอนที่ 3: Automatisk Solpanel

Automatisk Solpanel
Automatisk Solpanel
Automatisk Solpanel
Automatisk Solpanel

solpanelet bruger 2 ชิ้น สเต็ปมอเตอร์และ 4 สต. lys sensor hvor vi så kan måle lys værdigerne som vi bruger til og vælge hvilken แผงการตรวจสอบ skal stå i for og få bedst udnyttelse af panelet vi har vedlagt til panelet

her er link til de forskellige ส่วนประกอบ 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 อนาล็อก เปิดใช้งาน Arduino จ่ายแล้ว ตรวจสุขภาพ ใช้งานแล้ว

ขั้นตอนที่ 5: Beskrivelse Af Programmet

โปรแกรม Beskrivelse Af
โปรแกรม Beskrivelse Af

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 และ app'en. ข้อมูลที่มีอยู่แล้วใน Arduinoen ได้ลองใช้ที่ trykke på”ข้อมูลสำหรับ Arduino”, ข้อมูลสำหรับ Arduino”, ข้อมูลที่มีอยู่แล้ว ข้อมูลผู้ใช้ ønsker ved ที่ skrive dette antal i”Antal man ønsker fra solcelle”, datasættene kommer med et. ไม่มีข้อมูลทั้งหมด, อัปโหลดข้อมูลไปยังฐานข้อมูล, ระบุเวลาและประทับเวลาและรหัสประจำตัว ฉันใช้งานที่ฐานข้อมูล hente dataen fra, man kan selv bestemme hvor mange datasæt man ønsker, ved at skrive nummeret i tekstboksen”Antal der hentes fra databasen” Man kan nu vælge at สำหรับ vist gennemsnittet fra disse ved at makkere de datasæt man ønsker gennemsnittet af.

ขั้นตอนที่ 6: Kode

การใช้ระบบ การใช้ 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 คลาสบางส่วนสาธารณะ: แบบฟอร์ม { /* เธอใช้ข้อมูลเพื่อเชื่อมต่อสตริง ปรับปรุง er det nemt ที่ lave om hvis man ændre ฐานข้อมูลบาป เซิร์ฟเวอร์ผู้ขาย */ ส่วนตัว SerialPort myport; สตริง _server = "127.0.0.1"; string _database = "ทดสอบ"; สตริง _uid = "รูท"; สตริง _pwd = ""; Form1 สาธารณะ () { 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 til databasen vil der kommer en errormessage hvor i der står "Failed to connect please check your connection" */ private void knap ผู้ส่ง, EventArgs e) { ลอง { // เธอ laver vi en string hvor vi skriver hvordan vores connetions er til databasen. สตริง myConn = "server=" + _server + ";database=" + _database + ";uid=" + _uid + ";pwd=" + _pwd + ";"; การเชื่อมต่อ MySqlConnection = MySqlConnection ใหม่ (myConn); การเชื่อมต่อเปิด (); MessageBox. Show("เชื่อมต่อแล้ว"); } catch (ข้อยกเว้น) { MessageBox. Show("ไม่สามารถเชื่อมต่อได้ โปรดตรวจสอบการเชื่อมต่อของคุณ"); } } /* ฉันยืนยันว่าผู้ส่งเป็นโมฆะ vi จนถึงฐานข้อมูล vores Den data der som vi har modtaget fra arduino og står i กล่องข้อมูลสำหรับทดลองใช้งาน ข้อมูลที่ใส่เข้าไป ข้อมูลส่งไปยังฐานข้อมูล Der vil komme en messages hvor der står " data send to DB" og derefter bliver Data Box cleart */ private void insetDB_Click(object sender, EventArgs e) { // Her laver vi en string hvor vi skriver hvordan vores connetions er til databasen. สตริง myConn = "server=" + _server + ";database=" + _database + ";uid=" + _uid + ";pwd=" + _pwd + ";"; ใช้ (MySqlConnection conn = MySqlConnection ใหม่ (myConn)) { conn. Open (); // I vores foreach statment læser den alle linjerne i vores Data Box og indsætters være for sig inde i tablen power og 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(); } } /* ฉันขอยืนยันว่า Void heter vi det data vi har gemmt i vores data base. vi en tekstbox hvor der er lavet 3 kolonner hvor der kommer forsekilg data ind. ที่ซ่อน 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(object sender, EventArgs e) { listViewDb. Clear(); // เธอ bliver จาก 3 kolonner lavet listViewDb. Columns. Add("id"); listViewDb. Columns. Add("โวลต์"); listViewDb. Columns. Add("วันที่"); listViewDb. MultiSelect = จริง; listViewDb. View = View. Details; // ลาเวนเดอร์ของเธอ vi en string hvor vi skriver hvordan vores connetions er til databasen. สตริง myConn = "server=" + _server + ";database=" + _database + ";uid=" + _uid + ";pwd=" + _pwd + ";"; ใช้ (MySqlConnection conn = MySqlConnection ใหม่ (myConn)) { conn. Open ();

// ผู้ช่วยของเธอ vi de sidste til 20 id der er indsat i tablen Power i databasen.

int antal = int. Parse (textBoxAntal. Text); string myInsert = "SELECT * FROM (SELECT * FROM พลังงาน ORDER BY id DESC LIMIT "+antal+") ย่อย ORDER BY id ASC "; MySqlCommand cmd = MySqlCommand ใหม่ (myInsert, conn);

// her laver vi en data tabel (dTable) hvor den data vi henter i ฐานข้อมูล bliver lagt ind.

MySqlDataAdapter MyAdapter = MySqlDataAdapter ใหม่ (); MyAdapter. SelectCommand = cmd; DataTable dTable = ใหม่ DataTable (); MyAdapter. Fill(dTable); สำหรับ (int i = 0; i < dTable. Rows. Count; i ++) { // ข้อมูล fordeler ของเธอ vi det vi lagt ind i dtable ud i de 3 kolonner vi oprettede tidliger i koden DataRow dataRow = dTable. Rows; ListViewItem listitem = ใหม่ ListViewItem(dataRow["id"]. ToString()); listitem. SubItems. Add(dataRow["volt"]. ToString()); รายการย่อย listitem. SubItems. Add(dataRow["date"]. 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 ฐานข้อมูล

Du makere det du vil lægge sammen และ bunden af teksboxen står der hvad gennemsnitet. Hvis der sker en fejl vil den skrive en massage hvor der står "Error 40: User is a dummy" */ private void listViewDb_SelectedIndexChanged (object sender, EventArgs e) { ลอง { float output = 0; if (listViewDb. SelectedItems. Count >= 2) { /* Her ligger vi vores output 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ågen nems regner การลงทะเบียน โวลเตน Ved at vi brugte CultureInfo. InvariantCulture กัน vi få lov til ที่ bruge ฉัน 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("Error 40: User is a dummy"); } } /* I denne Void har vi lavet så den kan læse på serieport i vores tilfælde på en arduino โฟลเดอร์ hvad der står ฉัน serieport på com port3 og ligger den data vi modtager ind i vores Data Box ก่อนหน้า ทดลองใช้งาน på Read data læser den de næste 50 linjer der bliver sendt til serieporten Hvis der er så en kan den den den den der komme en errobox hvor der vil stå "god help you" */ private void startBn_Click(object sender, 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(); สำหรับ (int i = 1; i <= int. Parse (textBoxAntalArduino. Text); i++) { string inData = myport. ReadLine (); textBoxDB. AppendText(inData); } myport. Close(); } จับ (ข้อยกเว้น) {

MessageBox. Show("Der udfylt forkert");

}

} helpBt_Click ที่เป็นโมฆะส่วนตัว (ผู้ส่งวัตถุ, EventArgs e)

{ MessageBox. Show("1 คลิกเพื่อดู data fra solcelle for læse ny date in i programet." + " \n " + "2 คลิกเพื่อดูฐานข้อมูลที่ gemme dataen" + " \n " + "3 คลิก ฐานข้อมูล på læs fra สำหรับ at læse den gemet data." + " \n " + "4 man kan klike på id for 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 et antal på hvor mange man vil hendte fra solcellen" + "\n" + " Antal der skal hentes fra databasen skal udfyldes"); } } }

ขั้นตอนที่ 7: ฐานข้อมูล

ฐานข้อมูล
ฐานข้อมูล

Da vi besluttede ที่ 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 โปรดิวเซอร์et ฉัน den sidste tid. สำหรับที่ kunne gemme det data har vi lavet en ฐานข้อมูลฉัน wampserver โปรแกรม Vi har lavet et i Visual studio som sender en string med volt måling til 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 alle målinger et unikt id hvor man kan se værdien hvad, og hvilke tidspunkter det er målt. แอปพลิเค kan hente den forskellige data fra databasen, så det er nemt at læse og den kan udregne gennemsnittet af målingerne.

ขั้นตอนที่ 8: HTML Hjemmeside

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

ดูข้อมูลเพิ่มเติมสำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อมูล vi สำหรับฐานข้อมูลแบบ ind fra, ข้อมูลด้านอื่นๆ เพิ่มเติมจาก HTML และ CSS HTML ใช้งานได้หลากหลาย ใช้งานได้ที่ Bygge alle elementerne op på siden og linke til data siden sådan at man kan komme mellem de to side.

CSS er blevet brugt til at give html elementerne farve และ 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

ใช้งานจริงและใช้งาน php er der blevet lavet en hjemmeside sådan at en ikke tekniker er i stand til at læse data ud fra solcellen.

ด้านบนและด้านล่าง vet ที่ php connecter til databasen และ henter dataen ind på hjemmeside lige så snart man loader den. ใช้งานจริงและ CSS เริ่มต้นใช้งาน blevet sat op på en nem og overskuelige måde, med alt den data der kommer fra databasen.

แนะนำ: