RaspberryPi

Eindelijk was het dan zover, 28 juni 2012 kwam ook mijn raspberry binnen.
Even tijd zoeken en gelijk aan de slag.

Mijn eerste aangesloten Pi

Installatie

In hapklare brokken aan de gang

download os

http://www.raspberrypi.org/downloads
Even bij raspberry.org de juiste versie van raspbian "wheezy" downloaden.
Na het uitpakken even op sd zetten

Detecteer de juiste device voor je sd kaart

Kijk eerst even voordat je sd kaat in de reader stopt wat je "sd"'s zijn en daarna zie je er een nieuwe bij komen
gej@mercure:~$ sudo fdisk -l
[sudo] password for gej:
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe0c5913d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63    45062324    22531131   1c  Hidden W95 FAT32 (LBA)
/dev/sda2   *    45062325   484560371   219749023+   7  HPFS/NTFS/exFAT
/dev/sda3       484560896   976771071   246105088   83  Linux

Er is alleen een /dev/sda aanwezig.
SD kaart erin en dan nog een keer....

gej@mercure:~$ sudo fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe0c5913d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1              63    45062324    22531131   1c  Hidden W95 FAT32 (LBA)
/dev/sda2   *    45062325   484560371   219749023+   7  HPFS/NTFS/exFAT
/dev/sda3       484560896   976771071   246105088   83  Linux

Disk /dev/sdb: 4035 MB, 4035969024 bytes
4 heads, 32 sectors/track, 61584 cylinders, total 7882752 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000ee283

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      3807231   23476800    c  W95 FAT32 (LBA)
gej@mercure:~$

SDB is erbij gekomen, dus deze gaan we gebruiken voor te beschrijven. Let wel op. Het beschrijven moet op het /dev/sdb gebeuren, NIET op de eerste partitie.

Installeer OS op SD

Let wel op. Het beschrijven moet op het /dev/sdb gebeuren, NIET op de eerste partitie.
gej@mercure:~$ sudo dd if=/home/Downloads/raspberrypi/2012-07-15-wheezy-raspbian.img of=/dev/sdb bs=1M

Duurt wel een 10 minuten met een langzame sd, maar dan..... Klaar.

Startup

Eerste keer starten.
Het is eigenlijk simpel, stekker erin en hij begint met booten zo gauw de lampjes aangaan.

raspberrypi - aan het booten

De FDX, LNK en 10M zijn optioneel. Deze zijn alleen aan als je je netwerk aangesloten hebt.

Errors

En wat als de raspberrypi niet wil booten??
Dan gaat alleen het PWR ledje aan.

raspberrypi - no boot

Dan heb je de volgende mogelijke storingen (heb ik natuurlijk allemaal gehad):

Boot

Ik zal er nog een filmpje van de (eerste) boot in proberen te plakken.

gpio

Generap perpose Input Output Programming.

Poeh da's een hele mond vol om gewoon een ledje aan/uit te zetten met de Pi.

Even WiringPi downloaden en installeren. Dit is de site waar je de juiste info allemaal kunt vinden:
https://projects.drogon.net/raspberry-pi/wiringpi/download-and-install/

pi@raspberrypi ~ $ wget http://project-downloads.drogon.net/files/wiringPi.tgz
--2012-07-27 22:09:01--  http://project-downloads.drogon.net/files/wiringPi.tgz
Resolving project-downloads.drogon.net (project-downloads.drogon.net)... 195.10.226.169
Connecting to project-downloads.drogon.net (project-downloads.drogon.net)|195.10.226.169|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 27630 (27K) [application/x-gzip]
Saving to: `wiringPi.tgz'

100%[===================================================>] 27,630      --.-K/s   in 0.04s  

2012-07-27 22:09:02 (725 KB/s) - `wiringPi.tgz' saved [27630/27630]

pi@raspberrypi ~ $ tar xfz wiringPi.tgz
pi@raspberrypi ~ $ cd wiringPi/wiringPi
pi@raspberrypi ~/wiringPi/wiringPi $ make
[CC] wiringPi.c
[CC] wiringPiFace.c
[CC] serial.c
[CC] wiringShift.c
[CC] lcd.c
[CC] piHiPri.c
[CC] piThread.c
[AR] wiringPi.o wiringPiFace.o serial.o wiringShift.o lcd.o piHiPri.o piThread.o
   text       data        bss        dec        hex    filename
   4052          0        280       4332       10ec    wiringPi.o (ex libwiringPi.a)
   1908          8          8       1924        784    wiringPiFace.o (ex libwiringPi.a)
    820          0          0        820        334    serial.o (ex libwiringPi.a)
   1696          0          0       1696        6a0    wiringShift.o (ex libwiringPi.a)
   2384          0          4       2388        954    lcd.o (ex libwiringPi.a)
     76          0          0         76         4c    piHiPri.o (ex libwiringPi.a)
     76          0         96        172         ac    piThread.o (ex libwiringPi.a)
pi@raspberrypi ~/wiringPi/wiringPi $ sudo make install
[install]
install -m 0755 -d /usr/local/lib
install -m 0755 -d /usr/local/include
install -m 0644 wiringPi.h    /usr/local/include
install -m 0644 serial.h    /usr/local/include
install -m 0644 wiringShift.h    /usr/local/include
install -m 0644 lcd.h        /usr/local/include
install -m 0644 libwiringPi.a    /usr/local/lib
pi@raspberrypi ~/wiringPi/wiringPi $ cd ../gpio
pi@raspberrypi ~/wiringPi/gpio $ make
[CC] gpio.c
[LD]
pi@raspberrypi ~/wiringPi/gpio $ sudo make install
cp gpio /usr/local/bin
chown root.root /usr/local/bin/gpio
chmod 4755 /usr/local/bin/gpio
mkdir -p /usr/local/man/man1
cp gpio.1 /usr/local/man/man1
pi@raspberrypi ~/wiringPi/gpio $ cd ../examples
pi@raspberrypi ~/wiringPi/examples $ make
[CC] test1.c
[link]
gcc -o test1 test1.o -L/usr/local/lib -lwiringPi
[CC] test2.c
[link]
gcc -o test2 test2.o -L/usr/local/lib -lwiringPi
[CC] speed.c
[link]
gcc -o speed speed.o -L/usr/local/lib -lwiringPi
[CC] lcd.c
[link]
gcc -o lcd lcd.o -L/usr/local/lib -lwiringPi
[CC] wfi.c
[link]
gcc -o wfi wfi.o -L/usr/local/lib -lwiringPi -lpthread
[CC] piface.c
[link]
gcc -o piface piface.o -L/usr/local/lib -lwiringPi -lpthread
pi@raspberrypi ~/wiringPi/examples $

GPIO poort aansluiten

raspberrypi gpio poorten
Versie 1

We gaan over pin 1 (3.3V Power) en  pin 6 (Ground) eerst het testled aansluiten.
RaspberryPi Led test
Als die het doet sluiten we die led (of weer een nieuwe) op pin 1 (3..3V Power) en pin 7 (GPIO4) aan.
RaspberryPi Led test

Dan ziet het er dus zo uit: (rood = 3.3V, zwart is Ground, en wit is het ledje)

gpio connected
pi@raspberrypi ~/wiringPi/examples $ gpio -g mode 4 out
Led Uit
pi@raspberrypi ~/wiringPi/examples $ gpio -g write 4 1
Led Aan
pi@raspberrypi ~/wiringPi/examples $ gpio -g write 4 0
pi@raspberrypi ~/wiringPi/examples $

Of de luie manier:
pi@raspberrypi ~/wiringPi/examples $ sudo ./test1
Raspberry Pi wiringPi test program

Andere plaatjes gpio


Raspberry Pi P5 pin layout

