PI-Easy-Copy-Paste

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche

Introduction

Si vous commandez/contrôler votre PI depuis un ordinateur distant en SSH, vous vous trouverez tôt ou tard face à la nécessité de placer un script Python sur votre PI (script disponible sur le NET comme ici par exemple).

Si vous n'utilisez pas encore [PI-SSH|SSH pour commander votre PI], nous vous conseillons vivement de prendre connaissance de cette méthode très-très-très confortable et très productive.

Certes, il est possible d'utiliser nano et de recopier le programme ligne par ligne... mais il y a plus simple et plus efficace :-)

Commande CAT

En utilisant une commande cat comme celle présente ci-dessous

cat <<! > raspi-gmail.py

Vous indiquer à l'interpréteur de commande:

  1. qu'il faut créer un fichier raspi-gmail.py (c'est le "> raspi-gmail.py")
  2. copier tout ce qui passe au clavier dedans (c'est l'opération de concaténation faire par cat)
  3. arrêter l'opération de copiage/concaténation lorsque "!" sera frapper sur une ligne seule (au clavier)

Le Copier/Coller facile

Du coup, faire un copier/coller depuis le Net devient aussi simple que:

On commence par demander la création du fichier

cat <<! > raspi-gmail.py

On fait ensuite le copier/coller du code

#!/usr/bin/env python

import RPi.GPIO as GPIO, feedparser, time

DEBUG = 1

USERNAME = "username" # just the part before the @ sign, add yours here
PASSWORD = "password"

NEWMAIL_OFFSET = 1 # my unread messages never goes to zero, yours might
MAIL_CHECK_FREQ = 60 # check mail every 60 seconds

GPIO.setmode(GPIO.BCM)
GREEN_LED = 18
RED_LED = 23
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.setup(RED_LED, GPIO.OUT)

while True:

        newmails = int(feedparser.parse("https://" + USERNAME + ":" + PASSWORD +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"])

        if DEBUG:
                print "You have", newmails, "new emails!"

        if newmails > NEWMAIL_OFFSET:
                GPIO.output(GREEN_LED, True)
                GPIO.output(RED_LED, False)
        else:
                GPIO.output(GREEN_LED, False)
                GPIO.output(RED_LED, True)

        time.sleep(MAIL_CHECK_FREQ)

On termine l'opération de saisie simplement avec:

!