Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Hardware<br />
RasPi als Wetterstation<br />
Zur Installation folgen Sie den Anweisungen<br />
auf der Rbenv-Webseite. Anschließend<br />
richtet der Aufruf rbenv install<br />
2.0.0‐p0 die aktuelle Ruby-Version ein.<br />
Bevor Sie Ruby dann verwenden können,<br />
legen Sie per rbenv global 2.0.0‐p0<br />
erst einmal diese Version als Standard<br />
fest. Ein Test mit ruby ‐v zeigt, ob die<br />
Installation geklappt hat.<br />
Die Ruby-Bibliotheken verwalten Sie<br />
mittels RubyGem. Um Webanwendungen<br />
mit Sinatra zu programmieren, richten<br />
Sie mit dem Kommando gem install<br />
sinatra das Sinatra-gem ein. Listing<br />
2 zeigt eine vollwertige Webanwendung,<br />
die Sie nach dem Start mit ruby<br />
webapp.rb im Browser unter der URL<br />
http://localhost:4567/ aufrufen.<br />
Datenbank befüllen<br />
Jetzt müssen Sie die Messdaten noch in<br />
einer Datenbank ablegen. Das schlanke<br />
SQLite genügt für solche einfachen Zwecke,<br />
versteht aber trotzdem SQL. Sie richten<br />
das gute Stück aus dem Debian-Paket<br />
sqlite3 ein. Um SQLite aus Ruby heraus<br />
zu verwenden, benötigen Sie zudem<br />
das Ruby-gem sqlite3. Eine neue<br />
Datenbankdatei db.sqlite3, die zum<br />
Listing 5<br />
Listing 4<br />
require 'active_record'<br />
ActiveRecord::Base.establish_coU<br />
nnection({"adapter"=>"sqlite3",<br />
"database"=>"db.sqlite3"})<br />
class Temperature <<br />
ActiveRecord::Base<br />
end<br />
werte = Temperature.all.map {|m|<br />
[m.zeit * 1000, m.t]}<br />
data = werte.inspect<br />
puts data<br />
<br />
<br />
<br />
<br />
<br />
$(function () {<br />
var chart = new Highcharts.Chart({<br />
chart: { renderTo: 'container' },<br />
title: { text: 'Messdaten'},<br />
xAxis: { type: 'datetime' },<br />
yAxis: { title: { text: 'Temperatur (C)' } },<br />
series: [{<br />
name: "Temperatur",<br />
data: [[1363465023000, ‐1.3], [1363468623000, ‐1.9],<br />
[1363472223000, ‐2.5],<br />
[1363475823000, ‐2.5], [1363479423000, ‐2.8], [1363483023000,<br />
‐3.1],<br />
[1363486623000, ‐3.4], [1363490223000, ‐3.7], [1363493823000,<br />
‐3.9],<br />
[1363497423000, ‐3.9], [1363501023000, ‐3.3], [1363504622000,<br />
2.0],<br />
[1363508223000, 1.1], [1363511822000, 7.8], [1363515422000, 5.4],<br />
[1363519022000, 4.3], [1363522623000, 5.9], [1363526223000, 6.3],<br />
[1363529823000, 5.2], [1363533423000, 3.8], [1363537023000, 3.1],<br />
[1363540623000, 2.0], [1363544223000, 1.6], [1363547823000, 1.3],<br />
[1363551422000, 1.1]],<br />
pointStart: 1363465023000,<br />
pointInterval: 3600 * 1000 // one hour<br />
}]<br />
});<br />
});<br />
<br />
<br />
<br />
<br />
<br />
<br />
86 www.linux-user.de<br />
06.2013