Skip to content

Latest commit

 

History

History
281 lines (226 loc) · 7.13 KB

README.md

File metadata and controls

281 lines (226 loc) · 7.13 KB

IoT Yourself: Hack your home!

Este repositorio contiene la presentación realizada en NoConName en Diciembre 2015 y el código fuente usado para ello.

Estas notas nos ayudan a la instalación de las librerías necesarias y su configuración para que el código fuente proporcionado funcione.

Se ha usado una Raspberry Pi con sensores como la base de ejecución de este proyecto.

Configuración básica Raspberry Pi

Instalación y configuración de Raspberry Pi:

sudo apt-get install rpi-update
sudo rpi-update
raspi-config

SENSOR DE TEMPERATURA DHT22

  • Actualización del sistema:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential python-dev
cd /home/pi
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT
sudo python setup.py install
  • Instalación de la librería de RRDTool:
sudo apt-get install rrdtool librrds-perl
  • Instalación de Apache:
sudo usermod -a -G www-data www-data
sudo apt-get install apache2
  • Configuración de Apache:
sudo vim /etc/apache2/apache2.conf

Escribir la línea: ServerName localhost

  • Reinicio de Apache:
sudo service apache2 restart
sudo service apache2 reload
  • Instalación y verificación:
sudo mkdir /var/www/rrdtool/
sudo mv /home/pi/rrd_temphum.pl /usr/local/bin/rrd_temphum.pl
sudo chmod +x /usr/local/bin/rrd_temphum.pl
file -bi /usr/local/bin/rrd_temphum.pl

text/x-perl; charset=utf-8

sino corregir con:

sudo su -
iconv -f iso-8859-1 -t utf8 /usr/local/bin/rrd_temphum.pl > /usr/local/bin/rrd_temphum0.pl
rm /usr/local/bin/rrd_temphum.pl
mv /usr/local/bin/rrd_temphum0.pl /usr/local/bin/rrd_temphum.pl
export LANG=es_ES.utf8
echo $LANG
dpkg-reconfigure locales
  • Borrar BBDD: sudo rm /opt/Humidity.rrd /opt/Temperature.rrd
  • Configurar cron para ejecución cada 1 minuto: sudo crontab -e

*/1 * * * * /usr/local/bin/rrd_temphum.pl 2>&1 >> /dev/null

  • Colocar archivos web en el sitio:
sudo mv /home/pi/temperature.html /var/www/temperature.html
sudo mv /home/pi/humidity.html /var/www/humidity.html
sudo mv /home/pi/index.html /var/www/index.html

WEBCAM + PIR

  • Instalación de paquetes necesarios:
sudo apt-get install fswebcam mencoder ffmpeg
  • Test de webcam:
fswebcam -i 0 -d /dev/video0 -r 640x480 -q --title test --no-banner /home/pi/captura_%d%m%y_%H%M%S.jpg
  • Creación de vídeo a partir de las imagenes capturadas:
ls *.jpg > lista.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:aspect=16/9:vbitrate=8000000 -vf scale=640:480 -o timelapse.avi -mf type=jpeg:fps=24 mf://@lista.txt

SONIDO y AUDIO

  • Instalación de paquetes necesarios:
sudo apt-get update
sudo apt-get install alsa-utils mpg321
  • Pruebas de sonido:
sudo modprobe snd_bcm2835
sudo amixer cset numid=3 1
mpg321 -g 50 -q intruso_detectado.mp3

IFTTT + BLINK

Para esta práctica no hace falta instalar ningún paquete adicional únicmanete tener en cuenta la siguiente información.

Enlaces de blink:

http://api.thingm.com/blink1/events/0011xxxxxxxxxx23
http://api.thingm.com/blink1/eventsall/0011xxxxxxxxxx23
{
  "events":[
    {
      "blink1_id":"0011xxxxxxxxxx23",
      "date":"1449613841",
      "name":"ASUSTAR",
      "source":"DO Button"
    }
  ],
  "event_count":1,
  "status":"events saved"
}

Nota: este código 0011xxxxxxxxxx23 debe ser reemplazado por uno vuestro (supuestamente de vuestro blink)

URL and IFTTT inputs was fetched every 30 seconds:

MOSQUITTO MQTT broker (server) + CLIENT

  • Instalación del repositorio y las claves de Mosquito
curl -O http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key
rm mosquitto-repo.gpg.key
cd /etc/apt/sources.list.d/
sudo curl -O http://repo.mosquitto.org/debian/mosquitto-wheezy.list
sudo apt-get update
  • Instalación de la aplicación:
sudo apt-get install mosquitto mosquitto-clients 
  • Copiar configuración básica de ejemplo:
sudo cp /usr/share/doc/mosquitto/examples/mosquitto.conf /etc/mosquitto/conf.d/mosquitto.conf
sudo vim /etc/mosquitto/conf.d/mosquitto.conf
  • Recargar configuración y ver status:
sudo /etc/init.d/mosquitto reload
sudo /etc/init.d/mosquitto status
  • Pruebas:
mosquitto_sub -t /mqttitude
mosquitto_pub -h localhost -t "mensaje" -m "LUZ ACTIVADA"
mosquitto_sub -d -h localhost -t "temperature"
  • Instalaciones de Python para mosquito (Paho-MQTT):
sudo apt-get install python-pip
sudo pip install paho-mqtt

WhatsApp en Python con Yowsup

  • Instalaciones paquetes necesarios:
sudo apt-get install python-dateutil
sudo apt-get install python-setuptools
sudo apt-get install python-dev
sudo apt-get install libevent-dev
sudo apt-get install ncurses-dev
sudo apt-get build-dep python-imaging
sudo apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev
  • Clonar el repositorio e instalar:
cd
git clone git://github.com/tgalal/yowsup.git
cd yowsup
sudo python setup.py install
  • Información sobre MCC y MNC de España:
MCC MNC 
214 07

From more info here.

  • Solicitar SMS para registrar teléfono:
sudo python yowsup-cli registration --requestcode sms --phone 34xxxxxxxxx --cc 34 --mcc 214 --mnc 07
  • Indicar número recibidio en el SMS:
python yowsup-cli registration --register xxx-xxx --phone 34xxxxxxxxx --cc 34
  • Establecer en el archivo config los datos recibidos:
sudo vim /home/pi/yowsup/config
	## Actual config starts below ##

	cc=34 #if not specified it will be autodetected

	phone=34xxxxxxxxx

	password=yyyyyyyyyyyy
  • Enviar mensaje para probar si funciona:
sudo yowsup-cli demos --yowsup --config /home/pi/yowsup/config

You will be greeted with the Yowsup prompt. To login you may enter /L and enter your login credentials you saved in the config file. You can see a list of commands by typing /help. Use the /message command to send a message to your desired number.

/message send 91xxxxxxxxxx "Your message"
  • Probar el código:
/whatsapp $ sudo python run.py

BASADO en: git clone git://github.com/rpi-jefer/Raspberry-Pi-WhatsApp.git