Top Banner
Vežba 14 1 Arduino i Visual Studio – primer slanja podataka sa senzora na računar u tekstualnu datoteku – Temperatura Sadržaj 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora ...................................... 2 1.1 Arduino ........................................................................................................................ 2 1.2 Povezivanje komponenti na TinkerCad ....................................................................... 4 1.3 Povezivanje komponenti u praksi ................................................................................ 4 1.4 Visual Studio – početak rada ....................................................................................... 6 1.5 Kreiranje forme............................................................................................................ 6 1.6 Prvi deo kôda ............................................................................................................... 8 1.7 Drugi deo kôda - početak............................................................................................. 9 1.8 Drugi deo kôda - komplet .......................................................................................... 10 2 Pokretanje programa ......................................................................................................... 12 Spisak slika Slika 1.1. Arduino IDE i Serial Monitor .................................................................................... 3 Slika 1.2. Serial Monitor i COM5 .............................................................................................. 3 Slika 1.3. Šema povezivanja na platformi TinkerCad ................................................................ 4 Slika 1.4. Šema povezivanja u praksi ......................................................................................... 5 Slika 1.5. Izgled termistora ........................................................................................................ 5 Slika 1.5. Prvobitni izgled forme ............................................................................................... 6 Slika 1.6. Izgled forme posle imenovanja objekata ................................................................... 7 Slika 1.7. Unos porta na kome je povezan Arduino ................................................................. 12 Slika 1.8. Početak rada programa ............................................................................................. 13 Slika 1.9. Zaustavljanje rada programa .................................................................................... 13 Slika 1.10. Prebacivanje očitanih podataka u datoteku ............................................................ 14 Slika 1.11. Prikaz snimljenih podataka iz tekstualne datoteke ................................................ 14 Slika 1.12. Prikaz trenutaka uključenja/isključenja baterije u datoteci .................................... 15 Slika 1.13. Upaljena sveća i njeno dejstvo na termistor........................................................... 15 Tabela 1.1. Svojstvo Properties/Text ......................................................................................... 7 Tabela 1.2. Svojstvo Design (Name) ......................................................................................... 7 Tabela 1.3. Definisanje događaja ............................................................................................... 7
15

Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Jul 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

1

Arduino i Visual Studio – primer slanja podataka sa senzora na računar u tekstualnu datoteku – Temperatura

Sadržaj

1 Slanje podataka sa Arduino u Visual Studio – Primer termistora ...................................... 2

1.1 Arduino ........................................................................................................................ 2

1.2 Povezivanje komponenti na TinkerCad ....................................................................... 4

1.3 Povezivanje komponenti u praksi ................................................................................ 4

1.4 Visual Studio – početak rada ....................................................................................... 6

1.5 Kreiranje forme ............................................................................................................ 6

1.6 Prvi deo kôda ............................................................................................................... 8

1.7 Drugi deo kôda - početak ............................................................................................. 9

1.8 Drugi deo kôda - komplet .......................................................................................... 10

2 Pokretanje programa ......................................................................................................... 12

Spisak slika

Slika 1.1. Arduino IDE i Serial Monitor .................................................................................... 3 Slika 1.2. Serial Monitor i COM5 .............................................................................................. 3 Slika 1.3. Šema povezivanja na platformi TinkerCad ................................................................ 4 Slika 1.4. Šema povezivanja u praksi ......................................................................................... 5 Slika 1.5. Izgled termistora ........................................................................................................ 5 Slika 1.5. Prvobitni izgled forme ............................................................................................... 6 Slika 1.6. Izgled forme posle imenovanja objekata ................................................................... 7 Slika 1.7. Unos porta na kome je povezan Arduino ................................................................. 12 Slika 1.8. Početak rada programa ............................................................................................. 13 Slika 1.9. Zaustavljanje rada programa .................................................................................... 13 Slika 1.10. Prebacivanje očitanih podataka u datoteku ............................................................ 14 Slika 1.11. Prikaz snimljenih podataka iz tekstualne datoteke ................................................ 14 Slika 1.12. Prikaz trenutaka uključenja/isključenja baterije u datoteci .................................... 15 Slika 1.13. Upaljena sveća i njeno dejstvo na termistor ........................................................... 15

Tabela 1.1. Svojstvo Properties/Text ......................................................................................... 7 Tabela 1.2. Svojstvo Design (Name) ......................................................................................... 7 Tabela 1.3. Definisanje događaja ............................................................................................... 7

Page 2: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

2

