Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
I dette projekt har vi fået til opgave at lave en smart IOT løsning, hvor man skal læse data fr en Enhanced på en app/hjemmeside og derefter lager daily på en database. Více databází se blíží více než jeden den v den. Více informací naleznete v části Další informace o možnostech vybití prostřednictvím aplikace Arduino a vylepšené možnosti zobrazení aplikace Windows. Poté se můžete více zabývat zpožděním a každodenním ukládáním dat z databáze.
Krok 1: Afgrænsning
Začínáme mít hlavní nabídku v solcelle, takže jsme si vybrali jednu z nejoblíbenějších databází. Nejvíce se osvědčilo při procházení, procházení a procházení databází, dalších a dalších typů Node-RED. Podívejte se na další informace o sledování solárního panelu s invertorem. Více než jeden pes bude projektovat více, než kolikrát se bude střídat s více než polovinou, bude to mít za následek vyšší úroveň, než bude monitores direkte fra Arduinoen. Více informací o Droppe Node-RED, da vi vil prøve ve společnosti gøre projektet simply enkelt. I stedet valgte vi at lave en Windows app, hvor vi har samlet all all funktionerne, altså data opsamlingen Ard Arduinoen, lagringen af denne data på en database, samt læsning af databasen.
Krok 2: Držák Byg Et Solpanels
Více než jeden design držáku do solpanel så vi can bevæge det rundt efter solen vi valgte og tegne det i 3D så vi kunne printe delene ud i en 3D printer målene skulle bare passe efter det solpanel vi har indkøbt. 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
Krok 3: Automatisk Solpanel
solpanelet bruger 2 stk. Krokový motor o 4 stk. lys sensor hvor vi så kan måle lys værdigerne some 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
její odkaz do té doby, než dojde k indskø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…
Krok 4: Voltmetr
Údaje o skalách, které odesíláme do databáze, budou odeslány do databáze solpanelů volt og læser dem på en analog indgang på en Arduino på billedet can i se hvordan det er unfundundet og vi har også vedlagt koden til vores voltmeter.
Krok 5: Program Beskrivelse Af
Nejvíce je možné programovat v aplikaci Windows nebo Windows, kde můžete volitelně žít od začátku. Dette gør vi ved at første at oprette en prohibindelse mellem den Arduino som læser voltagen fra solcellen og app’en. Data jsou k dispozici pro všechny typy Arduinoen, které jsou k dispozici na stránce s daty „Arduino“. Všechny další údaje mohou mít k dispozici více než jednu databázi, která může ukládat data do databáze, ale také mít k dispozici různé časové značky a časové značky. I app’en er der også mulighed for at hente dataen fra database, man can selv bestemme hvor mange datasæt man ønsker, ved at skrive nummeret i 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.
Krok 6: Kode
pomocí System; using System. Collections. Generic; pomocí System. ComponentModel; pomocí System. Data; pomocí System. Drawing; pomocí System. Linq; pomocí System. Text; pomocí System. Threading. Tasks; pomocí System. Windows. Forms; pomocí System. IO. Ports; pomocí MySql; pomocí MySql. Data. MySqlClient; using System. Globalization; namespace WindowsFormsApp1 {public partial class Form1: Form { /* Her har viores data til connectionstring. Vícenásobně více se může stát, že dojde k chybě na serveru nebo databázovém serveru.*/ Private SerialPort myport; string _server = "127.0.0.1"; string _database = "test"; string _uid = "root"; řetězec _pwd = ""; public Form1 () {InitializeComponent (); } /* I Denne neplatné 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_Click (object odesílatel, EventArgs e) {try {// Her laver vi en string hvor vi skriver hvordan vores connetions er til databasen. řetězec myConn = "server =" + _server + "; databáze =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; Připojení MySqlConnection = nové MySqlConnection (myConn); připojení. Open (); MessageBox. Show („Připojeno“); } catch (Exception) {MessageBox. Show ("Failed to connect please check your connection"); }} /* Denně ruším odesílatele do databáze. Data jsou k dispozici pro různé typy dat a datových schránek. Zprávy mohou odesílat zprávy „odesílat data do DB“a poté odeslat bliver Data Box vymazat */ private void insetDB_Click (odesílatel objektů, EventArgs e) {// Její laver vi en string hvor vi skriver hvordan vores connetions er til databasen. řetězec myConn = "server =" + _server + "; databáze =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; using (MySqlConnection conn = new MySqlConnection (myConn)) {conn. Open (); // I forores statment læser den all all 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 = new MySqlCommand (myInsert, conn); cmd. ExecuteNonQuery (); } conn. Close (); MessageBox. Show („Data odeslána do databáze“); textBoxDB. Clear (); }} /* Denně se neplatí, že se data ukládají do databáze. vi har en tekstbox hvor der er lavet 3 kolonner hvor der kommer forsekilg data ind. Můžete si také prohlédnout údaje o svých návštěvách, které se mohou lišit od ostatních kanálů. více než jeden člověk má více lidí, kteří si mohou vybírat více lidí, kteří si to myslí.*/ private neplatný knapDBGet_Click (odesílatel objektů, EventArgs e) {listViewDb. Clear (); // Její bliver de 3 kolonner lavet. listViewDb. Columns. Add ("id"); listViewDb. Columns. Add ("volt"); listViewDb. Columns. Add ("datum"); listViewDb. MultiSelect = true; listViewDb. View = View. Details; // Její lavre vi en string hvor vi skriver hvordan vores connetions er til databasen. řetězec myConn = "server =" + _server + "; databáze =" + _database + "; uid =" + _uid + "; pwd =" + _pwd + ";"; using (MySqlConnection conn = new MySqlConnection (myConn)) {conn. Open ();
// Její podpora je k dispozici až do 20 úrovní výkonu a databází.
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 = new MySqlCommand (myInsert, conn);
// Her laver vi en data tabel (dTable) hvor den data vi henter i databasen bliver lagt ind.
MySqlDataAdapter MyAdapter = nový MySqlDataAdapter (); MyAdapter. SelectCommand = cmd; DataTable dTable = nová DataTable (); MyAdapter. Fill (dTable); for (int i = 0; i <dTable. Rows. Count; i ++) {// Her fordeler vi det data vigt ind i dtable ud i de 3 kolonner vi oprettede tidliger i koden. DataRow dataRow = dTable. Rows ; ListViewItem listitem = nový ListViewItem (dataRow ["id"]. ToString ()); listitem. SubItems. Add (dataRow ["volt"]. ToString ()); listitem. SubItems. Add (dataRow ["datum"]. ToString ()); listViewDb Items. Add (listitem); } conn. Close (); }
}
/* I denne Void har vi lavet en funktion hvor vi can regne gennemsnitet af det makere data vi har hentet fra databasen.
Vícenásobně více než jeden a více balíčků s různými možnostmi gennemsnitet. Hers 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) {try {float output = 0; if (listViewDb. SelectedItems. Count> = 2) { /* Her ligger vi vores output some em 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 volten. Ved at vi brugte CultureInfo. InvariantCulture kan vi få lov til at bruge. i vores komatal */ foreach (položka ListViewItem v listViewDb. SelectedItems) {výstup += float. Parse (item. SubItems [1]. Text, CultureInfo. InvariantCulture)/ listViewDb. SelectedItems. Count; } Output. Text = output. ToString (); }} catch {MessageBox. Show ("Chyba 40: Uživatel je figurína"); }} /* Denně se neplatí, že se to může lišit, což může vést k sérii seriálů, které mohou vést k arduinu. Vícenásobný přenos dat přes sériový port s 3 porty datových záznamů Modtager ind iores 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 (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 = nový SerialPort (); myport. BaudRate = 9600; myport. PortName = textBoxPort. Text; myport. DataBits = 8; myport. StopBits = StopBits. One; zkuste {// Její význam se projeví ve skalách, které se začnou šířit do skalních skal. myport. Open (); for (int i = 1; i <= int. Parse (textBoxAntalArduino. Text); i ++) {string inData = myport. ReadLine (); textBoxDB. AppendText (inData); } myport. Close (); } catch (Výjimka) {
MessageBox. Show ("Der udfylt forkert");
}
} private void helpBt_Click (odesílatel objektů, EventArgs e)
{MessageBox. Show ("1 klik på læse data fra solcelle for læse ny date in i programet." + "\ N" + "2 klik på indsæt i database for at gemme dataen." + "\ N" + "3 klik z více databází pro více dat. " +" / n " +" 4 člověk může mít stejné ID pro větší počet datových dat ud. " +" / n " +" 5 Testovací kombinace pro více databázových databází. " +" / 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 "); }}}
Krok 7: Databáze
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. Víc ogågerne kunne se hvad den lave ved tidliger målinger, eller hvad den i gennemsnittet har producentet i den sidste tid. Neboť v kunne gemme det data har vi lavet en database i wampserver. Více informací a program a vizuální studio, které odesílá a vybírá z databází. Databáze může mít více problémů, ale může mít problémy s uložením dat v databázích různých režimů komatálu, což znamená, že se zdvojnásobí. Poskytovatelé databází mají všechny možnosti a mohou si vybrat, zda budou mít více než jednu možnost. Většina aplikací může obsahovat více dat z databází, což znamená, že více informací o vás může mít více gennemsnittet af målingerne.
Krok 8: HTML Hjemmeside
Další informace naleznete v následujících datech pro různé databáze, denně vedle sebe a mimo HTML a CSS. HTML může být zbarveno do všech elementů, které se mohou lišit od dat až k datům, které mohou být zobrazeny na straně.
CSS zbývá až do dne, kdy se základní prvky budou zobrazovat až do dne, kdy se budou zobrazovat skalnaté oblasti, které se mění.
Krok 9: 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.
každý den se podívejte na php konektor do databází a uložte data do jednoho z hlavních portálů. 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.