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 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
# -*-coding:Latin-1 -*

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:

!