Eines de l'usuari

Eines del lloc


Barra lateral

ControlOnLine.net

controlonline.net@gmail.com

public:projectes:domotica

Petita automatització casera

llum persiana camera

Amb aquest petit projecte vaig a fer unes petites automatitzacions caseres des de aquesta web, automatització d'una càmera(webcam) que es mogui amb un petit motor pas a pas, també automatitzaré una persiana i un llum(El mes sencill es el llum). o qualsevol altre tipus de sortida(endoll) amb un bloc de relés. La webcam ens servirà per comprovar que l'automatització funciona. La difusió de les imatges per webcam ja està implementada amb mjpg-stream com vaig explicar a web_cam. De tota manera te una petit “lag”, “latency”, d'un parell de segons. es ha dir, el que vegem a passat fa una parell de segons. Supose que es perquè es una camara YUV, que no te la comressió integrada per hard, i la conversió YUV-JPEG tarda una mica.

Software

  • Software, i ha diversos projectes per control via web les entrades i les sortides de la raspberry, les GPIO, com webIOpi, però ho faré amb php, que es capaç d'executar un programa que hi sigui al servidor amb la simple orde “exec programa”, el programa serà un programa que prèviament estarà programat i compilat en c amb les llibreries wiringPi que son un conjunt de llibreries que permeten fer una programació molt semblant a la del arduino.

El servidor web no actua com root i el wiringPi si que necessita ser root per accedir a /dev/mem on son els GPIO, pero te solucio:

$ sudo visudo

#includedir /etc/sudoers.d

pi ALL=(ALL) NOPASSWD: ALL
www-data ALL=NOPASSWD: /home/pi/wiringPi/meus/0_1
www-data ALL=NOPASSWD: /home/pi/wiringPi/meus/0_0
www-data ALL=NOPASSWD: /home/pi/wiringPi/meus/2_1_1s
www-data ALL=NOPASSWD: /home/pi/wiringPi/meus/2_1_2s
www-data ALL=NOPASSWD: /home/pi/wiringPi/meus/2_1_5s
www-data ALL=NOPASSWD: /home/pi/wiringPi/meus/3_1_1s
www-data ALL=NOPASSWD: /home/pi/wiringPi/meus/3_1_2s
www-data ALL=NOPASSWD: /home/pi/wiringPi/meus/3_1_5s

(2_1_2s = El pin 2 en la wiringPi, amb valor 1 durant 2 segons)

Cal possar-ho no per a un directori si no per a cada programa.

i despres a la web amb php:

<?php
if (isset($_POST['esquerra'])) { exec('sudo /wiringPi/examples/pasapasEsquerra'); }
if (isset($_POST['dreta'])) { exec('sudo /wiringPi/examples/pasapasDreta'); }
?>

<form action="" method="post">
    <button type="submit" name="esquerra">Esquerra</button>
    <button type="submit" name="dreta">Dreta</button>
</form>

(veure mes detalls a camera)

El php, no es millor, però com hem vist es el mes senzill, un inconvenient molt gros que m'he trobat es que el php es un llenguatge script, si comença una programa del wiringPi que te un bucle infinit aquesta pàgina es queda penjada. Altre inconvenient del php es que ha de recarregar-se de nou cada vegada que pitgem el boto. Com explicaré al apartat càmera hi ha moltes solucions però crec que la millor seran els webSckets…mes endavant..

Hardware

  • Hardware, Les sortides de la raspberry pi son de molt poca potencia nomes uns 3,3V amb 26 mA (nomes un parell de LED's (3,3/300= 10 mA per LED) així que es necessari posar un xip com el ULN2003. Els 3,3V son suficients per activar-lo. El motor pas a pas com ja vaig fer a la arduino el posaré directament des de le ULN2003 fins al motor i la persiana i el llum tindrà un bloc de relés.

The current sourcing/sinking capability of the I/O pins on Raspberry Pi is quite limited. According to the Wiki page, the current limit for each I/O block (e.g. GPIO0 through GPIO27 combined) comes at only 26 mA maximum, which is only capable of driving a couple of LEDs at a time. Also the I/O pins are 3.3V only, and going beyond the current or voltage limit could result in permanently damages to the chip. If we only need to boost the output current, we could use a simple transistor or MOSFET to overcome the current limit. Alternatively, we could use a Darlington array chip such as ULN2003 for the task. ULN2003’s on-state input voltage is well below 3.3V and can be driven directly from Raspberry Pi’s I/O pins conveniently. Keep in mind though, due to the limited current capability of Raspberry Pi the maximum speed at which ULN2003 can be driven is limited due to its relatively large input capacitance and input current requirement. So while ULN2003 can deliver a rather high load current, it is only suitable for interfacing with slower peripherals that operate at a speed no higher than a couple hundred KHz.sortides_rpi.pdf

Les següents imatges crec que son les mes clarificadores de com connectar el ULN2003:

Un projecte molt semblant però amb Xbee i altre ARM, que no es la raspberry. Per tenir altre exemple. Però està clar que es un sistema molt flexible i no execivament ni car ni complicat. domotica_xbee_arm_php_screen.pdf

public/projectes/domotica.txt · Darrera modificació: 2017/06/18 18:17 (edició externa)