Cacera fotogràfica amb Raspberry Pi

De Wikijoan
Dreceres ràpides: navegació, cerca

Contingut

Introducció

(TODO)

Pen USB Movistar 3G: movistar.es 3g USB ZTE MF-190

Ubuntu 12.04

Amb Ubuntu 12.04 i el Network Manager ha funcionat.

http://www.of-networks.co.uk/miscellaneous/movistar-es-3g-usb-zte-mf190-usb_modeswitch-conf

En el Network Manager, he d'habilitar la Banda Ampla mòbil.

Finalment, quan s'estableix la connexió:

$ ifconfig -a
...
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:176.81.112.38  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:74 errors:0 dropped:0 overruns:0 frame:0
          TX packets:80 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:13509 (13.5 KB)  TX bytes:15986 (15.9 KB)
...

En cap moment he hagut de posar el pwd que està en el cel.lo. El fitxer de configuració està a:

[connection]
id=Movistar (Telefónica) Predeterminat   
uuid=f1bc7ade-3b99-4a8e-88b5-44146b8b32cb
type=gsm
autoconnect=false

[gsm]
number=*99#
username=movistar
password=movistar
apn=movistar.es

[ppp]
lcp-echo-failure=5  
lcp-echo-interval=30

[serial]   
baud=115200

[ipv4]
method=auto

Raspberry Pi

Connectar el llapis USB ZTE MF-190 a la RPi no ha estat fàcil i evident. Segueixo:

$ sudo apt-get install ppp
$sudo apt-get install usb-modeswitch

$ mkdir ~/3g && cd ~/3g

Descarreguem la última versió de sakis3g, que serà la nostra utilitat per connectar i configurar la connexió 3G:

$ wget sourceforge.net/projects/vim-n4n0/files/sakis3g.tar.gz

Primer de tot informació sobre el mòdem. Si el mòdem fa pampalluguen en:

He llegit que és interessant fer servir el pen USB amb un hub doncs hi poden haver problemes d'alimentació. De totes maneres, a mi em funciona sense el hub.

