RaspberryPi
Eindelijk was het dan zover, 28 juni 2012 kwam ook mijn raspberry binnen.
Even tijd zoeken en gelijk aan de slag.
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.
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.
Dan heb je de volgende mogelijke storingen (heb ik natuurlijk allemaal gehad):
- SD kaart niet goed geplaatst
- SD kaart niet goed geschreven (write error of slechte kaart)
- naar /dev/sdb1 geschreven. Fout moet naar /dev/sdb
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
Versie 1
We gaan over pin 1 (3.3V Power) en pin 6 (Ground) eerst het testled aansluiten.
Als die het doet sluiten we die led (of weer een nieuwe) op pin 1 (3..3V Power) en pin 7 (GPIO4) aan.
Dan ziet het er dus zo uit: (rood = 3.3V, zwart is Ground, en wit is het ledje)
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
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 |
|
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:
s
pi@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/module
s/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.
- WESB600N ver 2 van Linksys
- USB N10 van Asus
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.50 | 1
|
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:
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.
Ennuh, mocht je net als ik moeite hebben met die weerstanden...... Dit is de juiste kleurcode met wat uitleg:
geel = 4
paars = 7
rood = 00
totaal: 4700 Ohm, dus 4k7 Ohm.
Aangesloten ziet het er als volgt uit:
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.1 | 1
|
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.
158296
|
6956 BOSCH BMP085 Digital Air Temperature and Barometric Pressure Sensor Module - Blue
|
USD$ 10.50
|
Aansluit schema:
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:
vanaf een andere unox doos kun je deze dan aanspreken.
gej@haley:~$ cu -l /dev/ttyUSB0 -s 115200 --parity=none
~. voor af te sluiten
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:
aan te sluiten met de volgende aansluitingen:
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
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:
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