Viewing 17 reply threads
  • Author
    Posts
    • #4668
      lecagnois
      Participant

      demander a notre robot de commander notre maison :

      matériel nécessaire :

      Un raspberry PI
      un kit émetteur/récepteur 433,92 Mhz.
      Un kit télécommande + 3 prises D – IO by chacon

      vous trouverai tout ca sur le site de l excellant Idelman
      http://blog.idleman.fr/raspberry-pi-10-commander-le-raspberry-pi-par-radio/
      les autres tutos ici :
      http://blog.idleman.fr/sommaire-raspberry-pi-arduino-domotique-robotique-et-pleins-de-trucs-en-ique/

      maintenant voici les codes pour le python :

      
      def allume(phrase):
           talkBlocking(phrase)
           url = 'http://192.168.1.27/lumieres.php'
           urllib.urlopen(url)
      
      def eteins(phrase):
           talkBlocking(phrase)
           url = 'http://192.168.1.27/lumiereoffs.php'
           urllib.urlopen(url)	
      

      les codes aiml qui va avec :

      fichier allume.aiml

      <?xml version=”1.0″ encoding=”UTF-8″?>
      <aiml>

      <category> <!– définit l’unité de la connaissance dans la base de connaissances de Alicebot.–>
      <pattern>allume #</pattern> <!–représente l’entrée d’un utilisateur. Il devrait être la première balise au sein < catégorie > –>
      <template> <!– définit la réponse d’un Alicebot à l’entrée de l’ utilisateur.–>
      <oob> <!– démarrer un chat service bot ProgramAB MRL il prend en charge les balises OOB dans la réponse de ProgramAB –>
      <mrl> <!– debut balise MRL –>
      <service>python</service> <!– pour transmettre a python –>
      <method>exec</method> <!– executera dans python la fonction allume –>
      <param>allume(“votre ordre est executer”)</param>

      </mrl> <!– FIN balise MRL –>
      </oob> <!– FIN balise programme AB–>
      </template> <!– FIN de balise template –>
      </category> <!– FIN de balise catégorie –>

      <category> <!– définit l’unité de la connaissance dans la base de connaissances de Alicebot.–>
      <pattern>éteins #</pattern> <!–représente l’entrée d’un utilisateur. Il devrait être la première balise au sein < catégorie > –>
      <template> <!– définit la réponse d’un Alicebot à l’entrée de l’ utilisateur.–>
      <oob> <!– démarrer un chat service bot ProgramAB MRL il prend en charge les balises OOB dans la réponse de ProgramAB –>
      <mrl> <!– debut balise MRL –>
      <service>python</service> <!– pour transmettre a python –>
      <method>exec</method> <!– executera dans python la fonction allume –>
      <param>eteins(“votre ordre est executer”)</param>

      </mrl> <!– FIN balise MRL –>
      </oob> <!– FIN balise programme AB–>
      </template> <!– FIN de balise template –>
      </category> <!– FIN de balise catégorie –>

      </aiml>

      maintenant les fichiers php a mettre sur votre serveur raspberry :
      (ou autre serveur sous apache,mysql,php5) a essayer sur le serveur du site !…

      fichier lumieres.php :
      <?php
      file_get_contents(‘http://192.168.1.27/hcc/action.php?engine=id-17&action=CHANGE_STATE&code=1&state=on&#8217;);
      file_get_contents(‘http://192.168.1.27/hcc/action.php?engine=id-24&action=CHANGE_STATE&code=2&state=on&#8217;);
      ?>

      fichier lumiereoffs.php
      <?php
      file_get_contents(‘http://192.168.1.27/hcc/action.php?engine=id-17&action=CHANGE_STATE&code=1&state=off&#8217;);
      file_get_contents(‘http://192.168.1.27/hcc/action.php?engine=id-24&action=CHANGE_STATE&code=2&state=off&#8217;);
      ?>

      et fichier action.php ( a installer sur le serveur aussi .
      vous trouverai les sources sur le site de idelman .

      voila quand j aurai le temps je vous ferais une vidéo de démo , la maintenant je vais a la plage
      et aprés je m attaque à lui faire envoyer un mail .

      • This topic was modified 7 years, 7 months ago by lecagnois.
      • This topic was modified 7 years, 7 months ago by anthony. Reason: code
      • This topic was modified 7 years, 7 months ago by anthony.
      • This topic was modified 7 years, 7 months ago by anthony.
      • This topic was modified 7 years, 7 months ago by anthony.
    • #4670
      lecagnois
      Participant

      ah oui j ‘ai oublié
      rajouter la bibliotheque urllib dans votre fichier INMOOV-AI_startup.py

      
      import urllib,urllib2
      from java.lang import String
      import random
      import threading
      import io
      import itertools
      import random
      import time
      import textwrap
      import codecs
      import socket
      import os
      import shutil
      import hashlib
      
      • This reply was modified 7 years, 7 months ago by anthony.
    • #4673
      anthony
      Moderator

      Salut ! c’est intégré https://github.com/moz4r/aiml/commit/ded5b4c515fbc7251d50d980d51d42b2fb5ad595
      petit soucis avec la librairie urllib j’ai remplacé

      url = ‘http://192.168.1.27/lumiereoffs.php’
      urllib.urlopen(url)

      par une fonction

      parse(‘http://192.168.1.27/lumiereoffs.php’)

    • #4686
      lecagnois
      Participant

      salut anthony
      super je vois que la mise en page du code est plus claire ,
      sur ma machine la bibliothèque urllib fonctionne bien ????

      et pour le code aiml tu peux pas le mettre en forme ?

    • #4725
      lecagnois
      Participant

      Bonjour une petite modification au programme domotique
      (si le serveur ne réponds pas un message erreur , sinon on lance le fichier php du serveur )

      
      def allume(phrase):
            try: 
               url = 'http://192.168.1.27/lumieres.php'
               urllib.urlopen(url)
               talk(phrase)
      
           except IOError:
               talk("désolé le serveur est éteint")

      idem pour la procédure def eteins(phrase):

      j ai essayer de tester par un ping avec ca , mais rien a faire ca marche en python mais pas avec mrl

      
       #hostname = "192.168.1.27"
           #reponse = subprocess.Popen(["ping.exe",hostname],stdout = subprocess.PIPE).communicate()[0]
           #reponse = os.system("ping -c 1" + hostname) # ping le serveur voir si il répond
           #print reponse
           #if len(reponse) >490:
           #    print"connecté"
           #    talk("serveur allumé")
           #else:
           #    print"non connecté"  
           #    talk("serveur éteint")
      • This reply was modified 7 years, 7 months ago by lecagnois.
      • This reply was modified 7 years, 7 months ago by lecagnois.
    • #4750
      lecagnois
      Participant

      Voici la dernière modification de la procédure (allume)
      le programme vérifie si le serveur fonctionne , avec un ping de l’adresse ip
      Il vous faudra mettre l’adresse ip de votre Raspberry.

      voici la code :

      def allume(phrase):
           try: 
               talk("je vérifie le serveur .")
               # adresse ip de votre serveur raspeberry
               u = os.popen("ping -n 1 192.168.1.27")
               result = u.read()
               if result.count("perte 0") == 1 and result.count("Impossible") == 0:
                   print ("ok")
                   talk(phrase)
                   url = 'http://192.168.1.27/lumieres.php'
                   urllib.urlopen(url)
                   
               else:
                   talk("désolé le serveur est éteint") 
                   print("ko")   
                   
           except IOError:
               talk("désolé le serveur est éteint")
             
    • #4752
      lecagnois
      Participant

      idem pour la proc (eteins)

      def eteins(phrase):
           try: 
               talk("je vérifie le serveur .")
               # adresse ip de votre serveur raspeberry
               u = os.popen("ping -n 1 192.168.1.27")
               result = u.read()
               if result.count("perte 0") == 1 and result.count("Impossible") == 0:
                   print ("ok")
                   talk(phrase)
                   url = 'http://192.168.1.27/lumiereoffs.php'
                   urllib.urlopen(url)
                   
               else:
                   talk("désolé le serveur est éteint") 
                   print("ko")   
                   
           except IOError:
               talk("désolé le serveur est éteint")
      
      • This reply was modified 7 years, 7 months ago by lecagnois.
    • #4778
      My’s Moov
      Moderator

      Kikou !! Lecagnois … moi je suis pas sur raspberry PI ? mais sur Lattepanda via Arduino !! y’a t’il une possibilité ou c’est compliqué (très peu de connaissance 🙁

      Merci

    • #4783
      lecagnois
      Participant

      salut gratounet

      moi aussi j’utilise un pc pour mrl . il faut comprendre que le rasberry est indépendant du robot.
      c est un serveur que tu installe sur ton RASPberry et qui est sur ton LAN .
      Après ce serveur tu lui fais faire ce que tu veux . ( ici il fait de la domotique , il fait serveur ssmtp
      tu peux hèberger ton propre site , enfin tout ce que peux faire un serveur )

      Suis le tuto de IDelman pour installer ton raspberry .

      Nota tu peut mettre ton raspberry à l intérieur de INMOOV ca fera une carte supplémentaire (lol)
      autre solution créer un serveur sur windows 10 et le Lattepanda ( la c est plus délicat et peut être pas totalement gratuit , a fouiller sur le net)

    • #4791
      My’s Moov
      Moderator

      Merci pour ces explication !!! mais quel type de RASPberry je dois prendre éventuellement ?et install n’est pas trop compliqué !!! actuellement j’utilise un hébergeur avec un nom de domaine !!! cela veux dire que je pourrait me passer de raké tout les ans !!! lol

      Merci pour tes conseils l’ami

      Alain

      • #4795
        lecagnois
        Participant

        Mais vu l’avancement de ton INMOOV je sais que tu va y arriver ….. lol

    • #4794
      lecagnois
      Participant

      Je te conseil le dernier Raspberry Pi 3 Carte Mère Model B Quad Core CPU 1.2 GHz 1 Go RAM , tu a le wifi intégré . prendre une carte mémoire de 16 ou 32 GB de classe 10 .
      Après si tu veux un serveur pro , cela dépend du nombre de connections que tu a .
      Mais pour une utilisation professionnel il faut mieux un vrai PC avec une vraie alimentation .
      et bien sécurisé ton serveur.(surtout pour tes clients , protéger ta basse de données et les transactions de CB )
      Pour l installation tu suis les tutos , autrement il te faut des connaissance sous linux , sur le réseau , la sécurité informatique , apache ,MSQL , PHPADMIN , concevoir son site etc …. c est à la porté de tous mais cela prends énormément de temps .

      Mais l informatique est aussi passionnant que la robotique .

      c est sans fin …………

    • #9026
      Dominique
      Participant

      @Lecagnois: Je sais c’est un vieux post, mais bon… on évolue…

      Je te conseil d’utiliser urllib2 qui permet en plus de tester la réponse provenant du serveur.

      Moi je l’utilise pour interroger mes capteurs à base de ESP8266. Je traite les réponses au format Json.

    • #9039
      lecagnois
      Participant

      @Dominique

      Merci DOminique pour l information
      Si tu peux me faire un petit tuto ou un exemple de cette bibliotheque
      a+

    • #9069
      Dominique
      Participant

      Salut,

      Aillant une connexion wifi extrêmement limité car je suis en vacance pour le moment, je te donnerai un exemple dés que je pourrais…

    • #9077
      lecagnois
      Participant

      Bonne vacances Dominique

    • #9145
      Dominique
      Participant

      Salut,

      Voici un exemple de urllib2

      url = "http://192.168.1.XXX:XX/commande de ce qu'on veut faire"
      
      try:
        req = urllib2.Request(url)
        handle = urllib2.urlopen(req)
        answerIsOk = True
      except IOError:
        talk("Problème avec le serveur domotique")
      
      if answerIsOk == True:
        result = handle.read()
        print "Resultat: ", result
        chatBot.getResponse("REPONSE_DOMO")

      Cela permet de vérifier si le serveur a répondu avec la bonne réponse. Evidemment il ne faut pas oublier d’importer la librairie.

      • This reply was modified 6 years, 8 months ago by Dominique.
      • This reply was modified 6 years, 8 months ago by Dominique.
    • #9157
      lecagnois
      Participant

      Merci Dominique , moins compliqué que de tester le ping . Je vais tester
      Bon ,la je suis plus sur la mer que sur InMoov mais des le mois de septembre , je me remet dans le cambouis
      Je te remercie , c’est vrai que le coté développement est super intéressent , mais il y a pas beaucoup de développeurs dans le forum ….

    • #9165
      Dominique
      Participant

      OK bonne vacances aussi.

Viewing 17 reply threads
  • You must be logged in to reply to this topic.