Després de connectar el USB, ja el reconeix com a mòdem 3G (a diferència de l'enllaç que segueixo).

$ lsusb
...
Bus 001 Device 006: ID 19d2:0149 ZTE WCDMA Technologies MSM
$ dmesg
...
[  411.524479] usbserial: USB Serial support registered for GSM modem (1-port)
[  411.525154] option 1-1.2:1.0: GSM modem (1-port) converter detected
[  411.576964] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
[  411.579591] qmi_wwan 1-1.2:1.5: cdc-wdm0: USB WDM device
[  411.582702] qmi_wwan 1-1.2:1.5 wwan0: register 'qmi_wwan' at usb-bcm2708_usb-1.2, WWAN/QMI device, 26:10:c9:a3:16:64
[  411.583006] usbcore: registered new interface driver qmi_wwan
[  411.589627] option 1-1.2:1.1: GSM modem (1-port) converter detected
[  411.591839] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1
[  411.592286] option 1-1.2:1.2: GSM modem (1-port) converter detected
[  411.599383] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB2
[  411.599822] option 1-1.2:1.3: GSM modem (1-port) converter detected
[  411.601048] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB3
[  411.601799] option 1-1.2:1.4: GSM modem (1-port) converter detected0
[  411.602675] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB4
[  412.320969] scsi 1:0:0:0: Direct-Access     ZTE      MMC Storage      2.31 PQ: 0 ANSI: 2
[  412.325176] sd 1:0:0:0: [sda] Attached SCSI removable disk
[  412.847562] sd 1:0:0:0: Attached scsi generic sg0 type 0

Fitxer de configuració per a usb-modeswitch: etc/usb_modeswitch.d/19d2\:0149

$ sudo joe etc/usb_modeswitch.d/19d2\:0149 

########################################################
# ZTE 0149 device

DefaultVendor= 0x19d2
DefaultProduct=0x0149

TargetVendor= 0x19d2
TargetProduct= 0x0124

CheckSuccess=20

MessageContent="55534243f8f993882000000080000a85010101180101010101000000000000"

...

Veig que ja està el model MF190 (idproduct=0149):

# MF 190
ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="0149", RUN+="usb_modeswitch '%b/%k'"

i per tant no em cal fer el que indica en l'enllaç.

Per executar la configuració del sakis3g de forma interactiva:

$ sudo ./sakis3g --interactive

El fitxer de configuració està a /etc/sakis3g.conf

Les dades que necessito per la connexió les trobo del fitxer de configuració en el meu sistema Ubuntu, on prèviament he aconseguit realitzar la connexió:

[connection]
id=Movistar (Telefónica) Predeterminat   
uuid=f1bc7ade-3b99-4a8e-88b5-44146b8b32cb
type=gsm
autoconnect=false

[gsm]
number=*99#
username=movistar
password=movistar
apn=movistar.es

[ppp]
lcp-echo-failure=5  
lcp-echo-interval=30

[serial]   
baud=115200

[ipv4]
method=auto

Veig quin és el APN, username i password, que són dades que necessitaré.

El fitxer de configuració /etc/sakis3g.conf que funciona finalment queda:

-s
SIM_PIN="1776"
APN="movistar.es"
USBINTERFACE="4"
TRANSLATION="/usr/bin/modem3g/sakis3g/messages/es_ES.UTF-8"
MODEM="19d2:0149 19d2:0124"
APN_USER="movistar"
APN_PASS="movistar"

Ha costat una mica la configuració però al final s'ha connectat:

~/3g $ ./sakis3g connect
MF190 connected to movistar (21407).

i el led del llapis queda verd.

NOTA: sembla ser que és millor executar-ho com a sudo.

$ ifconfig
...
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:2.142.240.206  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:130 (130.0 B)  TX bytes:637 (637.0 B)

wwan0     Link encap:Ethernet  HWaddr 82:90:0a:93:1d:a5  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
$ /home/pi/3g/sakis3g status
MF190 connected to movistar (21407).
$ /home/pi/3g/sakis3g disconnect
Not connected.

En teoria, a la comanda se li poden passar tots els paràmetres que inclou el fitxer de configuració. Per exemple:

$ sudo /home/pi/3g/sakis3g --interactive "connect" "--console" "--sudo" "APN=movistar.es" "APN_USER=movistar" "APN_PASS=movistar" "SIM_PIN=2542" "SGUI=terminal" "USBINTERFACE=4" "USBDRIVER=option" "OTHER=USBMODEM" "MODEM=19d2:0124"

Però sembla ser que si existeix el fitxer de configuració, es mira aquest fitxer, no es té en compte els paràmetres que li passes en línia de comandes.

Hi ha hagut una mica d'embolic amb el paràmetre MODEM. A vegadaes és 19d2:0149, i a vegades és 19d2:0124. Sembla ser que el millor és posar els dos:

MODEM="19d2:0149 19d2:0124"

La comanda amb el paràmetre interactive significa que li vas passant comandes. Però si li passes els paràmetres en la línia de comandes, aleshores senzillament el llegeix i passa a la següent opció.

Per tal de què la connexió s'executi en l'inici del sistema, fiquem la comanda a /etc/rc.local, abans del exit 0..

sudo /home/pi/3g/sakis3g connect

NOTA. No ho he de ficar al /home/pi/.profile, doncs el contingut d'aquest script s'executa quan s'inicia la sessió.

Enviar mails des de la línia de comandes

La configuració per enviar mails per línia de comandes està documentat en un altre lloc en aquesta wiki, concretament a l'assignatura de SAD. En aquest cas, seguirem:

$ sudo apt-get update
$ sudo apt-get install exim4
$ sudo dpkg-reconfigure exim4-config

Editem el fitxer de configuració i afegim les tres línies al final de tot:

$ joe /etc/exim4/passwd.client 

gmail-smtp.l.google.com:joanqc@gmail.com:PASSWORD
*.google.com:joanqc@gmail.com:PASSWORD
smtp.gmail.com:joanqc@gmail.com:PASSWORD

(aquí l'únic problema és tenir present que el pwd del compte de GMail pot canviar amb el temps, degut a les polítiques de privacitat de Google).

$ sudo update-exim4.conf
$ sudo /etc/init.d/exim4 restart

Per no tenir problemes i que l'usuari pi actuï com a root:

$ sudo joe /etc/aliases
root: pi

Per enviar els correus electrònics:

$ mail -s "This is the subject line" joanqc@gmail.com < body.txt
$ cat body.txt | mail -s "This is the subject line" joanqc@gmail.com

On el fitxer body.txt conté el contingut del missatge. En aquest cas, no confondre el compte que envia el mail segons he posat en el fitxer de configuració (joanqc@gmail.com) amb el destinatari del mail, que en aquest cas és el mateix. Però el destinatari evidentment pot ser qualsevol altre.

D'entrada no rebo el missatge perquè Google detecta una intrusió irregular en el meu compte de mail (diu que un intrús provinent d'Andalusia (!) està fent servir el meu compte, i em pregunta si és cert o no). Es soluciona seguint les instruccions que proposa, anant a la configuració del mail.

Hola, Joan.

Fa poc hem bloquejat un intent d'inici de sessió al vostre compte de Google (joanqc@gmail.com).

Detalls de l'intent d'inici de sessió
Data i hora: diumenge, 26 / octubre / 2014 22:36:55 UTC
Ubicació: Andalusia, Espanya

Si no ha estat un intent vostre
Reviseu la pàgina d'activitat del compte a https://security.google.com/settings/security/activity per veure si hi ha res de sospitós. Com que la persona que ha provat d'iniciar la sessió al vostre compte en sap la contrasenya, us recomanem que la canvieu de seguida.

Si l'intent ha estat vostre
Podeu canviar a una aplicació creada per Google, com ara Gmail, per accedir al vostre compte (opció recomanada) o podeu canviar la configuració a https://www.google.com/settings/security/lesssecureapps per deixar de protegir el vostre compte amb normes de seguretat modernes.

Per obtenir més informació, consulteu https://support.google.com/accounts/answer/6010255.

Atentament,

I ara ja rebo correus electrònics.

Enviar emails amb adjunts (attachment)

A mi el que m'interessa és enviar fotos reduïdes com a adjunts en els correus electrònics. Per tant, m'interessa aquesta possibilitat.

Senzillament s'ha d'utilitzar l'opció -a

$ mail -s "This is the subject line" -a /home/pi/body.txt joanqc@gmail.com < body.txt

Si faig $ man mail fixem-nos que de fet la utilitat és mailx, que seria equivalent a mail i es pot utilitzar de forma indistinta.

Electrònica: detecció de presència

PIR (motion) sensor:

(TODO)

Instal.lació i configuració de la webcam

Ja tinc la càmera per a la RPi (PiCAM). És el model infraroig per a visió noctura. És necessari il.luminar el motiu amb una làmpara IR com ara.

Treballant el script

(TODO)

Instal.lació solar per tenir autonomia

El que primer he de considerar és el consum de la RPi. La càrrega que haurà de suportar el meu sistema és tan sols la RPi. Un carregador típic per alimentar la RPi són 5V/750mA:

750mA*5V = 3,75W

Però això de mitjana no és real, suposem la meitat: P=1.8W. (Evidentment, el fet de tenim el llapis GSM i la webcam connectats fan augmentar la potència necessària).

Les bateries em donaran 12V (serà el meu operational voltage), i l'alimentació de la RPi es fa amb un DC-DC step down converter, de 12V a 5V. Negligeixo el consum d'aquest component.

Primeres suposicions

Per fer els càlculs, segueixo el video 8.1: Stand Alone PV Systems. Aquí va una primera prova de càlculs no definitius, doncs les especificacions de la placa solar, el controlador de càrrega i de les bateries són els dels videos.

Considerem que la meva càrrega (la RPi) consumeix 3,75W. El time of use és de 24h, doncs vull un funcionament continu de tot el dia. Per tant, l'energia diària consumida per la RPi són:

1,8W*24h=43.2 Wh.

Suposem que l'eficiència combinada del controlador de càrrega, la bateria i els cables és del 85%.

Per tant, l'energia fotovoltaica que hem d'esperar del sistema per dia és:

43.2WH/0.85 = 50.8 Wh

i aquesta és l'energia que hem d'esperar de les plaques en un dia normal.

El següent que hem de considerar són les equivalent sun hours. Depèn de la irradiància del lloc escollit. Suposem que és un lloc bastant ombrívol, i considerem 2 hores.

Sabent la càrrega que es demana, i les hores de sol equivalents, ja podem saber la potència que ens hauran de proporcionar els penells:

50.8WH / 2h = 25.4W.

1r càlcul, prova

Ara és el moment d'escollir un tipus de penell solar. Suposem:

Suposem que les plaques poden treballar al punt mpp. Per tant, amb una sola placa en tindré prou. Configuració de les plaques: pot ser sèrie o paral.lel. Però en aquest cas només en tinc una, que em pot proporcionar com a màxim 20V i 7A.

Ara hem de considerar el controlador de càrrega, i hem de pensar que les especificacions del controlador de càrrega han d'estar d'acord amb la sortida del penell solar quant a amperatge i voltatge. Suposem que tenim un controlador de càrrega:

En el nostre cas la tensió operacional és de 12V (NOTA: per alimentar la RPi faré servir un DC-DC step down converter de 12V a 5V).

Anem a pensar ara en el disseny de la bateria. L'especificació de la bateria és:

El número mínim de bateries que necessitem depèn del voltatge operacional, de la profunditat de descàrrega, i de l'energia demanada. La fórmula per calcular és:

Cap min bat = (total energy demand)*(days of autonomy) / (DOD * operational voltage)

Cap min bat = 50.8*2/(0.6*12) = 14 Ah

i això ens diu el número de bateries que necessitem: 1

2n càlcul: Leroy Merlin

Un mòdul solar com ara aquest dóna 12V: (15W + controlador de càrrega de 7A) (99 e). És de tecnologia thin-film

Ara és el moment d'escollir un tipus de penell solar. Suposem:

No sabem com és el controlador de càrrega (si és mpp), només sabem que el controlador de càrrega és de 7A, que segur que compleix les especificacions de la placa solar. Amb una sola placa en tinc prou.

Ara hem de considerar el controlador de càrrega, i hem de pensar que les especificacions del controlador de càrrega han d'estar d'acord amb la sortida del penell solar quant a amperatge i voltatge. Suposem que tenim un controlador de càrrega:

En el nostre cas la tensió operacional és de 12V.

Anem a pensar ara en el disseny de la bateria. Considerem la següent bateria: (35,85e)

L'especificació de la bateria és:

El número mínim de bateries que necessitem depèn del voltatge operacional, de la profunditat de descàrrega, i de l'energia demanada. La fórmula per calcular és:

Cap min bat = (total energy demand)*(days of autonomy) / (DOD * operational voltage)

Cap min bat = 50.8*2/(0.6*12) = 14 Ah (casualitat)

i això ens diu el número de bateries que necessitem: 1, tot i que si volem curar-nos en salut n'hauríem d'agafar dues.

el pressupost seria: 99+36e = 135e.

3r càlcul: http://recayresolar.es

Un mòdul solar com ara aquest dóna 12V: (50W) (75 e). És de tecnologia monocristal.lí

Ara és el moment d'escollir un tipus de penell solar. Suposem:

Ara hem de considerar el controlador de càrrega, i hem de pensar que les especificacions del controlador de càrrega han d'estar d'acord amb la sortida del penell solar quant a amperatge i voltatge. Suposem que tenim un controlador de càrrega:

En el nostre cas la tensió operacional és de 12V.

Anem a pensar ara en el disseny de la bateria. Considerem la següent bateria: (105e)

L'especificació de la bateria és:

El número mínim de bateries que necessitem depèn del voltatge operacional, de la profunditat de descàrrega, i de l'energia demanada. La fórmula per calcular és:

Cap min bat = (total energy demand)*(days of autonomy) / (DOD * operational voltage)

Cap min bat = 50.8*2/(0.75*12) = 11.3 Ah

i això ens diu el número de bateries que necessitem: 1. Una bateria de 80Ah evidentment està sobredimensionada, i això senzillament vol dir que amb una bateria d'aquest tipus puc obtenir molta més autonomia, concretament una autonomia de (fem el càlcul al revés):

autonomia = 80*0.75*12 / 50.8 = 14 dies.

el pressupost seria: 75+19+105e = 199e.

Per tant, és una configuració una mica més cara, però molt més bona. És sobrada per al projecte que estic considerant, però d'aquesta manera es pot reutilitzar per altres projectes que requereixin més potència d'instal.lació solar.

Monitoritzar la instal.lació solar

Es tracta de poder tenir registres de la tensió/corrent de les plaques, i de la tensió/corrent que alimenta la Raspberry.

Per fer un amperímetre:

Moble

(TODO)

Resultats

(TODO)


creat per Joan Quintana Compte, octubre 2014

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines