INHOUDSOPGAWE:

EAL-Industry 4.0 outomatiese sonopsporingstelsel: 9 stappe
EAL-Industry 4.0 outomatiese sonopsporingstelsel: 9 stappe

Video: EAL-Industry 4.0 outomatiese sonopsporingstelsel: 9 stappe

Video: EAL-Industry 4.0 outomatiese sonopsporingstelsel: 9 stappe
Video: KUKA.Sim 4.0 _интеллектуальное 3D-моделирование 2024, November
Anonim
Image
Image
EAL-Industry 4.0 outomatiese sonopsporingstelsel
EAL-Industry 4.0 outomatiese sonopsporingstelsel

Ek kan hierdie projek oplaai om slim en slim IOT -oplossings te kry, waar iemand data van 'n eenheid op 'n app/webwerf kan lees en later hierdie databasis kan laai. Databasisse kan dit moontlik wees om data en vise den. Ons het gekies om dit met 'n solcelle te maak, waar ons 'n voltooide eenheid kan gebruik en dit op 'n Windows -app kan wys. Waar dit hierna moontlik is om hierdie data van 'n databasis af te laai.

Stap 1: Afgrænsning

Ons het begin om ons gedagtes te vind en solcelle, waar ons kan lees en skryf op 'n databasis. Eerstens het ons gedink dat ons 'n webwerf en databasis, databasis, webwerf en Arduinoen saam met Node-RED kan laai. Ons het ook gedink ons kan 'n solcellepanel met 'n inverter monitor. Ons kan nie 'n projek ontwikkel nie, maar ons kan nie inverteren om vir solcellepanelet te kry nie, en daarom kan ons ook met 'n klein solcelle gaan, wat ook direkte uit Arduinoen kan plaas. Ons kan ook Node-RED gebruik, en ons sal dit eenvoudig probeer doen. Ek het eerder 'n keuse gemaak vir lawe en 'n Windows -app, waar ons alle funksies, dus data -opsameling van Arduinoen, kan opslaan deur hierdie data op 'n databasis te laai, en om databases te laai.

Stap 2: Byg Et Solpanels Houer

Byg Et Solpanels Houer
Byg Et Solpanels Houer
Byg Et Solpanels Houer
Byg Et Solpanels Houer
Byg Et Solpanels Houer
Byg Et Solpanels Houer
Byg Et Solpanels Houer
Byg Et Solpanels Houer

Ons het begin en ontwerp vir 'n solpanel, sodat ons dit in die rigting van ons soliede kan kies, en ons kan dit ook in 3D plaas, sodat ons dit kan doen as 'n 3D -printer se doelwit sou plaasvind nadat ons die solpanel kon koop. daarna was dit bloot en montere paneel en stapmotor op holderen as ons 'n lêer van uitvinders kan gebruik, sodat die een kan gebruik en gebruik

Stap 3: Outomatiese solpanel

Outomatiese solpanel
Outomatiese solpanel
Outomatiese solpanel
Outomatiese solpanel

solpanelet gebruiker 2 stk. Stap motor en 4 stk. lyssensor waar ons so baie kan gebruik, kan ons gebruik en kies watter rigtingspaneel ek kan gebruik om die beste van die panele te kry, en ons kan dit op die paneel aanskakel

haar skakel vir verskillende komponente van aankope

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…

Stap 4: Voltmeter

Voltmeter
Voltmeter

ons moet sommige data gebruik wat ons kan stuur na die databasis waar ons solpanelets gebruik het en dit op 'n analoog ingang op 'n Arduino kan gebruik, en ek kan sien hoe dit verband hou en dat ons ook kan gebruik word vir ons voltmeter.

Stap 5: Beskrywing van die program

Beskrywing van die program
Beskrywing van die program

Ons idees vir hierdie program is te laai vir 'n Windows -app, en dit kan ook 'n lewendige en soliede program wees. Dette gør vi ved at første at oprette en forbindelse mellem den Arduino som læser voltagen fra solcellen og app’en. Gegevens kan nou van Arduinoen lees word deur op "Lees data van Arduino" te klik, en hoeveel data kan mens soek om dit aantal in 'Antal man -advertensies uit solcelle' te versamel, dat data met 'n sekonde tussen ons kan kom. Wanneer al die gegewens gelees kan word, kan data opgelaai word na 'n databasis, waar dit 'n tydstempel en 'n unieke ID kan word. Ek het ook 'n moontlikheid om data van 'n databasis af te laai, en dit kan ook bepaal word of baie gegewens in 'n databank gesoek kan word. 'N Mens kan nou 'n keuse maak vir 'n vertoning van hierdie inligting wat deur die databank gemaak kan word.

Stap 6: Kode