1 Slanje podataka sa Arduino u Visual Studio – Primer termistora 1.1 Arduino U ovom primeru je prikazano povezivanje analognog termistora (senzora temperature) i Arduino mikrokontrolera. Ovo je jedan od načina za prikupljanje podataka o temperaturi u raznim projektima, kao što je npr. projekat meteorološke stanice ili za prikupljanje podataka u kućnim uslovima. Prednost termistora je njegova niska cena. U primeru je korišćen termistor sa sopstvenim otporom od 10K. Korišćen je naponski razdelnik pa je potreban otpornik jednake otpornosti kao termistor, odnosno otpornik od 10kΩ. Arduino kôd: int ThermistorPin = 0; int Vo; float R1 = 10000; float logR2, R2, T, Tc, Tf; float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07; void setup() { Serial.begin(9600); } void loop() { Vo = analogRead(ThermistorPin); R2 = R1 * (1023.0 / (float)Vo - 1.0); logR2 = log(R2); T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); Tc = T - 273.15; Tf = (Tc * 9.0)/ 5.0 + 32.0; Serial.print("Temperature: "); Serial.print(Tf); Serial.print(" F; "); Serial.print(Tc); Serial.println(" C"); delay(1000); } Provera u Tools\Board i Tools\Port da li je ispravno povezan Arduino. Provera kôda na Verify, pa Upload za prenos na Arduino. Za proveru funkcionalnosti na Arduino IDE kliknuti na dugme Serial Monitor. Detaljno objašnjenje za rad termistora i pisanje kôda je dato na linku: https://www.circuitbasics.com/arduino-thermistor-temperature-sensor-tutorial/

Page 3: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

3

Slika 1.1. Arduino IDE i Serial Monitor

Pokretanjem Serial Monitor-a vidi se da je ostvarena komunikacija na portu COM5. Na narednoj slici su prikazane informacije o temperaturi u jedinicama celzijus i farenhajt. Tokom početka merenja namešteno je da senzor očitava vrednosti na svake 2 sekunde. U 10:24:11 temperatura prostorije je bila 21,94 stepena celzijusa. U 10:24:17 je prstom dodirnut termistor i odmah je registrovana promena temperature. Informacija o tome koji port je korišćen je od važnosti za pisanje kôda u Visual Studio.

Slika 1.2. Serial Monitor i COM5

Page 4: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

4

1.2 Povezivanje komponenti na TinkerCad Na sledećoj slici je data šema povezivanja na platformi TinkerCad. Neophodne komponente su:

- Termistor (Slika 1.5) (u nedostatku simbola termistora stavljen je kondenzator); - Otpornik od 10000Ω odnosno 10kΩ; - Kratkospajači.

Slika 1.3. Šema povezivanja na platformi TinkerCad

1.3 Povezivanje komponenti u praksi U realnom povezivanju, minimizuje se upotreba kratkospajača ili džamper žica što je dato na sledećoj slici. Staviti termistor na protobord, a na jedan kraj postaviti otpornik od 10kΩ. Kratkospajačem (džamper) žicom crvene boje povezati slobodan kraj termistora na pin 5V. Na drugi kraj otpornika koji nije povezan sa termistorom postaviti drugi kratkospajač (džamper) žicu crne boje i povezati na pin GND. Uzeti kratkospajač (džamper) žicu bele boje i jedan kraj postaviti u istom redu gde su spojeni termistor i otpornik. Drugi kraj ovog kratkospajača spojiti na pin A0. Sa ovim delom, završeno je spajanje kola.

Page 5: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

5

Slika 1.4. Šema povezivanja u praksi

Slika 1.5. Izgled termistora

Page 6: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

6

1.4 Visual Studio – početak rada Pokrenuti Visual Studio. U primeru je korišćen Visual Studio 2017. Napraviti novi projekat: File\New\Project Izabrati grupu Windows Classic Desktop i napraviti Windows Forms App. Novu aplikaciju nazvati (Name) TempApp pa OK. Iz Toolbox-a dodati -TextBox (štiklirati multiline), i jedan TextBox u jednom redu, -Tri dugmeta (Button), -Natpis (Label) sa TextBox u jednom redu, -Na kraju dodati još 3 Label. 1.5 Kreiranje forme Prvobitni izgled forme je dat na narednoj slici.

Slika 1.6. Prvobitni izgled forme

Page 7: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

7

U narednom delu treba promeniti svojstva svih unetih objekata u formu.

Tabela 1.1. Svojstvo Properties/Text Objekat Properties/Text label 1 Port Name: label 2 Value button1 Start button2 Stop button3 Save Data

Tabela 1.2. Svojstvo Design (Name)

Objekat Design (Name) textBox1 data_tb textBox2 port_name_tb button1 start_btn button2 stop_btn button3 save_btn

Posle imenovanja objekata, izgled forme je dat na narednoj slici.

