Serveur



Le serveur sera un Raspberry. Voici le prérequis:


  1. Installer OS sur votre Raspberry et la connexion réseau voir chapitre ici
  2. Adresse IP fixe voir chapitre ici
  3. Installer un serveur PHP voir chapitre ici



Accès de vos pages depuis internet. Configuration de la box.

Aller dans le paramétrage de votre Box. La mienne est une Box de chez SFR. Ouvrir l'onglet Réseau

Puis NAT

Après faire une redirection du port 80.


Chez SFR,l'adresse IP n'est pas fixe donc il faut faire un script pour connaître l'adresse de votre box et l'envoyer à votre serveur pour effectuer une redirection. Pour cela, je vais utiliser un script Python qui sera lancer à intervalle régulier. Je vais créer un fichier HTML avec une redirection vers mon adresse IP. Pour que l'adresse IP ne soit pas lu directement, J'utilise une frame. J'utilise le répertoire /run/shm/ qui est un répertoire pour les fichiers temporaires et qui est en disque RAM.


Voici le script Python:


#!/usr/bin/env python

# -*- coding: UTF-8 -*-


import os

import time

import sys

import ftplib

import ConfigParser

import string

import datetime

import csv

import subprocess

from subprocess import PIPE, Popen

from datetime import timedelta


monfichier = 'index.html'     #Fichier html des donnees

path= '/run/shm/' #Modifier le chemin suivant votre installation


p = subprocess.Popen("curl ifconfig.me", stdout=subprocess.PIPE, shell=True)

(output, err) = p.communicate()



#ouverture du fichier php



f = open(path + monfichier, 'w')


# Type de paragraphe


typepolice1 = """<span style="color:#00008B; font-size: 12pt">"""



# Corps fichier HTML


corps = """

<!DOCTYPE HTML>

<html>

<head>

<link rel="shortcut icon" href="home.ico">

<title>Domotique</title>

</head>


<body>

Connexion encours

<meta http-equiv="refresh" content="1;url=http://"""+output+"""/"/>

</body>


</html>

"""


f.write(corps)

f.close()



# Lecture du fichier config.ini

config = ConfigParser.ConfigParser()

config.read("/home/pi/lien/config.ini")

site = config.get("ftp", "site")

user = config.get("ftp", "user")

password = config.get("ftp", "password")

directory = config.get("ftp", "directory")


# Transfert vers le serveur ftp


session = ftplib.FTP(site,user,password)

myfile = open(path + monfichier,'rb')                        

session.storbinary("STOR " + directory + monfichier, myfile,1024)          

myfile.close()                                        

session.quit()  


Mon script utilise un fichier config.ini  avec les paramètres FTP. Mon programme enverra un fichier index.html avec la redirection. Dans votre répertoire sur votre serveur vous pouvez mettre le fichier home.ico pour mettre l'icone de la maison. Téléchargement ici.

Si vous trouvez que la réponse du script est un peu long, vous pouvez remplacer dans le script la ligne suivante:

p = subprocess.Popen("curl ifconfig.me", stdout=subprocess.PIPE, shell=True)

Par:

p = subprocess.Popen("curl -s icanhazip.com", stdout=subprocess.PIPE, shell=True)

Voila les fichiers que vous devriez avoir sur votre site distant:



Téléchargement de mon script ici

Le lancement du script se fera avec crontab voir chapitre ici





Maintenant votre site web pointe sur votre Raspberry.


Mon module est équipé d'une antenne pour augmenter la distance de communication.




Mise à jour 01/09/2015

Créé avec HelpNDoc Personal Edition: Création d'aide CHM, PDF, DOC et HTML d'une même source