Category Archives: Raspberry Pi

MySensors Raspberry Pi NRF24L01+ direct connection

Installera MySensorsGateway på Raspberry Pi 2 med Domoticz

Uppdatering: Denna guide är för MySensors 1.x. För Senare versioner av MySensors finns en bättre guide, https://www.mysensors.org/build/raspberry.

Radiomodulen NRF24L01+ är billig och strömsnål, men kan inte prata med vanliga wifi-enheter. Därför behövs en gateway som kan ta emot signalerna från sina sensorer.

Radiomodulen kopplas in till Raspberry Pi enligt bilden ovan. Därefter loggar du in på din Raspberry Pi och kör följande kommandon för att installera MySensorsGateway:

git clone https://github.com/mysensors/Raspberry.git
cd Raspberry/librf24-bcm
make all && sudo make install
cd ..
make all && sudo make install
sudo make enable-gwserial && sudo /etc/init.d/PiGatewaySerial start
sudo ln -s /dev/ttyMySensorsGateway /dev/ttyUSB20

Genom att köra sudo cat /dev/ttyMySensorsGateway kan du se att gatewayen startat ordentligt. Den ska skriva ut ett meddelande som innehåller ”Gateway startup complete”. Du kan nu lägga tilll MySensors i Domoticz enligt bilden nedan:

Domoticz MySensors Serial Gateway

Om sensorerna är igång och rapporterar in data kommer de strax dyka upp under Setup -> Devices. Klicka på den gröna högerpilen (Add Device) och ge sensorn ett namn, till exempel Bonsai om krukväxten är ett bonsaiträd. Efter en stund börjar du få in grafer som ser ut så här (ökningen i slutet är från när jag vattnade blommorna nyss)

Domoticz graf fuktighet

Du kan ställa in Domoticz att skicka ett mail varje gång blommorna blir för torra:

Domoticz mailnotifiering

Så här ser meddelandet ut i min telefon:

Domoticz mailnotifiering iphone

 

Benchmark: Java-prestanda på Raspberry Pi (överklockning)

Diagram - Java-prestanda på Raspberry Pi

Som jag nämnde tidigare har jag installerat Java på min Raspberry Pi. Att köra java-program på en Raspberry Pi går inte särskilt snabbt.

För att få en uppfattning av hur snabbt körde jag prestandatest-sviten Dacapo. Den kör ett antal test som simulerar olika typer av program.

För att ha något att jämföra med körde jag testet på min iPod Touch 1gen från 2007 och på min arbetsdator, en PC med fyra kärnor som har några år på nacken.

Min PC var omkring 100 gånger snabbare än Raspberry Pi, så den är inte så lönt att jämföra med, men iPod Touch presterar i nivå med Raspberry Pi för de tester den klarar köra. (Den misslyckas dock med en hel del tester, dels på grund av minnesproblem, dels för att vissa java-bibliotek saknas.)

Java-versionen jag använde för testerna på Raspberry Pi var OpenJDK (IcedTea7 2.1.1).

Testerna på Raspbmc visade mycket sämre prestanda, vilket förmodligen berodde på att xbmc kördes i bakgrunden. Överklockning gjorde stor skillnad. Jag använde följande inställningar vid överklockning:

arm_freq sdram_freq gpu_freq
900 500 300

Det finns fler inställningar att ändra på vid överklockning. Du överklockar genom att ändra i /root/config.txt och en fullständig beskrivning av alla överklockningsparametrar hittar du på elinux.org. Mer information på svenska finns i denna tråd på Sweclockers.

Min slutsats är att Raspberry Pi är ganska långsam om man jämför med en modern PC, men jämfört med en iPod Touch är den ungefär lika snabb. Överklockning gör stor nytta och påverkar inte stabiliteten, så vill du få mer hastighet ur din Raspberry Pi kan du enkelt ändra parametrarna i config.txt och boota om och vips så har du en snabbare dator.

Installera och programmera Java på Raspberry Pi (OpenJDK 7)

Berry GoodCreative Commons License D. Sharon Pruitt via Compfight

Jag är mest van att programmera i Java, och därför ville jag förstås testa köra Java på min Rasperry Pi.

För att köra javaprogram behövs bara en JRE, men för att kompilera krävs JDK. Det finns flera JDK till Arm (den processor Raspberry Pi använder), men den som är lättast att komma igång med heter OpenJDK. Du installerar den såhär:

sudo aptitude install java7-jdk

Aptitude kommer visa ett meddelande liknande det nedan. Se till att du har tillräckligt ledigt utrymme på SD-kortet (2GB räcker om du inte har något annat installerat, men har du möjlighet så använd ett kort som är större än 2GB).

0 upgraded, 137 newly installed, 0 to remove and 12 not upgraded.
Need to get 103 MB of archives.
After this operation, 326 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Tryck Y och låt Aptitude ladda ner och installera allting. När installationen är klar kan du kontrollera att java funkar med följande kommando:

java -version

Java visar då vilken variant av Java som finns installerad och dess version:

OpenJDK Runtime Environment (IcedTea7 2.1.1) (7~u3-2.1.1-1+rpi1)
OpenJDK Zero VM (build 22.0-b10, mixed mode)

Jag skapade en enkel testfil (jag använde vim, men du kan naturligtvis använda andra editorer, t.ex. nano)

public class Hw {
 public static void main(String[] args){
  float f = 3.1415f;
  System.out.println("Java on Raspberry " + f);

 }
}

För att kunna köra testprogrammet kompilerar du det:

javac Hw.java

och sedan testkör du det med:

java Hw

Programmet svarar då med:

Java on Raspberry 3.1415

Det är alltså mycket enkelt att komma igång med Java på Raspberry Pi. Däremot går det inte särskilt snabbt att köra program, vilket jag kommer visa i en annan blogpost.

Mina Raspberry Pi har kommit!

Mina Raspberry Pi har kommit. De levererades av UPS, och jag hade gjort misstaget att skriva min hemadress som leveransadress (UPS kan inte leverera om man inte är arbetslös/jobbar hemifrån). Jag ändrade leveransen så godbitarna kom till jobbet istället.

Raspberry PiJag har ännu inte bestämt vad jag ska göra med mina Raspberry Pi men möjliga projekt är:

  • Time lapse och HDR-fotografering genom att koppla den via USB till min Canon EOS 450D
  • Bärbar wifi-förlängare, förlänger räckvidden av en befintlig wifi-hotspot
  • Mediacenter
  • Backup-server (batteridriven ute i förrådet; där finns ingen tillgång till ström)
  • Västtrafik-monitor (såklart med stöd för Kortsaldo)

De första tre kräver att jag får den att funka på batteri, men det ska tydligen inte vara så svårt.