Web-Enabled termostato casero (y centro de automatización del hogar) (5 / 10 paso)

Paso 5: Instalar las tablas de la base de datos, Python servidores y páginas web

Si decides descargar e instalar el software para este termostato, y que está trabajando la frambuesa Pi usando masilla, usted, como yo, se estará preguntando cuál es la mejor manera de mover archivos hacia adelante y hacia atrás de su computadora a su frambuesa Pi. He encontrado FileZilla un programa muy fácil de usar.

Instalación de la base de datos

Como se mencionó al principio, la base de datos podría ser fácilmente retirado de este proyecto y probablemente reemplazado con unos archivos de texto si no tenía nada en este sistema que no sea de los termostatos que estoy describiendo aquí. Pero tengo otras cosas en el sistema que necesita la base de datos, por lo que he incluido en mi sistema...

El repositorio de GitHub incluye un archivo llamado thermostat_db.sql. Este archivo contiene la estructura de las tablas de MySQL para el termostato. Para crear estas tablas en una base de datos, se entra en MySQL como 'root' y crear una nueva base de datos utilizando el comando "crear base de datos [nombre_base_datos];" donde [nombre_base_datos] es cualquier nombre que desea utilizar para la base de datos. (ejemplo: "Crear base de datos tstat_database;") Entonces, para importar la estructura de la tabla en la base de datos MySQL la salida, vaya al directorio donde guardaste el archivo thermostat_db.sql y entrar en "mysql -u root -p [base_de_datos] < thermostat_db.sql" e introduzca la contraseña para el usuario root cuando se le solicite. (ejemplo: "mysql -u root -p tstat_database < thermostat_db.sql")

Ahora, si inicia una sesión en mysql usando el comando "mysql -u root -p", usted ingresa el comando "uso [base_de_datos];" y seleccione su nueva base de datos, escriba "Mostrar tablas;" ver cuatro tablas en la lista: termostatos, thermostat_programs, thermostat_status y los usuarios.

La tabla 'termostatos' contendrá un registro para cada termostato que ha incluido en su sistema, y cada registro contiene tres campos:

  • user_id – sólo tienes que elegir un id de usuario que desea utilizar para ti mismo; se trata de la misma para todos los termostatos. (ejemplo: 1234)
  • nodo – cada termostato tendrá un valor único 'nodo'; Esto debe ser un número entre 1 y 255. Se utiliza el software de comunicación para identificar cada termostato. (ejemplo: 122)
  • nombre – cada termostato tendrá su propio nombre, y esto es cómo el termostato se mostrará en las páginas Web. Este nombre puede tener hasta 45 caracteres. (ejemplo: dormitorio de planta alta)

Una vez que ha elegido estos valores, es necesario insertar un registro en la base de datos para cada termostato con el comando "insertar en termostatos valores ([user_id], [nodo], [nombre]);" (ejemplo: "inserte valores los termostatos (1234, 122, 'Planta alta dormitorio');").

Ahora, sólo para asegurarse de que todo salió como se esperaba, en "seleccionar * de termostatos;" y usted debería ver los registros que acaba de agregar.

A continuación, necesitará insertar un nombre de usuario y contraseña en la tabla 'usuarios'. Lo primero que necesita hacer es elegir un nombre de usuario (por ejemplo "SuNombre"), una contraseña (por ejemplo ' SuContraseña') y dos sales, que deben ser al azar cadenas de caracteres, tal vez cuatro a seis caracteres cada una (por ejemplo salt1 = ' & 7$ #' y sal 2 = ' (oJ entonces, tienes que insertar un registro en la tabla de usuarios utilizando el comando "Insertar usuarios valores ([user_id] md5 ('[salt1passwordsalt2]'), ' [nombre de usuario]'); " (ejemplo: "Inserte los usuarios valores (1234, md5 ('& 7$ #yourpassword(oJ 'yourname');").

Luego puedes "seleccionar * de los usuarios;" para ver este documento en la tabla. Tenga en cuenta que la contraseña se ha codificado utilizando la función md5() (que puede no ser la mejor opción que hay en este momento).

Finalmente, insertar un registro en la tabla de thermostat_status para cada termostato que muestra que el termostato está inicialmente apagado utilizando el comando "insertar valores de thermostat_status ([user_id], [nodo], now(), 0, 1, 0, NULL, NULL);" (ejemplo: "inserte valores thermostat_status (1234, 122, now(), 0, 1, 0, NULL, NULL);"). La página web necesita este registro inicial para cada termostato para trabajar inicialmente.

Las otras tablas se popularán más adelante cuando las páginas web están ya en funcionamiento.

Instalación de los servidores de Python

El repositorio de GitHub también debe incluir tres archivos denominados TstatMaster.py, TstatLogger.py y Thermostat.py. Seguir adelante y copiar a un directorio en la Raspberry Pi. Si ya no tienes Python instalado en la Raspberry Pi, entonces usted debe instalarlo ahora (un montón de lugares en la web que puede caminar a través de eso. Estoy usando Python 2.7.3).

Si estas conectado en la frambuesa Pi remotamente desde otro ordenador utilizando masilla, y si ha instalado Xming en ese equipo, puede ejecutar Xming y escriba 'idle' en una ventana masilla para ejecutar el editor de ocioso en su frambuesa Pi y verlo en su computadora. Esto es una gran herramienta para ver y editar el código Python. De lo contrario, hay varios otros editores de texto que se puede utilizar en Linux como vim o nano.

Thermostat.py es un módulo que contiene código para una clase de termostato. TstatMaster.py controles de los termostatos, y TstatLogger.py recibe mensajes de registro de los termostatos y los escribe en un archivo de registro. Estos últimos dos requieren algunas actualizaciones marcadas al principio de cada archivo, los campos están claramente marcados.

También necesita crear un directorio/home/pi/Tstat_Data/en su Pi de frambuesa para los archivos de registro para ser escrito, o bien cambiar los archivos TstatMaster.py y TstatLogger.py para que logFilePrefix hace referencia a otro directorio.

Para ejecutar los servidores, vaya al directorio en el que se guardaron los archivos del servidor, escriba "python TstatMaster.py" y "python TstatLogger.py" y asegúrese de que arrancar correctamente (sin errores). Pero, hay dos problemas con esto.

  1. Si está haciendo esto a través de un programa de terminal como masilla, los programas se detendrán tan pronto como terminas la sesión. Y usted no será capaz de hacer cualquier otra cosa en la Raspberry Pi mientras que apuntan a estos servidores. Para solucionar esto, tienes que ejecutar en pantallas. Para ejecutar los programas en una pantalla, necesitará iniciar una pantalla primero usando el comando "pantalla -S", por ejemplo: "pantalla -S TstatMaster". Esta ventana ahora persistirá incluso cuando usted cierra la ventana del PuTTy. Hay un montón de documentación en el comando de pantalla incluyendo las opciones para cambiar entre pantallas, pantallas de lista activo y abrir una pantalla existente.
  2. Incluso si ejecuta los servidores en las pantallas, si pierdes energía a su frambuesa Pi y reinicia, los servidores ya no funcionará. Para corregir esto, necesita a la frambuesa Pi para crear pantallas y ejecutar estos servidores en cualquier momento que se reinicia.

Para ello, puede Agregar las líneas siguientes al archivo rc.local (más info aquí):

pantalla -dm -S TstatLogger python //home/pi/ www/LCLogger.py

Sleep 2s

pantalla -dm -S TstatMaster python //home/pi/ www/LCMaster.py

sueño 3s

Instalación de las páginas Web

Al instalar lighttpd, que debe han configurado una carpeta www para usted, probablemente/var/www /. El repositorio de GitHub también debe incluir algunos archivos PHP de la página web, y usted debe poner en los siguientes directorios bajo/var/www (o busca otro directorio web que lighttpd). Crear estos subdirectorios si es necesario.

  • /Public/, tstat_index.php, tstat_login.php, tstat_logout.php, tstat_ProgTstat.php, tstat_SetThermostat.php y tstat_Status.php.
  • pública/includes / - tstat_MainHeader.php
  • /Private/ - tstat_ConnDb.php

Los siguientes cambios tendrán que hacerse para estos archivos:

tstat_ConnDb.php – cambia los valores para DB_NAME, DB_USER y DB_PASSWORD que está utilizando su nombre de inicio de sesión y base de datos de MySQL.

tstat_login.php – cambiar los valores de $salt1 y $salt2 que las cuerdas utiliza al guardar su contraseña de termostato en la base de datos MySQL.

tstat_ProgTstat.php – $service_port a ser el número del puerto en que se ejecuta el servidor de control de cambio. Cambio $CommPwd que la contraseña que elija usar para las comunicaciones de RFX. Cambiar la zona horaria predeterminada a su zona horaria preferida.

tstat_SetTstat.php – $service_port a ser el número del puerto en que se ejecuta el servidor de control de cambio. Cambio $CommPwd que la contraseña que elija usar para las comunicaciones de RFX. Cambiar la zona horaria predeterminada a su zona horaria preferida.

tstat_Status.php – $service_port a ser el número del puerto en que se ejecuta el servidor de control de cambio. Cambio $CommPwd que la contraseña que elija usar para las comunicaciones de RFX. Cambiar la zona horaria predeterminada a su zona horaria preferida. Cambio $thermostats a ser una lista de los nodos que utiliza para sus termostatos.

Ahora, prueba, navegador, escribir la dirección IP de su Pi frambuesa seguido de /tstat_index.php (ejemplo 192.168.1.75/tstat_index.php). Debería ver una página de login pidiendo un nombre de usuario y contraseña. Introduzca el nombre de usuario y la contraseña guardados en la tabla de usuarios por encima (no sales alrededor de la contraseña, solo la contraseña). Que le llevará a una página de bienvenida con 4 enlaces en la parte superior: graduar el termostato donde usted podrá establecer sus estado actual donde se puede ver el estado actual de cada termostato, termostatos programación donde puede programar horarios para sus termostatos y desconectarse (esperemos que eso es autoexplicativo). Por supuesto, puesto que no se han programado los termostatos sin embargo, estas páginas no será completamente funcional, así sucesivamente con el siguiente paso. (Nota: Si usted renombra el fichero 'tstat_index.php' sea simplemente 'index.php' entonces usted debe ser capaz de conseguir que escriba sólo la dirección IP del Raspberry Pi sin incluir el nombre del archivo en la url.)

Artículos Relacionados

Linux: empezando en un servidor de automatización del hogar.

Linux: empezando en un servidor de automatización del hogar.

Linux: empezando en un servidor de automatización del hogar.Esto es sólo un quickie prueba de concepto sobre el uso de un servidor web para Domótica remotamente. a todos nos va a hacer es encender algunos leds, pero el plan de acción estará allí para
Servidor de automatización del hogar con router

Servidor de automatización del hogar con router

convertir un router barato en un servidor de automatización del hogar!Este proyecto permitirá cambiar enchufes y luces desde su iPhone, o cualquier navegador.También podrás enviar comandos serie control remoto.Este proyecto se basa en SmartLinc.http:
Creación de un sistema de automatización del hogar!

Creación de un sistema de automatización del hogar!

Aquí es cómo había automatizado mi casa. Necesitaba un medio para;-administrar mi sistema de energía solar incluyendo la habilidad de cambiar de fuente de utilidad debo necesitarlo.-administrar el alimento y el agua a mis tres perritos.-controlar las
Automatización del hogar usando MQTT y NodeMcu o arduino

Automatización del hogar usando MQTT y NodeMcu o arduino

Domótica es un rumor nuevo hoy en día... hay tantos hardware de código abierto disponibles para construir su propia automatización del hogar. Muchas herramientas, es fáciles de confundir para decidir cual es mejor / conveniente para usted. Manteniend
Ingeniería inversa: USB controlado hack de automatización del hogar

Ingeniería inversa: USB controlado hack de automatización del hogar

hackear un sistema inalámbrico de automatización del hogar para ser controlada usando dos Microcontroladores AVR USB!¡ Mira el video! El sistema es realmente más sensible, pero el navegador de mi celular es lento.Si te gusta esto, posiblemente le gus
Automatización del hogar Datura 6 - mejoras de 2015

Automatización del hogar Datura 6 - mejoras de 2015

Noticias: En estos últimos meses he hecho algunos importantes correcciones y mejoras al código y al servidor Web del proyecto. Ver datura_mega_v19.ino para el último código.El proyecto más funcional en internet, utilizarlo como un sistema de riego co
Guía para principiantes en el uso Webhooks para automatización del hogar con Prota OS

Guía para principiantes en el uso Webhooks para automatización del hogar con Prota OS

TL:DR: webhooks son fáciles de usar y configurar con Prota OS. Utilice webhooks para cientos de flujos de trabajo de automatización.Aprender a configurar y utilizar OS Prota para Raspberry Pi aquí.Descargar OS Prota para Raspberry Pi aquí.¿Cuáles son
Compruebe que está en casa! Automatización del hogar. Vigilancia. Gran hermano tecnología frambuesa PI.

Compruebe que está en casa! Automatización del hogar. Vigilancia. Gran hermano tecnología frambuesa PI.

En este instructable brevemente explicaré cómo se puede construir una página web para ver quién está en casa o utilizar el script para la automatización del hogar.Se necesita:* Un router con posibilidad de configurar la dirección ip dirección mac* Fa
Bluetooth basado en automatización del hogar

Bluetooth basado en automatización del hogar

Bluetooth basado en automatización del hogar, proyecto permite controlar aparatos eléctricos utilizando su teléfono móvil android. Consiste en el microcontrolador ATmega8, módulo Bluetooth HC-06, Relays.There son muchos Inicio sistemas de automatizac
DIY IoT $10 base de automatización del hogar

DIY IoT $10 base de automatización del hogar

Se realiza IOT basado en proyecto de automatización del hogar con bajo costo ESP8266 ESPino ESP-12 módulo de WiFi, utiliza relés y algunos componentes simples, se suministra completa código y pcb layout, para más detalles sobre la configuración del s
Edison de Intel basado en monitor de sonido para la automatización del hogar!

Edison de Intel basado en monitor de sonido para la automatización del hogar!

Hola todo el mundo!Soy Geeve George un fabricante con orgullo de la INDIA! Empecé a hacer en la edad de 10 y mi afán por hacer todavía continúa como estoy fascinado por las infinitas posibilidades y oportunidades que la tecnología ofrece.Sombrero! es
Dispositivos de Internet para la automatización del hogar

Dispositivos de Internet para la automatización del hogar

Este instructivo muestra los principios involucrados en la fabricación de dispositivos para el control domótico por internet. Estamos va a construir un dispositivo (o varios de ellos), habla uno al otro por internet para controlar luces, motores para
Fácil automatización del hogar bricolaje (usando interruptores servo)

Fácil automatización del hogar bricolaje (usando interruptores servo)

este Instructable es todo sobre una de las acciones simples de la vida, un interruptor de luz encendido y apagado.En oomlout lo hacemos muchas veces al día, muchos de hecho llegó a un punto donde nos preguntamos "No podemos hacer un Arduino para hace
Servidor de automatización del hogar inteligente en OpenWRT router WR703N conectado a Arduino, en comparación con Ubuntu y frambuesa Pi

Servidor de automatización del hogar inteligente en OpenWRT router WR703N conectado a Arduino, en comparación con Ubuntu y frambuesa Pi

descargar el Resumen de WR703N (archivo zip de 340MB):https://sourceforge.net/projects/WR703N/---------------------------------------------------------------------------------------------------------------------------------Estimado lector,Hay muchos