met behulp van System; met behulp van System. Collections. Generic; met behulp van System. ComponentModel; met behulp van System. Data; met behulp van System. Teken; met behulp van System. Linq; met behulp van System. Text; met behulp van System. Threading. Tasks; met behulp van System. Windows. Forms; met behulp van System. IO. Ports; met behulp van MySql; met behulp van MySql. Data. MySqlClient; met behulp van System. Globalization; naamruimte WindowsFormsApp1 {openbare gedeeltelike klas Form1: Vorm { /* Ons het ons data tot verbindingsreeks. Op die manier kan dit maklik gemaak word as 'n mens sy databasis of bediener kan verander.*/ Private SerialPort myport; string _server = "127.0.0.1"; string _database = "toets"; string _uid = "root"; string _pwd = ""; openbare vorm1 () {InitializeComponent (); } /* Ek kan ons verbindingsstring tot ons databasis vernietig. As daar 'n verbinding en 'n konneksie verskyn, sal dit 'verbind' wees as daar 'verbonde' is as 'n verbinding tot 'n databasis van 'n foutboodskap kan voorkom, waar 'daar geen verbinding is nie', kontroleer u verbinding ' */ private void knap_Click (object sender, EventArgs e) {probeer {// Ons laver en string waar ons ons konneksies vir databasisse kan skryf. string myConn = "server =" + _server + "; databasis =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; MySqlConnection -verbinding = nuwe MySqlConnection (myConn); verbinding. Open (); MessageBox. Show ("Connected"); } catch (Exception) {MessageBox. Show ("Kon nie koppel nie, kyk asseblief na u verbinding"); }} /* Ek gee die nietige sender van ons databasis af. Die data wat ons kan ontvang van arduino en staan in Data Box, sal wanneer ons probeer om inligting in databases te stuur. Daar sal boodskappe verskyn waar "data na DB gestuur word" en daarna Data Box cleart */ private void insetDB_Click (object sender, EventArgs e) {// Laver vi en string hoe ons hoe ons konneksies ons databasisse kan skryf. string myConn = "server =" + _server + "; databasis =" + _databasis + "; uid =" + _uid + "; pwd =" + _pwd + ";"; met behulp van (MySqlConnection conn = nuwe MySqlConnection (myConn)) {conn. Open (); // Ek kan ons gegewens in ons databank en invoegers in ons databank sien (in reëls in textBoxDB. Lines) {string myInsert = "INVOER IN VOLT (volt) WAARDES ('" + lines. ToString () +"') "; MySqlCommand cmd = nuwe MySqlCommand (myInsert, conn); cmd. ExecuteNonQuery (); } verbind. Close (); MessageBox. Show ("Data word gestuur tot databasis"); textBoxDB. Clear (); }} /* Ek het 'n nietige verklaring vir ons data wat ons in ons databasis het. ons het 'n tekstboks waarin daar drie kolonne gemaak word waarin data versend kan word. Die eerste viser data id daar na verskyn wat volten kan en tot sidst kan jy se tidspunket dit is maaltye. net nu kan 'n mens 'n aantal mans kies om dit te kan doen as 'n mens wil hê dat 'n mens wil soek of minder.*/ private void knapDBGet_Click (object sender, EventArgs e) {listViewDb. Clear (); // Haar word die 3 kolonner gemaak. listViewDb. Columns. Add ("id"); listViewDb. Columns. Add ("volt"); listViewDb. Columns. Add ("datum"); listViewDb. MultiSelect = waar; listViewDb. View = Bekyk. Details; // Haar laver vi en string hoe ons skryf hoe ons konneksies na databasisse gaan. string myConn = "server =" + _server + "; databasis =" + _databasis + "; uid =" + _uid + "; pwd =" + _pwd + ";"; met behulp van (MySqlConnection conn = nuwe MySqlConnection (myConn)) {conn. Open ();

// Hier kan ons die laaste tot 20 inskrywings in die tabel in Power i databasen plaas.

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 = nuwe MySqlCommand (myInsert, conn);

// Haar laver vi en datatabel (dTable) waar die data ons in die databank kan plaas.

MySqlDataAdapter MyAdapter = nuwe MySqlDataAdapter (); MyAdapter. SelectCommand = cmd; DataTable dTable = nuwe DataTable (); MyAdapter. Fill (dTable); for (int i = 0; i <dTable. Rows. Count; i ++) {// Her fordeler vi det data vi added ind i dtable ud i de 3 kolonner vi oprettede earlyer in koden. DataRow dataRow = dTable. Rows ; ListViewItem listitem = nuwe ListViewItem (dataRow ["id"]. ToString ()); listitem. SubItems. Add (dataRow ["volt"]. ToString ()); listitem. SubItems. Add (dataRow ["datum"]. ToString ()); listViewDb. Items. Add (listitem); } verbind. Close (); }

}

/* Ek het 'n nietige uitwerking op ons funksie waarin ons die algemene data van die gegewe data kan opspoor.

U maak dit moontlik om saam te werk en 'n bundel van teksboksens te bevat. As daar 'n fout en 'n massering is wat 'fout 40: gebruiker is 'n dummy' */ private void listViewDb_SelectedIndexChanged (voorwerp sender, EventArgs e) {probeer {float output = 0; if (listViewDb. SelectedItems. Count> = 2) { /* Haar lê ons uitset as wat 0 saam met die merkkeretdata kan word om data te float en dan te verdeel met die aantal dat daar mærkert kan word as die algemene inligting volten. Ved at vi brugte CultureInfo. InvariantCulture kan ons liefde kry om te gebruik. i ons komatal */ foreach (ListViewItem item in listViewDb. SelectedItems) {output += float. Parse (item. SubItems [1]. Text, CultureInfo. InvariantCulture)/ listViewDb. SelectedItems. Count; } Output. Text = output. ToString (); }} vang {MessageBox. Show ("Fout 40: gebruiker is 'n dummy"); }} /* Ek het geen leidraad om die reeks in ons geval te kan lees nie. Die leser wat daar staan in serieport op port3 en lê die data wat ons ontvang in ons data -boks, wanneer ons data lees om die volgende 50 reëls te lees, sal dit na serieports gestuur word as daar 'n probleem is dat dit nie kan lees nie daar kan 'errobox' kom, of 'god help you' */ private void startBn_Click (object sender, EventArgs e) {// Hier kan u die data gebruik wat u kan gebruik om dit te kan lees. textBoxDB. Clear (); myport = nuwe SerialPort (); myport. BaudRate = 9600; myport. PortName = textBoxPort. Text; myport. DataBits = 8; myport. StopBits = StopBits. One; probeer {// Her se vi hvor mange kan lees af gangen og hvor det skal ligge henne. myport. Open (); for (int i = 1; i <= int. Parse (textBoxAntalArduino. Text); i ++) {string inData = myport. ReadLine (); textBoxDB. AppendText (inData); } myport. Close (); } vang (Uitsondering) {

MessageBox. Show ("Der udfylt forkert");

}

} private leemte helpBt_Click (voorwerp sender, EventArgs e)

{MessageBox. Show ("1 Klik om data van die solcelle te lees om die datum in die program te lees." + "\ N" + "2 klik op die databankinvoeging vir gemme data." + "\ N" + "3 klik " +" / n " +" 4 man kan 'n identifikasie vir 'n gegenereerde databank kry. " +" / n " +" 5 Toets verbied om databases te bestuur. "" Die databank moet aangevul word "); }}}

Stap 7: Databasis

Databasis
Databasis

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. Ons wil ook graag dat die laai deur vroeëre verwerkers, of wat die inskrywing van die vervaardiger in die laaste tyd kan hê. Vir data kan ons 'n databasis en wampserver skep. Ons het 'n program gemaak in Visual Studio as sender en string vir voltallige dataverwerking. Database kan waardeer as 'n varchar, wat ons probleme met die databank kon stoor, sou dit moontlik wees om dit dubbel te maak. Ons databasis gee alle maatreëls en unieke id's waar 'n mens waarde kan kry, en watter tydspunkter dit is. Ons app kan verskillende data van databasisse bevat, sodat dit maklik is om te lees en dit kan 'n volledige insig van die databasis maak.

Stap 8: HTML Hjemmeside

HTML tuis
HTML tuis
HTML tuis
HTML tuis
HTML tuis
HTML tuis
HTML tuis
HTML tuis

Daar is 'n voorblad gemaak vir al die gegewens vir databases, hierdie kant is opgebou deur HTML en CSS. HTML is gebruik om alle elemente op 'n bladsy te bou en om data te laat opdate dat so 'n mens tussen die een kan kom.

CSS is gebruik vir die gee van HTML -elemente in kleur en vir die afstand wat tussen die webwerwe moet wees.

Stap 9: PHP Hjemmeside

PHP tuisblad
PHP tuisblad
PHP tuisblad
PHP tuisblad
PHP tuisblad
PHP tuisblad

deur brugen van php is daar 'n webwerf soos hierdie gemaak en kan ek nie tegnieke lees om data uit solcellen te lees nie.

hierdie kant word gemaak deur php -verbindings tot databasisse en data in te voer op 'n webwerf wat so gou moontlik 'n mens kan laai. Deur die CSS -kode te gebruik, kan dit op 'n enkele manier en op 'n hoë manier gebruik word, met die data wat van databasisse kom.

Aanbeveel: