Nakon što mi je stigao LCD Keyboard shield potražio sam gotove primere na internetu i naišao na LCD Smartie skeč za arduino koji omogućava da preko Arduina i LCD Keyboard Shield-a prikazujete tekst uz pomoć programa LCD Smartie. Kada se u arduino ubaci ovaj skeč na ekranu se pojavi tekst **LCD SMARTIE** on Arduino. Nakon toga je potrebno u LCD Smartie programu podesiti za plugin matrix.dll, COM port na kome se nalazi arduino i brzinu 19200bps recimo „COM11,19200“ i displey treba podesiti da bude 2×16.
Sve je proradilo iz prvog i na LCD-u je moguće prikazati razne informacije koje omogućava LCD Smartie. Vreme od kada je startovan računar, trenutno vreme i datum, podatke iz winamp-a… Dok sam se igrao sa raznim prikazima video sam i da postoji mogućnost da se prikaže tekst iz tekstualnog fajla i odmah mi je palo na pamet da bih mogao da iskoristim program koji sam pre koristio za prikaz vremenskih prilika na web strani. Hidro-metorološki zavod ima svoju wap stranu koja je zgodna jer nema puno html tag-ova i lako se sredi u čiste podatke. Prepravio sam program i napravio da snima u tekstualni fajl koji LCD Smarti očitava i prikazuje na LCD-u. Da bi pokrenuli program potreban je autoitscript koji je besplatan (kao i LCD Smartie).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
#include <Array.au3> Dim $stanica, $datum, $temperatura, $pritisak, $pravacv, $brzinav, $vlaznost, $opis While 1 $stanica = "13278" ;ID meteoroloske stanice izvor: http://www.hidmet.gov.rs/latin/wap/osmotreni_srbija.php InetGet("http://www.hidmet.gov.rs/latin/wap/osmotreni_stanica.php?mo_id=" & $stanica, @ScriptDir & "\temp.log") ;prezimanje podataka i upis u lokalnu datoteku read_data_file() ;pozivanje funkcije za obradu podataka write_data() ;funkcija za upis podataka Sleep(1800000) ;30minuta pauze do sledeceg preuzimanja (hidmet.gov.rs osvežava podatke na svakih sat vremena) WEnd Func read_data_file() $file = FileOpen(@ScriptDir & "\temp.log") While 1 Local $line = FileReadLine($file) If @error = -1 Then ExitLoop $line = StringReplace($line, "Č", "C", 0, 1) $line = StringReplace($line, "č", "c", 0, 1);srpski karakteri nemogu da se ispšu na LCD-u $line = StringReplace($line, "Ć", "c", 0, 1) $line = StringReplace($line, "ć", "c", 0, 1) $line = StringReplace($line, "Đ", "Dj", 0, 1) $line = StringReplace($line, "đ", "dj", 0, 1) $line = StringReplace($line, "Ž", "Z", 0, 1) $line = StringReplace($line, "ž", "z", 0, 1) $line = StringReplace($line, "Š", "S", 0, 1) $line = StringReplace($line, "š", "š", 0, 1) $line = StringReplace($line, "Č", "C", 0, 1) If StringInStr($line, "stanice") Then $line = StringReplace($line, "<b>", "") $line = StringReplace($line, "</b>", "") $line = StringReplace($line, "<br/>", "") $line = StringRight($line, StringLen($line) - 32) $stanica = $line EndIf If StringInStr($line, "vreme:") Then $line = StringReplace($line, "<b>", "") $line = StringReplace($line, "</b>", "") $line = StringReplace($line, "<br/>", "") $line = StringReplace($line, "vreme: ", "") $line = StringReplace($line, " ", @CRLF) $datum = $line EndIf If StringInStr($line, "Temperatura:") Then $line = StringReplace($line, "<b>", "") $line = StringReplace($line, "</b>", "") $line = StringReplace($line, "<br/>", "") $line = StringReplace($line, "Temperatura: ", "") $line = StringLeft($line, StringLen($line) - 3) $temperatura = $line EndIf If StringInStr($line, "Pritisak:") Then $line = StringReplace($line, "<b>", "") $line = StringReplace($line, "</b>", "") $line = StringReplace($line, "<br/>", "") $line = StringReplace($line, "Pritisak: ", "") $line = StringLeft($line, StringLen($line) - 3) $pritisak = $line EndIf If StringInStr($line, "Pravac vetra:") Then $line = StringReplace($line, "<b>", "") $line = StringReplace($line, "</b>", "") $line = StringReplace($line, "<br/>", "") $line = StringReplace($line, "tiho", "0") $line = StringReplace($line, "Pravac vetra: ", "") $pravacv = $line EndIf If StringInStr($line, "Brzina vetra:") Then $line = StringReplace($line, "<b>", "") $line = StringReplace($line, "</b>", "") $line = StringReplace($line, "<br/>", "") $line = StringReplace($line, "Brzina vetra: ", "") $line = StringLeft($line, StringLen($line) - 4) $brzinav = $line EndIf If StringInStr($line, "Vla", 1) Then $line = StringReplace($line, "<b>", "") $line = StringReplace($line, "</b>", "") $line = StringReplace($line, "<br/>", "") $line = StringReplace($line, "Vlažnost: ", "") $line = StringLeft($line, StringLen($line) - 2) $vlaznost = $line EndIf If StringInStr($line, "Opis vremena:", 1) Then $line = StringReplace($line, "<b>", "") $line = StringReplace($line, "</b>", "") $line = StringReplace($line, "<br/>", "") $line = StringReplace($line, "Opis vremena: ", "") $opis = $line EndIf WEnd FileClose($file) FileDelete(@ScriptDir & "\temp.log") EndFunc ;==>read_data_file Func write_data() $output = FileOpen(@ScriptDir & "\vreme.txt", 2) ;upis teksta u datoteku... , 2 briše prethondi sadržaj FileWriteLine($output, $stanica & @CRLF & $datum & @CRLF & $temperatura & @CRLF & $pritisak & @CRLF & $pravacv & @CRLF & $brzinav & @CRLF & $vlaznost & @CRLF & $opis) FileClose($output) EndFunc ;==>write_data |
da bi izabrali svoj grad potrebno je da $stanica = 13278 (Kragujevac) promenite u ID Vašeg grada. U trenutku pisanja ovo su bili aktuelni podaci
13180=B. Karlovac
13274=Beograd
13289=Crni Vrh
13384=Ćuprija
13397=Dimitrovgrad
13174=Kikinda
13378=Kopaonik
13278=Kragujevac
13376=Kraljevo
13383=Kruševac
13382=Kuršumlija
13389=Leskovac
13262=Loznica
13295=Negotin
13388=Niš
13168=Novi Sad
13067=Palić
13370=Požega
13266=S. Mitrovica
13279=S. Palanka
13369=Sjenica
13160=Sombor
13285=V. Gradište
13269=Valjevo
13489=Vranje
13392=Zaječar
13367=Zlatibor
13173=Zrenjanin
Kada pokrenete program će napraviti tekstualni fajl vreme.txt.
1 2 3 4 5 6 7 8 9 10 |
Kragujevac CETVRTAK 19.06.2012 14:00 31 995.6 SE 4 35 Vedro |
Nakon toga je potrebno da u LCD Smartie-u dodate podatak iz tog teksta. $File(C:\kg.txt,5) će pročitati vrednost iz petog reda i u ovom slučaju to će biti trenutna temperatura odnosno 18. Podaci su 1.Naziv stanice 2.Dan merenja 3.Datum merenja 4.Čas merenja 5.Temperatura 6. Pritisak vazduha 7. Pravac Vetra 8.Brzina vetra u m/s 9.Vlažnost vazduha u % 10.Opis vremena. Moj ekran izgleda ovako:
1 2 |
T:$File(C:\vreme.txt,5)C P:$File(C:\vreme.txt,6) $File(C:\vreme.txt,10) Vetar:$File(C:\vreme.txt,8)m/s $File(C:\vreme.txt,7) |
na snimku možete videti kako to izgleda na ekranu
оно што сам тражио, хвала
vrlo zanimljivo, hvala