Slika 1.7. Izgled forme posle imenovanja objekata

Zatim treba definisati događaje usled klika na određeno dugme.

Tabela 1.3. Definisanje događaja Objekat Click iz Action button 1 start_btn_Click button 2 stop_btn_Click button 3 save_btn_Click

Page 8: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

8

1.6 Prvi deo kôda U gornjem delu programa dodati biblioteku using System.IO.Ports. Početni deo kôda sada izgleda na sledeći način: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports;

Page 9: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

9

1.7 Drugi deo kôda - početak Posle akcija definisanja događaja donji deo izgleda na sledeći način: namespace TempApp { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void start_btn_Click(object sender, EventArgs e) { } private void stop_btn_Click(object sender, EventArgs e) { } private void save_btn_Click(object sender, EventArgs e) { } } } Kako postoji dugme za snimanje podataka, potrebno je na Disku D napraviti folder Primeri na lokaciji: D:\IoT\Primeri U navedenom folderu će biti snimljena datoteka sa podacima.

Page 10: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

10

1.8 Drugi deo kôda - komplet Zatim se u okviru Form1 dodaju delovi za svako dugme, portu, brzini prenosa podataka: namespace TempApp { public partial class Form1 : Form { private SerialPort myport; private DateTime datetime; private string in_data; public Form1() { InitializeComponent(); } private void start_btn_Click(object sender, EventArgs e) { myport = new SerialPort(); myport.BaudRate = 9600; myport.PortName = port_name_tb.Text; myport.Parity = Parity.None; myport.DataBits = 8; myport.StopBits = StopBits.One; myport.DataReceived += Myport_DataReceived; try { myport.Open(); data_tb.Text = ""; } catch (Exception ex) { MessageBox.Show(ex.Message, "Error"); } } private void Myport_DataReceived(object sender, SerialDataReceivedEventArgs e) { in_data = myport.ReadLine(); this.Invoke(new EventHandler(displaydata_event)); } private void displaydata_event(object sender, EventArgs e) { datetime = DateTime.Now; string time = datetime.Hour + ":" + datetime.Minute + ":" + datetime.Second; data_tb.AppendText(time + "\t" + in_data + "\n"); } private void stop_btn_Click(object sender, EventArgs e) { try { myport.Close(); } catch (Exception ex2) { MessageBox.Show(ex2.Message, "Error"); } }

Page 11: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

11

private void save_btn_Click(object sender, EventArgs e) { try { string pathfile = @"D:\IoT\Primeri\"; string filename = "temp_data.txt"; System.IO.File.WriteAllText(pathfile + filename, data_tb.Text); MessageBox.Show("Data has been saved to " + pathfile, "Save File"); } catch (Exception ex3) { MessageBox.Show(ex3.Message, "Error"); } } } }

Page 12: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

12

2 Pokretanje programa Redosled koraka je bio sledeći:

1. Upload kôda na Arduino;

2. Klik na dugme Start u Visual Studio. Po pokretanju programa prvo se unosi komunikacioni port na kome je povezan Arduino. U mom slučaju je u pitanju COM5. Za početak se koristi dugme Start, a za zaustavljanje Stop . Za snimanje u datoteku se koristi Save Data.

Slika 1.8. Unos porta na kome je povezan Arduino

Page 13: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

13

Po pokretanju programa klikom na dugme Start, počinje očitavanje vrednosti sa termistora.

Slika 1.9. Početak rada programa Za kraj očitavanja koristi se dugme Stop.

Slika 1.10. Zaustavljanje rada programa

Page 14: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

14

Prebacivanje očitanih podataka u datoteku klikom na Save Data.

Slika 1.11. Prebacivanje očitanih podataka u datoteku

Prikaz snimljenih podataka iz tekstualne datoteke.

Slika 1.12. Prikaz snimljenih podataka iz tekstualne datoteke

Page 15: Arduino i Visual Studio – primer slanja podataka sa ... Vežba 14 2 . 1 Slanje podataka sa Arduino u Visual Studio – Primer termistora . 1.1 Arduino . U ovom primeru je prikazano

Vežba 14

15

U trenutku 11:57:48 je upaljena sveća. Zatim je termistor približavan sveći što je registrovano u datoteci. Temperatura je rasla do 65,19 stepeni Celzijusa u 11:58:03 kada su termistor i sveća bili na maloj udaljenosti. Nakon toga je sveća udaljena od termistora i došlo je do smanjenja temperature.

Slika 1.13. Prikaz trenutaka uključenja/isključenja baterije u datoteci

Upaljena sveća i njeno dejstvo na termistor je prikazano na narednoj slici.

Slika 1.14. Upaljena sveća i njeno dejstvo na termistor