Raspberry Pi 2 domotique : commande via trames TCP (10)

On en a peu parlé ces dernières semaines, mais le développement du Raspberry Pi domotique se poursuit, un peu plus lentement car les journées ne durent que 24h sur notre bonne vielle Terre 😉

Le script de gestion a été totalement revu :

  • utilisation de fonctions, appelées uniquement en cas de besoin (détection trame radio / rfid / TCP)
  • script de réception des trames tcp désormais en tâche de fond, avec lecture du code dans un simple tcp.txt
  • optimisation du code Python3
  • ajout des développements futurs, basés sur les ESP8266 essentiellement

Voyons ici l’évolution de la partie TCP, celle qui reçoit des trames avec un script enregistré dans tcpserv.py :

import socket, os, sys
# Activation serveur TCP
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.close()
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# On affecte IP de reception et port d ecoute
server_address = ('192.168.1.124', 5665)
sock.bind(server_address)
# Ecoute des trames entrantes
sock.listen(1)
while True:
    # Attente connexion
    connection, client_address = sock.accept()
    try:
        while True:
            #
            # on ecrit la trame recue dans tcp.txt
            #
            data = connection.recv(16)
            tcp = open('/home/pi/tcp.txt', 'w')
            tcp.write(str(data, encoding='utf8'))
            tcp.close()
            if data:

               break
    finally:
        # Fermeture connexion
        connection.close()

 

Lancez ce script en tâche de fond avec python3 tcpserv.py & et si vous voulez l’avoir dès le démarrage du Raspberry Pi, allez l’ajouter dans /etc/rc.local :

sudo python3 /home/pi/tcpserv.py &

Désormais, CHAQUE trame reçue sur le port 5665, à destination de l’adresse IP 192.168.1.124 (à modifier par celle de votre Pi), sera écrite dans le fichier tcp.txt. Il ne vous reste alors plus qu’à venir lire ce fichier dans votre script python3, et à en tirer des actions.

Dans notre cas, nous testons simplement le contenu de tcp.txt :

  if len(tcp) > 2:
    print(tcp)
    print("appel lecture TCP")
    tcpframe(tcp)
    continue

En plus clair, si, après l’avoir ouvert et lu, tcp.txt contient plus de 2 caractères, alors on appelle la fonction tcpframe(tcp) pour que le contenu soit analysé, une fonction dont voici un exemple :

def tcpframe(code):
  if "porte1" in code:
    print("porte 1 ouverte")
  if "porte2" in code:
    print("porte 2 ouverte")
  if "porte3" in code:
    print("porte 3 ouverte")

  os.system("echo 0 > /home/pi/tcp.txt")

A la fin de l’interprétation de la trame TCP reçue, on efface tout dans tcp.txt, en lui mettant un simple « 0 » (zéro).

Vous suivez à peu près jusqu’à présent ? 🙂

—————————————————

Voyons maintenant comment envoyer simplement des trames TCP, via une application Android (désolé, je ne suis pas utilisateur d’iOS fermé lol), UDP TCP SERVER. Une fois installée, vous allez pouvoir configurer des tas de boutons :

udptcp_raspberry

Dans cet exemple, si je presse SALON ON, une trame salonon est envoyée sur le port 5665, vers mon Raspberry Pi 192.168.1.124, qui va alors allumer le salon en lançant la bonne commande. Idem pour l’Alarme, que j’active et désactive à volonté.

Ma prochaine étape sera alors de venir programmer des ESP8266 pour, là encore, utiliser l’envoi de trames TCP : ouverture de porte, température, etc. A suivre donc…

 

 

Publications similaires

  • |

    Infracom : le wifi sur-mesure

    Plein Ouest, la revue de la Chambre de Commerce et d’Industrie de Nantes-St Nazaire vient de consacrer un article à Infracom avec pour titre, Infracom : le wifi sur-mesure. L’article se trouve en page 33 du numéro 148 (Juin/Septembre 2010) et présente en quelques lignes les possibilités offertes par le WiFi, notamment pour la couverture de zones blanches ADSL ou l’établissement de liaisons haut débit, mais également pour la création d’un « service maitrisé d’accès à internet », avec le module Wifipak…

  • Unifi 2.3.4 Beta disponible

    Le gestionnaire des bornes Unifi version 2.3.4beta est désormais disponible, une sortie d’une version finale étant annoncée très rapidement. Les mises à jour, in english : bandwidth limiting enhancement (make it more in sync with results from speedtest or wget, etc) portal redirect enhancements enhanced adoption/handling when DNS is not reachable enable UAP-Outdoor’s secondary ethernet port Paypal to allow other currency allow connectivity/uplink monitor to be disabled completely (for people who don’t use wireless uplink and don’t want wireless to…

  • Les électrosensibles en marche

    Un article des Dernières Nouvelles d’Alsace (DNA) évoque La Longue Marche des Electrosensibles : 5% de la population française serait touchée, selon le Dr Isabelle Barrière, d’autant plus affectées que les ondes se multiplient, tous domaines confondus. Les écologistes millitent pour le retour des zones blanches, mais ce qui personnellement m’étonne, c’est l’absence de tentatives de traitement : à part des études ici et là, souvent plus ou moins sérieuses, personne ne semble apporter de solutions. Est-ce à dire que…

  • Wifipak V2 : deux réseaux, deux portails captifs

    Le firmware du Wifipak v2 permet des jeux techniques assez sympathiques, à condition que les bornes WiFi autorisent les VLANs. Wifipak V2 + enregistreur de connexions Tenez, prenez l’exemple d’un établissement ayant besoin de trois réseaux WiFi : [checklist] un réseau privé fermé et sécurisé par un cryptage WPA2, IP 10.10.0.0/24 un réseau ouvert avec le Vlan 10 et un portail captif dédié, IP 192.168.10.0/24 un second réseau ouvert, cette fois avec Vlan20 et un autre portail captif, IP 192.168.20.0/24…

  • Netflix en France : et puis ?

    L’évènement de la journée ne vous aura sans doute pas échappé : Netflix arrive en France ! L’américain a enfin pris pied dans l’hexagone, ou du moins partiellement car l’entreprise n’aura pas de registre de commerce français pour ne pas dépendre de nos super lois sociales et fiscales, la nuance est bien présente. Quid du coté catalogue ? Avec les restrictions franco-françaises, ce qui porte le doux nom d’exception culturelle dans nos bien aimés ministères, ne vous attendez pas à…

  • |

    Ipad 3 : le retour du buzz !

    Et c’est reparti pour un tour, avec l’annonce par la Pomme d’une conférence début Mars aux USA : l’iPad 3 y serait présenté, selon des sources sûres mais néanmoins officiellement tellement peu fiables que personne n’en douterait, cherchez le windows, euh, le bug… De facto, voici les photos des différentes pièces qui commencent à envahir les blogs francophones ou anglophones, présentant ici le boîtier, ici la super géniale méga hyper extra caméra HD, ou là encore la surface tactile, voir…