Cacera fotogràfica amb Raspberry Pi
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:
- /etc/NetworkManager/system-connections/Movistar\ \(Telefónica\)\ Predeterminat
[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:
- Vermell: Mòdem no registrat a la xarxa.
- Verd amb pampallugues: no està connectat a la xarxa 3G
- Verd fix: està connectat.
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ó:
- etc/NetworkManager/system-connections/Movistar\ \(Telefónica\)\ Predeterminat
[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
- mail sent by smarthost; received via SMTP or fetchmail
- system mail name: Set to same as hostname (raspberrypi)
- Now it asks you what IP addresses should be allowed to use the server. Leave as is (127.0.0.1 ; ::1)
- Other destinations for which mail is accepted: raspberrypi
- Machines to relay mail for: Leave blank.
- IP address or host name of outgoing smarthost: Enter: smtp.gmail.com::587
- Hide local mail name in outgoing mail: Select: No
- Keep number of DNS-queries minimal: Select: No
- Delivery method for local mail: Select: "Maildir format in home directory"
- Split configuration into small files: Select: No
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:
- http://www.adafruit.com/product/189
- http://www.ebay.es/itm/SENSOR-DE-PRESENCIA-HC-SR501-SENSOR-PIR-IDEAL-PARA-ARDUINO-ROBOTICA-ELETRONIC-/271637570646?pt=LH_DefaultDomain_186&hash=item3f3edc6456
(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
- https://courses.edx.org/courses/DelftX/ET.3034TU/3T2014/courseware/6e998c3353124f37b56640700becb94a/fff1d3bb50814b33b15ee146161a3079/
- http://www.raspberrypi.org/forums/viewtopic.php?f=41&t=57979
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.
- Autonomia: suposem que volem una autonomia de 2 dies sencers.
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:
- Power output Wp=100W
- Vmpp=16V
- Impp = 6.25 A
- Voc=20 V
- Isc=7 A
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:
- maximum voltage = 60V
- maximum current = 10A
- operational voltage = 12/24V
- MPPT: yes (vol dir que té l'electrònica necessària per situar-se en el MPPT de forma contínua).
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:
- depth of discharge: 60%
- Battery voltage: 12V
- Battery capacity: 21Ah
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:
- Power output Wp=15W
- Voc=12V
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:
- maximum voltage = ? (segur que és més de 12V)
- maximum current = 7A
- operational voltage = 12V
- MPPT: ?
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:
- depth of discharge: baja autodescarga, però això no és ben bé la DOD? Suposem 60%.
- Battery voltage: 12V
- Battery capacity: 14Ah
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:
- Potencia nominal Pmax: 50 WP
- Tensión nominal U MPP: 17,9 V
- Corriente nominal IMPP: 2.8 A
- Circuito abierto tensión U0: 21,6 V
- Corriente de cortocircuito ISC: 2,20 A
- Dimensiones L x W: 670 x 580 x 35 mm
- Peso (3,2 mm de vidrio Vidrio / 4 mm): 6,2 Kg
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:
- maximum voltage = ? (segur que és més de 12V)
- maximum current = 10A
- operational voltage = 12V/24V
- MPPT: ?
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:
- depth of discharge: 75%.
- Battery voltage: 12V
- Battery capacity: 80Ah
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:
- http://www.lucadentella.it/en/2011/11/29/sensore-di-corrente-con-arduino/?utm_source=rss&utm_medium=rss&utm_campaign=sensore-di-corrente-con-arduino
- https://www.mpja.com/download/acs712.pdf
Moble
(TODO)
Resultats
(TODO)
creat per Joan Quintana Compte, octubre 2014