pin GPIO-number default function alternative functions
P5-1 5V  
P5-2 +3.3V (max. 50mA, together with P1)
P5-3 GPIO28 I/O I2C0 SDA, PCM CLK
P5-4 GPIO29 I/O I2C0 SCL, PCM FS
P5-5 GPIO30 I/O PCM DIN
P5-6 GPIO31 I/O PCM DOUT
P5-7 Ground  
P5-8 Ground  

Raspberry Pi GPIO P1 labeled


pin GPIO-number default function alternative functions
P1-1 +3.3V output, max. 50mA  
P1-2 +5V / power supply  
P1-3 GPIO2 I/O I2C1 SDA
P1-4 +5V (=P1-2)  
P1-5 GPIO3 I/O I2C1 SCL
P1-6 Ground  
P1-7 GPIO4 I/O GPCLK0, ARM-JTAG-TDI
P1-8 GPIO14 UART-TX I/O
P1-9 Ground  
P1-10 GPIO15 UART-RX I/O
P1-11 GPIO17 I/O  
P1-12 GPIO18 I/O PWM
P1-13 GPIO27 I/O ARM-JTAG-TMS
P1-14 Ground  
P1-15 GPIO22 I/O ARM-JTAG-TRST
P1-16 GPIO23 I/O ARM-JTAG-RTCK
P1-17 +3.3V output (=P1-1)  
P1-18 GPIO24 I/O ARM-JTAG-TDO
P1-19 GPIO10 I/O SPI MOSI
P1-20 Ground  
P1-21 GPIO9 I/O SPI MISO
P1-22 GPIO25 I/O ARM-JTAG-TCK
P1-23 GPIO11 I/O SPI-SCK
P1-24 GPIO8 I/O SPI-CE0
P1-25 Ground  
P1-26 GPIO7 I/O SPI-CE1

OS truukjes

update linux

pi@raspberrypi ~ $ apt-get update
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
pi@raspberrypi ~ $ sudo apt-get update
Get:1 http://archive.raspberrypi.org wheezy InRelease [7,698 B]
Get:2 http://mirrordirector.raspbian.org wheezy InRelease [12.5 kB]
Hit http://archive.raspberrypi.org wheezy/main armhf Packages    
Get:3 http://mirrordirector.raspbian.org wheezy/main armhf Packages [7,283 kB]
Ign http://archive.raspberrypi.org wheezy/main Translation-en_GB
Ign http://archive.raspberrypi.org wheezy/main Translation-en
....

of:
pi@raspberrypi ~ $ aptitude update
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/
pi@raspberrypi ~ $ sudo aptitude update
Hit http://archive.raspberrypi.org wheezy InRelease
Hit http://mirrordirector.raspbian.org wheezy InRelease
Hit http://archive.raspberrypi.org wheezy/main armhf Packages
Hit http://mirrordirector.raspbian.org wheezy/main armhf Packages
Hit http://mirrordirector.raspbian.org wheezy/contrib armhf Packages
Hit http://mirrordirector.raspbian.org wheezy/non-free armhf Packages
Hit http://mirrordirector.raspbian.org wheezy/rpi armhf Packages
Ign http://archive.raspberrypi.org wheezy/main Translation-en_GB
Ign http://archive.raspberrypi.org wheezy/main Translation-en
Ign http://mirrordirector.raspbian.org wheezy/contrib Translation-en_GB
Ign http://mirrordirector.raspbian.org wheezy/contrib Translation-en
Ign http://mirrordirector.raspbian.org wheezy/main Translation-en_GB
Ign http://mirrordirector.raspbian.org wheezy/main Translation-en
Ign http://mirrordirector.raspbian.org wheezy/non-free Translation-en_GB
Ign http://mirrordirector.raspbian.org wheezy/non-free Translation-en
Ign http://mirrordirector.raspbian.org wheezy/rpi Translation-en_GB
Ign http://mirrordirector.raspbian.org wheezy/rpi Translation-en

pi@raspberrypi ~ $

Firmware update

pi@raspberrypi:~# sudo rpi-update
en natuurlijk controle van de versie:
pi@raspberrypi:~# /opt/vc/bin/vcgencmd version

Filesystem check on next reboot

pi@raspberrypi:~$ sudo shutdown -F -r now
Let op: /boot is vfat, hiervoor moet je nog even de dosfs tools installeren:
spi@raspberrypi:~$ sudo apt-get install dosfstools

Eigen user aanmaken

pi@raspberrypi ~ $ sudo useradd -c "Ge Janssen" -d /home/gej -m -s /bin/bash gej
Even wachtwoordje zetten:

pi@raspberrypi ~ $  sudo passwd gej
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
pi@raspberrypi ~ $

installatie xymon

installatie webserver

pi@raspberrypi ~ $
pi@raspberrypi ~ $ sudo apt-get install apache2
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
  apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap ssl-cert
Suggested packages:
  apache2-doc apache2-suexec apache2-suexec-custom openssl-blacklist
The following NEW packages will be installed:
  apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
  ssl-cert
0 upgraded, 10 newly installed, 0 to remove and 16 not upgraded.
Need to get 2,041 kB of archives.
After this operation, 4,989 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libapr1 armhf 1.4.6-3 [90.4 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libaprutil1 armhf 1.4.1-2 [77.0 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libaprutil1-dbd-sqlite3 armhf 1.4.1-2 [17.1 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libaprutil1-ldap armhf 1.4.1-2 [16.0 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main apache2.2-bin armhf 2.2.22-9 [1,318 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ wheezy/main apache2-utils armhf 2.2.22-9 [180 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ wheezy/main apache2.2-common armhf 2.2.22-9 [320 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ wheezy/main apache2-mpm-worker armhf 2.2.22-9 [2,200 B]
Get:9 http://mirrordirector.raspbian.org/raspbian/ wheezy/main apache2 armhf 2.2.22-9 [1,400 B]
Get:10 http://mirrordirector.raspbian.org/raspbian/ wheezy/main ssl-cert all 1.0.31 [19.3 kB]
Fetched 2,041 kB in 1s (1,262 kB/s)
Preconfiguring packages ...
Selecting previously unselected package libapr1.
(Reading database ... 55319 files and directories currently installed.)
Unpacking libapr1 (from .../libapr1_1.4.6-3_armhf.deb) ...
Selecting previously unselected package libaprutil1.
Unpacking libaprutil1 (from .../libaprutil1_1.4.1-2_armhf.deb) ...
Selecting previously unselected package libaprutil1-dbd-sqlite3.
Unpacking libaprutil1-dbd-sqlite3 (from .../libaprutil1-dbd-sqlite3_1.4.1-2_armhf.deb) ...
Selecting previously unselected package libaprutil1-ldap.
Unpacking libaprutil1-ldap (from .../libaprutil1-ldap_1.4.1-2_armhf.deb) ...
Selecting previously unselected package apache2.2-bin.
Unpacking apache2.2-bin (from .../apache2.2-bin_2.2.22-9_armhf.deb) ...
Selecting previously unselected package apache2-utils.
Unpacking apache2-utils (from .../apache2-utils_2.2.22-9_armhf.deb) ...
Selecting previously unselected package apache2.2-common.
Unpacking apache2.2-common (from .../apache2.2-common_2.2.22-9_armhf.deb) ...
Selecting previously unselected package apache2-mpm-worker.
Unpacking apache2-mpm-worker (from .../apache2-mpm-worker_2.2.22-9_armhf.deb) ...
Selecting previously unselected package apache2.
Unpacking apache2 (from .../apache2_2.2.22-9_armhf.deb) ...
Selecting previously unselected package ssl-cert.
Unpacking ssl-cert (from .../ssl-cert_1.0.31_all.deb) ...
Processing triggers for man-db ...
Setting up libapr1 (1.4.6-3) ...
Setting up libaprutil1 (1.4.1-2) ...
Setting up libaprutil1-dbd-sqlite3 (1.4.1-2) ...
Setting up libaprutil1-ldap (1.4.1-2) ...
Setting up apache2.2-bin (2.2.22-9) ...
Setting up apache2-utils (2.2.22-9) ...
Setting up apache2.2-common (2.2.22-9) ...
Enabling site default.
Enabling module alias.
Enabling module autoindex.
Enabling module dir.
Enabling module env.
Enabling module mime.
Enabling module negotiation.
Enabling module setenvif.
Enabling module status.
Enabling module auth_basic.
Enabling module deflate.
Enabling module authz_default.
Enabling module authz_user.
Enabling module authz_groupfile.
Enabling module authn_file.
Enabling module authz_host.
Enabling module reqtimeout.
Setting up apache2-mpm-worker (2.2.22-9) ...
[....] Starting web server: apache2apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
. ok
Setting up apache2 (2.2.22-9) ...
Setting up ssl-cert (1.0.31) ...
pi@raspberrypi ~ $

installatie wireless usb

Update 2015
tegenwoordig kan dit veel makkelijker met wicd of de config tool hiervoor wicd-cursus

Makkelijkste is deze even te installeren met:
gej@rpi-a ~ $ sudo apt-get install wicd-curses

Vergeet ook niet dat er tegenwoordig een commandline versie van de network manager is.

Omdat dadelijk de bewakingscamera ergens vrij moet staan, is het aansluiten van de wifi module handig.

In mijn geval een asus USB-N10 adapter. Doet het perfect op weinig stroom.

root@raspberrypi:~# cd /etc/network/
root@raspberrypi:/etc/network# vi interfaces
auto lo

iface lo inet loopback
iface eth0 inet dhcp

#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
(de rest van de regels mogen weg)
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "wrouter"
wpa-psk "Ergmoeilijkww123"
root@raspberrypi:/etc/network# ifup wlan0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/54:04:a6:e0:04:21
Sending on   LPF/wlan0/54:04:a6:e0:04:21
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 18
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 7
DHCPREQUEST on wlan0 to 255.255.255.255 port 67
DHCPOFFER from 192.168.1.1
DHCPACK from 192.168.1.1
Stopping NTP server: ntpd.
Starting NTP server: ntpd.
bound to 192.168.1.50 -- renewal in 377254 seconds.
root@raspberrypi:/etc/network#

En als we het iets veiliger willen doen:

wpa_passphrase YOURSSID YOURWIFIPASSWORD


auto wlan0
iface wlan0 inet dhcp
netmask 255.255.255.0
gateway 192.168.1.1
wpa-driver wext
wpa-ssid MYPLACE
wpa-ap-scan 1
wpa-proto WPA
wpa-pairwise CCMP
wpa-group CCMP
wpa-key-mgmt WPA-PSK
wpa-psk 71c81a844973ae7bb1243141e5caa7b6bb0e2d7eetcetcetc

http://prupert.wordpress.com/2010/06/25/how-to-configure-wireless-wifi-networking-in-ubuntu-via-the-command-line-cli/

USB 2.0 082.11N wireless adapter met antenne

gej@haley:~$ lsusb
...
Bus 001 Device 005: ID 148f:7601 Ralink Technology, Corp.
...

Nader onderzoek op internet levert op dat dit ding dus geen Ralink RT5370 maar een andere. De
MT7601 chipset namelijk.

Op raspberrypi.org gevonden dat het wel kan maar dan moet je zelf compileren:
http://www.raspberrypi.org/phpBB3/viewtopic.php?p=387358

pi@rpi-b:~$ sudo apt-get install gcc make
Reading package lists... Done
Building dependency tree      
Reading state information... Done
gcc is already the newest version.
gcc set to manually installed.
make is already the newest version.
make set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
pi@rpi-b:~$
pi@rpi-b:~$ mkdir src
pi@rpi-b:~$ cd src/

pi@rpi-b:~/src$
wget https://googledrive.com/host/0B_JlgOR4VNe0Sjg4ei0ySEY4aUE/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS.tar.bz2
--2014-01-19 19:54:10--  https://googledrive.com/host/0B_JlgOR4VNe0Sjg4ei0ySEY4aUE/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS.tar.bz2
Resolving googledrive.com (googledrive.com)... 74.125.136.132, 2a00:1450:4013:c01::84
Connecting to googledrive.com (googledrive.com)|74.125.136.132|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1637914 (1.6M) [application/x-bzip2]
Saving to: `DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS.tar.bz2'

100%[======================================>] 1,637,914    348K/s   in 4.6s   

2014-01-19 19:54:21 (348 KB/s) - `DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS.tar.bz2' saved [1637914/1637914]

pi@rpi-b:~/src$

pi@rpi-b:~/src$  tar -xvjpf
DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS.tar.bz2
...
pi@rpi-b:~/src$ cd kernel/
pi@rpi-b:~/src/kernel$ wget https://github.com/raspberrypi/linux/archive/rpi-3.6.y.tar.gz
....
2014-01-19 20:37:59 (495 KB/s) - `rpi-3.6.y.tar.gz.1' saved [106458085]

pi@rpi-b:~/src/kernel$
pi@rpi-b:~/src/kernel$ tar xvfz rpi-3.6.y.tar.gz
...
linux-rpi-3.6.y/virt/kvm/iodev.h
linux-rpi-3.6.y/virt/kvm/iommu.c
linux-rpi-3.6.y/virt/kvm/irq_comm.c
linux-rpi-3.6.y/virt/kvm/kvm_main.c
pi@rpi-b:~/src/kernel$
pi@rpi-b:~/src/kernel$ sudo ln -s /home/pi/src/kernel/linux-rpi-3.6.y /lib/modules/3.10.27+/build
pi@rpi-b:~/src/kernel$ cd linux-rpi-3.6.y
pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$ make mrproper
pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$ gzip -dc /proc/config.gz > .config
pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$ make oldconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/zconf.lex.c
....
  NLS UTF-8 (NLS_UTF8) [M/y/?] m
#
# configuration written to .config
#
pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$
pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$ make prepare
...
  GEN     include/generated/bounds.h
  CC      arch/arm/kernel/asm-offsets.s
  GEN     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$
pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$ make modules_prepare
  HOSTCC  scripts/pnmtologo
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/bin2c
pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$  wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
--2014-01-19 21:07:49--  https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
Resolving raw.github.com (raw.github.com)... 185.31.17.133
Connecting to raw.github.com (raw.github.com)|185.31.17.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 493077 (482K) [text/plain]
Saving to: `Module.symvers'

100%[======================================>] 493,077     1.59M/s   in 0.3s   

2014-01-19 21:08:00 (1.59 MB/s) - `Module.symvers' saved [493077/493077]

pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$

Build the driver. You will see a lot of warnings just ignore them.

pi@rpi-b:~/src/kernel/linux-rpi-3.6.y$ cd ~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS
pi@rpi-b:~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS$
pi@rpi-b:~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS$ make all
...
make[2]: Leaving directory `/home/pi/src/kernel/linux-rpi-3.6.y'
make[1]: Leaving directory `/home/pi/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS/NETIF'
pi@rpi-b:~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS$

Install the driver. You should read the README_STA_usb in the MODULE folder for config info in the RT2870STA.dat.

pi@rpi-b:~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS$ sudo mkdir -p /etc/Wireless/RT2870STA
pi@rpi-b:~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS$ sudo cp RT2870STA.dat /etc/Wireless/RT2870STA
pi@rpi-b ~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS $ sudo cp MODULE/os/linux/mt7601Usta.ko /lib/modules/3.10.27+/kernel/drivers/net/wireless/
pi@rpi-b ~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS $ sudo cp UTIL/os/linux/mtutil7601Usta.ko /lib/modules/3.10.27+/kernel/drivers/net/wireless/
pi@rpi-b ~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS $ sudo cp NETIF/os/linux/mtnet7601Usta.ko /lib/modules/3.10.27+/kernel/drivers/net/wireless/
pi@rpi-b ~/src/DPA_MT7601U_LinuxSTA_3.0.0.3_20130717_LS $ sudo depmod -a

============================================================
Now reboot with the WL-700N-RXS inserted in a USB port.

If you do an ifconfig -a you should see ra0 as a network device.

Now you have the driver you need to config the wireless networking many people have posted info on how to do this.


















 

installatie motion

root@rpi3:~# apt-get install motion
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
  ffmpeg libav-tools libavcodec53 libavdevice53 libavfilter2 libavformat53 libavutil51 libdc1394-22 libdirac-encoder0 libgsm1 libjack-jackd2-0 libmp3lame0
  libmysqlclient18 libopencv-core2.3 libopencv-imgproc2.3 libpostproc52 libpq5 libraw1394-11 libschroedinger-1.0-0 libspeex1 libswscale2 libtheora0 libva1
  libvpx1 libx264-123 libxvidcore4 mysql-common
Suggested packages:
  jackd2 libraw1394-doc speex mysql-client postgresql-client
The following NEW packages will be installed:
  ffmpeg libav-tools libavcodec53 libavdevice53 libavfilter2 libavformat53 libavutil51 libdc1394-22 libdirac-encoder0 libgsm1 libjack-jackd2-0 libmp3lame0
  libmysqlclient18 libopencv-core2.3 libopencv-imgproc2.3 libpostproc52 libpq5 libraw1394-11 libschroedinger-1.0-0 libspeex1 libswscale2 libtheora0 libva1
  libvpx1 libx264-123 libxvidcore4 motion mysql-common
0 upgraded, 28 newly installed, 0 to remove and 5 not upgraded.
Need to get 9,320 kB of archives.
After this operation, 24.3 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libavutil51 armhf 6:0.8.6-1+rpi1 [91.1 kB]
......
Adding group `motion' (GID 112) ...
Done.
Adding system user `motion' (UID 107) ...
Adding new user `motion' (UID 107) with group `motion' ...
Not creating home directory `/home/motion'.
Adding user `motion' to group `video' ...
Adding user motion to group video
Done.
[warn] Not starting motion daemon, disabled via /etc/default/motion ... (warning).
Setting up ffmpeg (6:0.8.6-1+rpi1) ...
root@rpi3:~#

Autostart van de motion service

root@rpi3:~# vi /etc/motion/motion.conf

# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

root@rpi3:~#  sudo apt-get install v4l-utils
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following extra packages will be installed:
  libv4l-0 libv4lconvert0
The following NEW packages will be installed:
  libv4l-0 libv4lconvert0 v4l-utils
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 265 kB of archives.
After this operation, 701 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libv4lconvert0 armhf 0.8.8-3 [92.7 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libv4l-0 armhf 0.8.8-3 [54.9 kB]
Get:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main v4l-utils armhf 0.8.8-3 [117 kB]
Fetched 265 kB in 0s (481 kB/s)
Selecting previously unselected package libv4lconvert0:armhf.
(Reading database ... 63187 files and directories currently installed.)
Unpacking libv4lconvert0:armhf (from .../libv4lconvert0_0.8.8-3_armhf.deb) ...
Selecting previously unselected package libv4l-0:armhf.
Unpacking libv4l-0:armhf (from .../libv4l-0_0.8.8-3_armhf.deb) ...
Selecting previously unselected package v4l-utils.
Unpacking v4l-utils (from .../v4l-utils_0.8.8-3_armhf.deb) ...
Setting up libv4lconvert0:armhf (0.8.8-3) ...
Setting up libv4l-0:armhf (0.8.8-3) ...
Setting up v4l-utils (0.8.8-3) ...
root@rpi3:~#

werkende usb sticks op 140 mA

Ik heb ooit voor mijn wdtv live wat wireless usb sticks gekocht. Deze werken allebei op de beperkte stroom die door de RaspberryPi gaan.

video afspelen

Output van geluid via de hdmi kabel naar mijn tv.
pi@raspberrypi ~ $ vi /boot/config.txt
hdmi_drive=2

pi@raspberrypi ~ $ omxplayer -o hdmi video.avi

Of natuurlijk xbmc.

Filesystem check op de raspberry pi

Even de msdos tools installeren (deze is bij de eerdere versies niet automatisch geinstalleerd)
gej@raspberrypi(gej): ~ $ sudo apt-get install dosfstools
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following NEW packages will be installed:
  dosfstools
0 upgraded, 1 newly installed, 0 to remove and 21 not upgraded.
Need to get 67.4 kB of archives.
After this operation, 204 kB of additional disk space will be used.
Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main dosfstools armhf 3.0.13-1+rpi1 [67.4 kB]
Fetched 67.4 kB in 1s (51.6 kB/s)                       
Selecting previously unselected package dosfstools.
(Reading database ... 67544 files and directories currently installed.)
Unpacking dosfstools (from .../dosfstools_3.0.13-1+rpi1_armhf.deb) ...
Processing triggers for man-db ...
Setting up dosfstools (3.0.13-1+rpi1) ...
gej@raspberrypi(gej): ~ $

shut down and check the file system on reboot:
gej@raspberrypi(gej): ~ $ sudo shutdown -F -r now

nadat de rpi weer draait, even kijken in de logging, /var/log/fsck


Mocht het toch nog allemaal misgaan
Even de sd kaart in een PC steken:
En automaticly repair de filesystem.....

root@haley:~# fsck.fat -a /dev/mmcblk0p1
fsck.fat 3.0.26 (2014-03-07)
0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
 Automatically removing dirty bit.
Performing changes.
/dev/mmcblk0p1: 36 files, 1842/7161 clusters
root@haley:~#


Interne temperatuur sensor

De interne temperatuur sensor
Deze kun je uitlezen met het volgende commando.

root@raspberrypi:/etc/apache2/mods-enabled# /opt/vc/bin/vcgencmd measure_temp
temp=41.7'C
root@raspberrypi:/etc/apache2/mods-enabled#

Externe ds18b20 temperatuur sensor

Let op, sinds kernel 3.18 (eind 2014) werkt het allemaal niet meer, dan moet je bij de boot opgeven dat je een 1wire device wil gebruiken:
voeg dit aan het einde van je /boot/config.txt even toe:

gej@rpi-a ~/ds18b20 $ sudo vi /boot/config.txt
...
# 1wire
dtoverlay=w1-gpio
gej@rpi-a ~/ds18b20 $

Na een reboot werkt het dan wel.

De ds18b20 temperatuur sensor.
143929 DS18B20 Temperature Sensor - Black + Silver USD$ 2.501

Theorie.. Was voor mij nieuw. De ds18b20 temperatuur sensor is een 1wire sensor. Dat houdt in dat deze met meerdere sensoren op een draadje aangesloten kunnen zitten.
Zie het volgende plaatje:
Voorbeeld 1 wire schakeling
Elk device, in dit plaatje een ds18b20 heeft op deze bus een eigen adres (die krijgt de ds18b20 vanaf de fabriek al mee). Dus die kun je ook apart uitlezen.

ds18b20 aansluiten

Ennuh, mocht je net als ik moeite hebben met die weerstanden...... Dit is de juiste kleurcode met wat uitleg:
4k7 weerstand kleurcodes
geel = 4
paars = 7
rood = 00
totaal: 4700 Ohm, dus 4k7 Ohm.
Aangesloten ziet het er als volgt uit:

ds18b20-sensor-connection

Voordeel is dat deze standaard al erg lang bestaat, dus is er genoeg software voor geschreven. In ons geval zelfs kernel modules die bij de raspberry meegeleverd worden.
Even installeren (en controleren met die lsmod...)
gej@raspberrypi(gej): ~ $ sudo modprobe w1-gpio
gej@raspberrypi(gej): ~ $ sudo modprobe w1-therm
gej@raspberrypi(gej): ~ $ lsmod | grep w1
w1_therm                2705  0
w1_gpio                 1283  0
wire                   23530  2 w1_gpio,w1_therm
gej@raspberrypi(gej): ~ $

Daarna kun je de eerste uitlezing al doen.
gej@raspberrypi(gej): ~ $ cat /sys/bus/w1/devices/28-*/w1_slave
6e 01 4b 46 7f ff 02 10 71 : crc=71 YES
6e 01 4b 46 7f ff 02 10 71 t=22875
gej@raspberrypi(gej): ~ $ cat /sys/bus/w1/devices/28-0000045c4c55/w1_slave
6b 01 4b 46 7f ff 05 10 49 : crc=49 YES
6b 01 4b 46 7f ff 05 10 49 t=22687
gej@raspberrypi(gej): ~ $ cat /sys/bus/w1/devices/28-0000045c4c55/w1_slave
bc 01 4b 46 7f ff 04 10 d2 : crc=d2 YES
bc 01 4b 46 7f ff 04 10 d2 t=27750
gej@raspberrypi(gej): ~ $ cat /sys/bus/w1/devices/28-0000045c4c55/w1_slave
d3 01 4b 46 7f ff 0d 10 7b : crc=7b YES
d3 01 4b 46 7f ff 0d 10 7b t=29187
gej@raspberrypi(gej): ~ $ cat /sys/bus/w1/devices/28-0000045c4c55/w1_slave
c6 01 4b 46 7f ff 0a 10 17 : crc=17 YES
c6 01 4b 46 7f ff 0a 10 17 t=28375

Werkt als een trein
Het eerste getal is wat die 1wire afgeeft aan de bus, en het tweede de geconverteerde output (dit doet de module voor ons). CRC=xx YES houdt in dat de commnunicatie goed is.
t=22875 houdt in dat de huidige temperatuur 22.8 graden is. (de sensor is +- 0.2 graden nauwkeurig)

in mijn geval is mijn ds18b20 device nummer 28 en heeft een serienummer  van 0000045c4c55. Dit laatste getal wijzigt niet.

In mijn geval heb ik een ds18b20 en een ds1820 op dezelfde bus zitten, dus als ik die wil opzoeken hoe ze heten:
gej@raspberrypi(gej): ~ $ ls -l /sys/bus/w1/devices/[0-9]*/w1_slave
-r--r--r-- 1 root root 4096 Nov 18 14:18 /sys/bus/w1/devices/10-000801609604/w1_slave
-r--r--r-- 1 root root 4096 Nov 18 14:18 /sys/bus/w1/devices/28-0000045c4c55/w1_slave
gej@raspberrypi(gej): ~ $
Of op een andere manier:
  • gej@raspberrypi(gej): ~ $ cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
    10-000801609604
    28-0000045c4c55
    gej@raspberrypi(gej): ~ $

  • En uitlezen:
    gej@raspberrypi(gej): ~ $ cat /sys/bus/w1/devices/[0-9]*/w1_slave
    27 00 4b 46 ff ff 06 10 8e : crc=8e YES
    27 00 4b 46 ff ff 06 10 8e t=19375
    3a 01 4b 46 7f ff 06 10 42 : crc=42 YES
    3a 01 4b 46 7f ff 06 10 42 t=19625
    gej@raspberrypi(gej): ~ $

    Laden van de modules automatiseren

    Als je na een reboot van je pi weer de temperatuur wil uitlezen, moet je de modules weer laden.
    Dit kan natuurlijk ook automatisch

    gej@raspberrypi(gej): ~ $ sudo vi /etc/modules
    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    # Parameters can be specified after the module name.

    snd-bcm2835
    ipv6
    w1-gpio
    w1-therm
    gej@raspberrypi(gej): ~ $

    Vergeet niet even de boot.txt aan te passen (anders werkt de 1wire nog niet):

    gej@rpi-a ~/ds18b20 $ sudo vi /boot/config.txt
    ...
    # 1wire
    dtoverlay=w1-gpio
    gej@rpi-a ~/ds18b20 $

    Na een reboot werkt het dan allemaal wel.

    Simpel python script

    Simpel python script voor het ophalen van 1 specifieke waarde
    Na een uurtje jat en plak van het internet heb ik het volgende script in elkaar gebrast:
    Of even downloaden: get1temp.py
    gej@raspberrypi(gej): ~ $ vi get1temp.py
    #get1temp
    version = "v1.0"
    import sys

    #commandline variabele check (ik controleer alleen maar of er een variable meegegeven wordt)
    try:
        _serialnum=(sys.argv[1])
    except:
        print ("Manier van opstarten: 'get1temp.py {serienummer van de 1wire ds1820 of ds18b20}'")
        print ("Programma afgebroken.")
        sys.exit()

    # het daadwerkelijk ophalen en vertalen van de gegevens
    for i in range(5):
    #       _serialnum="28-0000045c4c55"
            filename="/sys/bus/w1/devices/"+_serialnum+"/w1_slave"
            tfile= open(filename)
            text = tfile.read()
            tfile.close()
            secondline = text.split("\n")[1]
            temperaturedata= secondline.split(" ")[9]
            global temperature
            temperature = float(temperaturedata[2:])
            temperature = temperature / 1000
            print temperature
            firstline = text
            ccrrcc = firstline.split(" ")[11]
            ccrrcc = (ccrrcc[:3]) #take only first 3 characters
            global noflag
            noflag = 0
            if ccrrcc == 'YES':
                break
            else:
                print ' Oops er ging iets mis'

    gej@raspberrypi(gej): ~ $
    demo
    gej@raspberrypi(gej): ~ $ python get1temp.py 28-0000045c4c55
    20.062
    gej@raspberrypi(gej): ~ $

    Links die voor mij handig waren:

    Links:
    http://blog.turningdigital.com/2012/09/raspberry-pi-ds18b20-temperature-sensor-rrdtool/
    leuke rrdtool example

    en voor de garden temp in rrd
    http://happyfarming.com/2008/10/16/garden-air-temperature/

    http://www.trainelectronics.com/RaspberryPi/Graph_Temperature/index.html
    8 sensor example met python

    Voorbeeldje van een Duitser met python en mysql
    http://blogmitlinien.de/index.php?blog=4

    DHT11 - temperatuur en humidity sensor

    Toen ik dacht, die 1wire (lees single wire) temperatuur sensoren zijn wel leuk, maar nu de luchtvochtigheid... Voor $3.10 kan ik wel een goke wagen.
    Helaas... De aansluitingen zijn het zelfde, maar de manier van uitlezen niet.
    Voordeel van die DHT11 is dat hij lekker goedkoop is en wel op de zelfde bekabeling als die ds18b20 past, maar niet zo nauwkeurig is. Toleranties van +- 1 graden is normaal.
    De DHT22 daarentegen is een stuk nauwkeuriger, maar helaas ook 4 keer zo duur.

    121350 DHT11 Arduino Compatible Digital Temperature Humidity Sensor Module USD$ 3.11
    dht11 - temperature and humidity sensor

    Beetje gevonden bij:

    http://learn.adafruit.com/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging/software-install

    Even git-core op mijn nieuwe rpi versie 2 installeren:

    gej@raspberrypi(gej): ~ $ sudo apt-get install git-core
    Reading package lists... Done
    Building dependency tree      
    Reading state information... Done
    The following extra packages will be installed:
      git git-man libcurl3-gnutls liberror-perl rsync
    Suggested packages:
      git-daemon-run git-daemon-sysvinit git-doc git-el git-arch git-cvs git-svn git-email git-gui gitk gitweb
    The following NEW packages will be installed:
      git git-core git-man libcurl3-gnutls liberror-perl rsync
    0 upgraded, 6 newly installed, 0 to remove and 56 not upgraded.
    Need to get 7623 kB of archives.
    After this operation, 13.8 MB of additional disk space will be used.
    Do you want to continue [Y/n]? y
    Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main git-core all 1:1.7.10.4-1+rpi11 [1338 B]
    Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main libcurl3-gnutls armhf 7.26.0-1 [306 kB]
    Get:3 http://mirrordirector.raspbian.org/raspbian/ wheezy/main liberror-perl all 0.17-1 [23.6 kB]
    Get:4 http://mirrordirector.raspbian.org/raspbian/ wheezy/main git-man all 1:1.7.10.4-1+rpi11 [1074 kB]
    Get:5 http://mirrordirector.raspbian.org/raspbian/ wheezy/main git armhf 1:1.7.10.4-1+rpi11 [5863 kB]                                                                            Get:6 http://mirrordirector.raspbian.org/raspbian/ wheezy/main rsync armhf 3.0.9-3 [355 kB]                                                                                      Fetched 7623 kB in 37s (206 kB/s)                                                                                                                                                Selecting previously unselected package libcurl3-gnutls:armhf.
    (Reading database ... 64819 files and directories currently installed.)
    Unpacking libcurl3-gnutls:armhf (from .../libcurl3-gnutls_7.26.0-1_armhf.deb) ...
    Selecting previously unselected package liberror-perl.
    Unpacking liberror-perl (from .../liberror-perl_0.17-1_all.deb) ...
    Selecting previously unselected package git-man.
    Unpacking git-man (from .../git-man_1%3a1.7.10.4-1+rpi11_all.deb) ...
    Selecting previously unselected package git.
    Unpacking git (from .../git_1%3a1.7.10.4-1+rpi11_armhf.deb) ...
    Selecting previously unselected package git-core.
    Unpacking git-core (from .../git-core_1%3a1.7.10.4-1+rpi11_all.deb) ...
    Selecting previously unselected package rsync.
    Unpacking rsync (from .../rsync_3.0.9-3_armhf.deb) ...
    Processing triggers for man-db ...
    locale: Cannot set LC_CTYPE to default locale: No such file or directory
    locale: Cannot set LC_MESSAGES to default locale: No such file or directory
    locale: Cannot set LC_ALL to default locale: No such file or directory
    Setting up libcurl3-gnutls:armhf (7.26.0-1) ...
    Setting up liberror-perl (0.17-1) ...
    Setting up git-man (1:1.7.10.4-1+rpi11) ...
    Setting up git (1:1.7.10.4-1+rpi11) ...
    Setting up git-core (1:1.7.10.4-1+rpi11) ...
    Setting up rsync (3.0.9-3) ...
    update-rc.d: using dependency based boot sequencing
    gej@raspberrypi(gej): ~ $

    En als we die hebben, even de Adafruit DHT driver downloaden.

    root@raspberrypi:~# git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
    Cloning into 'Adafruit-Raspberry-Pi-Python-Code'...
    remote: Counting objects: 218, done.
    remote: Compressing objects: 100% (118/118), done.
    remote: Total 218 (delta 99), reused 197 (delta 85)
    Receiving objects: 100% (218/218), 60.00 KiB | 111 KiB/s, done.
    Resolving deltas: 100% (99/99), done.
    root@raspberrypi:~#
    Even naar de driver stappen

    root@raspberrypi:~# cd Adafruit-Raspberry-Pi-Python-Code
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code# cd Adafruit_DHT_Driver
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver# ls -la
    total 52
    drwxr-xr-x  2 root root  4096 Dec 16 01:17 .
    drwxr-xr-x 15 root root  4096 Dec 16 01:17 ..
    -rwxr-xr-x  1 root root 30400 Dec 16 01:17 Adafruit_DHT
    -rw-r--r--  1 root root  3124 Dec 16 01:17 Adafruit_DHT.c
    -rwxr-xr-x  1 root root  2011 Dec 16 01:17 Adafruit_DHT_googledocs.ex.py
    -rw-r--r--  1 root root   164 Dec 16 01:17 Makefile
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver# ./Adafruit_DHT 2302 4
    Using pin #4
    Data (40): 0x2a 0x0 0x16 0x0 0x40
    Temp =  563.2 *C, Hum = 1075.2 %
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver# ./Adafruit_DHT
    usage: ./Adafruit_DHT [11|22|2302] GPIOpin#
    example: ./Adafruit_DHT 2302 4 - Read from an AM2302 connected to GPIO #4
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver#

    Ah, dus we kunnen de dht11 apart aanspreken.
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver# ./Adafruit_DHT 11 4
    Using pin #4
    Data (40): 0x29 0x0 0x16 0x0 0x3f
    Temp = 22 *C, Hum = 41 %
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver# ./Adafruit_DHT 11 4
    Using pin #4
    Data (40): 0x25 0x0 0x15 0x0 0x3a
    Temp = 21 *C, Hum = 37 %
    root@raspberrypi:~/Adafruit-Raspberry-Pi-Python-Code/Adafruit_DHT_Driver#

    Tadaaaaaaa...

    BMP085 Bosch Pressure and temperature sensor

    Voordat je hiermee begint, even de i2c enablen:
    gej@rpi-a ~ $ sudo raspi-config
    │                                                                                    │
    │    1 Expand Filesystem                 Ensures that all of the SD card stor        │
    │    2 Change User Password              Change password for the default user        │
    │    3 Enable Boot to Desktop/Scratch    Choose whether to boot into a deskto        │
    │    4 Internationalisation Options      Set up language and regional setting        │
    │    5 Enable Camera                     Enable this Pi to work with the Rasp        │
    │    6 Add to Rastrack                   Add this Pi to the online Raspberry         │
    │    7 Overclock                         Configure overclocking for your Pi          │
    │    8 Advanced Options                  Configure advanced settings                 │
    │    9 About raspi-config                Information about this configuration        │
    │                                                                                    │
    │                                                                                    │
    │                                                                                    │
    │                       <Select>                       <Finish>                      │
    │                                                                                    │
    └────────────────────────────────────────────────────────────────────────────────────┘

    │    A1 Overscan                         You may need to configure overscan i        │
    │    A2 Hostname                         Set the visible name for this Pi on         │
    │    A3 Memory Split                     Change the amount of memory made ava        │
    │    A4 SSH                              Enable/Disable remote command line a        │
    │    A5 Device Tree                      Enable/Disable the use of Device Tre        │
    │    A6 SPI                              Enable/Disable automatic loading of         │
    │    A7 I2C                              Enable/Disable automatic loading of         │
    │    A8 Serial                           Enable/Disable shell and kernel mess        │
    │    A9 Audio                            Force audio out through HDMI or 3.5m        │
    │    A0 Update                           Update this tool to the latest versi        │
    │                                                                                    │
    │                                                                                    │
    │                       <Select>                       <Back>                        │
    │                                                                                    │
    └────────────────────────────────────────────────────────────────────────────────────┘

    Na een reboot werkt het dan.


    De Bosch luchtdruk sensor. Deze was best duur, maar luchtdruk meten is natuurlijk ook leuk.
    De manier om deze uit te lezen is de i2c bus (lees i kwadraat c bus). Dit heb ik nog nooit gedaan, alleen maar over gelezen, dus eens kijken of dit lukt.
    bmp085 frontbmp085 back GPIO connection numbers

    158296 6956 BOSCH BMP085 Digital Air Temperature and Barometric Pressure Sensor Module - Blue USD$ 10.50

    Aansluit schema:
    BMP085 - aansluitschema

    pi@raspberrypi ~ $ sudo apt-get install python-smbus i2c-tools
    Reading package lists... Done
    Building dependency tree      
    Reading state information... Done
    Suggested packages:
      libi2c-dev
    The following NEW packages will be installed:
      i2c-tools python-smbus
    0 upgraded, 2 newly installed, 0 to remove and 4 not upgraded.
    Need to get 71.0 kB of archives.
    After this operation, 317 kB of additional disk space will be used.
    Get:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main i2c-tools armhf 3.1.0-2 [59.5 kB]
    Get:2 http://mirrordirector.raspbian.org/raspbian/ wheezy/main python-smbus armhf 3.1.0-2 [11.5 kB]
    Fetched 71.0 kB in 0s (89.4 kB/s) 
    Selecting previously unselected package i2c-tools.
    (Reading database ... 58679 files and directories currently installed.)
    Unpacking i2c-tools (from .../i2c-tools_3.1.0-2_armhf.deb) ...
    Selecting previously unselected package python-smbus.
    Unpacking python-smbus (from .../python-smbus_3.1.0-2_armhf.deb) ...
    Processing triggers for man-db ...
    Setting up i2c-tools (3.1.0-2) ...
    Setting up python-smbus (3.1.0-2) ...
    pi@raspberrypi ~ $

    gelijk testen:

    pi@raspberrypi ~ $ sudo i2cdetect -y 0
    Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
    pi@raspberrypi ~ $

    Ah, natuurlijk eerst de modules voor de i2c bus even installeren.

    pi@rpi2 ~ $ sudo modprobe i2c-dev
    pi@rpi2 ~ $ sudo modprobe i2c-bcm2708
    pi@rpi2 ~ $ lsmod
    Module                  Size  Used by
    i2c_bcm2708             3681  0
    i2c_dev                 5587  0
    snd_bcm2835            12808  0
    snd_pcm                74834  1 snd_bcm2835
    snd_seq                52536  0
    snd_timer              19698  2 snd_seq,snd_pcm
    snd_seq_device          6300  1 snd_seq
    snd                    52489  5 snd_seq_device,snd_timer,snd_seq,snd_pcm,snd_bcm2835
    snd_page_alloc          4951  1 snd_pcm
    pi@rpi2 ~ $

    Daarna deed hij het, maar de nieuwe raspberry heeft de i2c bussen omgekeerd. De 0 zit op de camera uitgang en de 1 zit op de gpio connector. (voor de duidelijkheid, ik heb in dit voorbeeld een versie 2 raspberry met 512 mb geheugen)

    /var/log/messages:
    Dec 23 14:51:42 rpi2 kernel: [  163.180767] i2c /dev entries driver
    Dec 23 14:51:50 rpi2 kernel: [  171.727914] bcm2708_i2c bcm2708_i2c.0: BSC0 Controller at 0x20205000 (irq 79) (baudrate 100k)
    Dec 23 14:51:50 rpi2 kernel: [  171.728490] bcm2708_i2c bcm2708_i2c.1: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100k)

    Hij zou het nu moeten doen:

    pi@rpi2 ~ $ sudo i2cdetect -y 0
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --                        
    pi@rpi2 ~ $ sudo i2cdetect -y 1
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- 77                        
    pi@rpi2 ~ $

    Kijk, die 77 zijn we aan het zoeken.

    Om de sensor nu uit te lezen, hebbwen we twee mogelijkheden. De python code van adafruit of de c code van John uit Niew Zeeland. Die laatste was het snelste :-)

    Hierbij het de stappen voor de versie van John.
    even de .c file downloaden.

    pi@rpi2 ~ $ wget http://www.john.geek.nz/wp-content/uploads/2012/08/testBMP085.c
    --2012-12-23 21:36:59--  http://www.john.geek.nz/wp-content/uploads/2012/08/testBMP085.c
    Resolving www.john.geek.nz (www.john.geek.nz)... 173.230.144.178, 2600:3c01::f03c:91ff:fedf:995d
    Connecting to www.john.geek.nz (www.john.geek.nz)|173.230.144.178|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 5920 (5.8K) [text/x-csrc]
    Saving to: `testBMP085.c'

    100%[=================================================================================================================>] 5,920       --.-K/s   in 0s     

    2012-12-23 21:36:59 (19.1 MB/s) - `testBMP085.c' saved [5920/5920]

    pi@rpi2 ~ $

    Daarna even de smbus.c en de smbus.h downloaden bij hem omdat de originelen niet meer leverbaar zijn via lmsensors.

    pi@raspberrypi ~ $ wget http://www.john.geek.nz/wp-content/uploads/2012/12/smbus.c
    --2012-12-23 00:42:26--  http://www.john.geek.nz/wp-content/uploads/2012/12/smbus.c
    Resolving www.john.geek.nz (www.john.geek.nz)... 173.230.144.178, 2600:3c01::f03c:91ff:fedf:995d
    Connecting to www.john.geek.nz (www.john.geek.nz)|173.230.144.178|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 5779 (5.6K) [text/x-csrc]
    Saving to: `smbus.c'

    100%[========================================================================================================================================>] 5,779       --.-K/s   in 0s     

    2012-12-23 00:42:27 (38.8 MB/s) - `smbus.c' saved [5779/5779]

    pi@raspberrypi ~ $ wget http://www.john.geek.nz/wp-content/uploads/2012/12/smbus.h
    --2012-12-23 00:42:38--  http://www.john.geek.nz/wp-content/uploads/2012/12/smbus.h
    Resolving www.john.geek.nz (www.john.geek.nz)... 173.230.144.178, 2600:3c01::f03c:91ff:fedf:995d
    Connecting to www.john.geek.nz (www.john.geek.nz)|173.230.144.178|:80... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 2422 (2.4K) [text/x-chdr]
    Saving to: `smbus.h'

    100%[========================================================================================================================================>] 2,422       --.-K/s   in 0s     

    2012-12-23 00:42:38 (28.5 MB/s) - `smbus.h' saved [2422/2422]

    pi@raspberrypi ~ $ vi testBMP085.c



    De 1 is dus als je een pi versie 2 hebt, en de originele waarde is 0.
    Ik heb voor de zekerheid een kopie gemaakt van het orignele bestand en deze met -1 (en /dev/i2c-1) gecompileerd.


    pi@raspberrypi ~ $ cp testBMP085.c -testBMP085-1.c
    pi@raspberrypi ~ $ vi testBMP085-1.c

    Nu moeten we er nog eentje maken met i2c bus 1, omdat ik een versie 2 pi heb.
    verander dan in de code de volgende regel:

    int bmp085_i2c_Begin()
    {
            int fd;
            char *fileName = "/dev/i2c-1";

    pi@raspberrypi ~ $ gcc -Wall -o testBMP085 ./smbus.c ./i2cbmp085.c
    pi@raspberrypi ~ $ vi i2cbmp085.c

    En dan de test:
    pi@raspberrypi ~ $ sudo ./testBMP085
    pi@raspberrypi ~ $

    En deze doet het niet. De andere bus is in gebruik.
    pi@raspberrypi ~ $ gcc -Wall -o testBMP085-1 ./smbus.c ./i2cbmp085.c
    pi@raspberrypi ~ $ sudo ./testBMP085-1
    Temperature    21.4�C
    Pressure    998.41hPa

    Automatisch laden van de modules

    Het blijkt dat de raspberry by default eigenlijk de modules laad, alleen is dat uitgeschakeld omdat bijna niemand wat doet met de i2c bus. Deze moet je dus weer even aanzetten (even dat hekje voor de blacklist zetten of de regel gewoon weggooien). En daarna even de i2c-dev toevoegen aan de gewone modules.

    gej@rpi2 ~ $ sudo vi /etc/modprobe.d/raspi-blacklist.conf
    # blacklist spi and i2c by default (many users don't need them)

    blacklist spi-bcm2708
    #blacklist i2c-bcm2708

    gej@rpi2 ~ $

    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    # Parameters can be specified after the module name.

    snd-bcm2835
    i2c-dev

    gej@rpi2 ~ $

    Even rebooten en je hebt een perfect werkende pi met i2c bus aktief.

    Denk eraan dit ook in je boot.txt toe te voegen, of doe dit automatisch met raspi-config

    gej@rpi-a ~ $ sudo vi /boot/config.txt
    ...
    dtparam=i2c_arm=on
    gej@rpi-a ~ $

    Next install the  python-smbus python module:

    gej@rpi2 ~ $ sudo apt-get install python-smbus 

    Now you are ready to use the i2c with python.


    Tweede i2c bus

    De Raspberry Pi Versie 2 (die met 512 Mb gebeugen) hebben nog een extra connector erbij gekregen. Hierop zitten nog een keer twee GPIO poorten en een tweede i2c bus.

    Om deze te gebruiken, moet tijdelijk de camera even uitgezet worden.

    Ik heb het nog niet getest, maar de info staat alvast klaar voor als ik wil gaan testen:

    http://raspberrypi.znix.com/hipidocs/topic_i2cbus_2.htm

    Er zijn ook mogelijkheden om het via python te doen, maar dit was de meest duidelijke pagina.


    BH1750VFI lichtsensor

    Op dx kwam ik een I2C lichtsensor tegen.

    Even gekocht en testen:
    182595 BH1750FVI Digital Light Intensity Sensor Module - Blue USD$ 3.50
    pi@rpi-a:~$ sudo i2cdetect -y 1
    sudo: unable to resolve host rpi-a
         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
    00:          -- -- -- -- -- -- -- -- -- -- -- -- --
    10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    20: -- -- -- 23 -- -- -- -- -- -- -- -- -- -- -- --
    30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
    70: -- -- -- -- -- -- -- --                        
    pi@rpi-a:~$

    Hee, i2c adres 23.

    Even een python script maken:
    ~
    pi@rpi-a:~$ vi bh1750.py
    #!/usr/bin/python
    # -*- encoding: utf-8 -*-

    import time
    import smbus

    #bus = smbus.SMBus(0) #(256MB)
    bus = smbus.SMBus(1) #(512MB)

    addr = 0x23 # i2c adress

    while True:
      data = bus.read_i2c_block_data(addr,0x11)
      print "Luminosity " + str((data[1] + (256 * data[0])) / 1.2) + "lx"
      time.sleep(0.5)

    en dan even testen:
    (Stoppen met CTRL-C)
    pi@rpi-a:~$ sudo python bh1750.py
    Luminosity 2.5lx
    Luminosity 2.5lx
    Luminosity 2.5lx
    Luminosity 2.5lx


    Serial communication

    Voor de seriepoort aan te sluiten, heb je een seriepoortje nodig.
    Bijvoorbeeld:
    144192 RS232 Serial Port To TTL Converter Module w/ Transmitting and Receiving Indicator USD$ 4.30


    aan te sluiten met de volgende aansluitingen:
    serialport aansluiten

    vanaf een andere unox doos kun je deze dan aanspreken.

    gej@haley:~$ cu -l /dev/ttyUSB0 -s 115200 --parity=none

    ~. voor af te sluiten

    Connected serialport

    CP2102 USB serial module aansluiten

    Voor de seriepoort aan te sluiten, heb je een seriepoortje nodig.
    Bijvoorbeeld:
    144192 RS232 Serial Port To TTL Converter Module w/ Transmitting and Receiving Indicator USD$ 4.30

    of als je geen usb-serial kabel over hebt:
    152317 sku 152317 usb 2.0 to UART CP2102 serial converter

    USB 2.0 to TTL Uart 5-Pin CP2102 Module Serial Converter - Blue

    USD$ 5.20

    aan te sluiten met de volgende aansluitingen:
    serialport aansluiten sku_152317_aangesloten
    Let wel op tijdens het aansluiten, de tx op de cp2102 moet aan de rx op de raspberry.

    vanaf een andere unox doos kun je deze dan aanspreken.

    gej@haley:~/Downloads/raspberry$ cu -l /dev/ttyUSB0 -s 115200 --parity=none
    Connected.
    [    3.880478] udevd[154]: starting version 175
    [    5.111587] r8712u: module is from the staging directory, th

    ~. om af te sluiten.

    Het mag natuurlijk ook met een stuk software dat de zilveren gulden niet meegemaakt heeft zoals minicom :-)

    Gekochte spullen bij DX


    Gekochte spullen voor de raspberrypi bij dx.com

    Omdat ik wist dat de Raspberry Pi eraan kwam had ik snel even een breadboard, wat kabeltjes en een paar switches besteld.

    Deze zijn:
    SKU Product Name Purchase Price Ordered Qty
    80208 Breadboard Jumper Wires for Electronic DIY (70-Cable Pack) USD$ 3.50 1
    121534 Solderless Breadboard with 400 Tie-Point (White) USD$ 3.60 1
    123659 PA66 DC 12V 50mA Tact Switch - Black (100-Piece Pack / 6 x 6 x 7.5mm) USD$ 4.60 1
    135520 IR Receiver Module Wireless Remote Control Kit for Arduino (1 x CR2025) USD$ 5.30 1
    137109 Arduino 4-Channel 5V Relay Module Expansion Board USD$ 8.10 1
    55454 Single Port Female to Female Jumper Wire Set (50-Pack/20CM-Length) USD$ 4.90 1
    121350 DHT11 Arduino Compatible Digital Temperature Humidity Sensor Module USD$ 3.1 1
    143929 DS18B20 Temperature Sensor - Black + Silver USD$ 2.50 1
    140226 Arduino Compatible 1.6" LCD Nokia 5110 LCD Module with White Backlit - Red + Silver USD$ 5.40 1
    144192 RS232 Serial Port To TTL Converter Module w/ Transmitting and Receiving Indicator USD$ 4.30 1
    158296 6956 BOSCH BMP085 Digital Air Temperature and Barometric Pressure Sensor Module - Blue USD$ 10.50 1
    182595 BH1750FVI Digital Light Intensity Sensor Module - Blue USD$ 3.50
    1

    Als je dan ook nog even naar de lokale bouwmarkt gaat voor een plexiglas plaatje van 15*10 cm, dan ziet het geheel er als volgt uit:

    raspberripi met breadboard

    Links


    sysctl
    sysctl kernel.shmall
    grep shmall /etc/sysctl.conf
    grep shmall /etc/sysctl.d/*
    vi /etc/sysctl.conf
    reboot
    top
    sysctl
    sysctl -a
    sysctl -a| grep overcomm
    vi /etc/sysctl.conf
    sysctl kernel.shmall

    vi /etc/sysctl.conf
    # ** test tbv webcam
    kernel.shmall=4194304
    vm.overcommit_memory=1

    streamer -t 0:30 -s 352x240 -r 24 -o video.yuv
    sudo streamer -t 0:30 -s 352x240 -r 24 -o video.yuv
    sudo streamer -t 0:30 -s 352x240 -r 24 -o video.yuv
    sudo streamer -t 0:30 -s 352x240 -r 24 -o video.yuv
    sudo streamer -t 0:30 -s 352x240 -r 24 -o video.yuv
    sudo streamer -o xy.jpeg