Smart Garage aangedreven door pcDuino (3 / 4 stap)

Stap 3: Python Code

De python code is als hieronder:

#! / usr/bin/python
#-*-codering: utf-8-*-
smtplib importeren
importeren
importeren van adc analog_read
gpio importeren
importeren
imaplib importeren
importeren van uuid
van e-mail e-mail importeren
imaplib importeren
importeren
importeren van uuid
van e-mail e-mail importeren
relay_pin = "gpio2"
sensor_pin = "gpio4"
#the volgt voor het verzenden van e-mail
Server = 'smtp.gmail.com'
poort 587 =
afzender = ' xxxxxx
ontvanger = ' xxxxx
wachtwoord = 'xxxxx'
onderwerp = 'Garage deur geopend'
lichaam = ' de garagedeur is open. Gelieve te controleren '
#the volgende is voor het ontvangen van e-mail
IMAP_SERVER = 'imap.gmail.com'
IMAP_PORT = '993'
IMAP_USE_SSL = True
imap_username = ' xxxxx
imap_password = 'xxxxx'
num = 0
message_content = '1';
def delay(ms):
time.Sleep(1.0*MS/1000)
def Setup:
gpio.pinMode (relay_pin, gpio. UITVOER)
gpio.pinMode (sensor_pin, gpio. INGANG)
gpio.digitalWrite (relay_pin, gpio. LAAG)
lichaam = "" + lichaam + ""
koptekst = ["van:" + afzender,
"Onderwerp:" + onderwerp,
"Naar:" + ontvanger,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)
replysubject = 'Ik gesloten garagedeur'
replybody = 'Ik gesloten garagedeur.'
replybody = "" + replybody + ""
replyheaders = ["van:" + afzender,
"Onderwerp:" + replysubject,
"Naar:" + ontvanger,
"MIME-Version: 1.0",
"Content-Type: text/html"]
replyheaders = "\r\n".join(replyheaders)
klasse MailBox(object):
def __init__ (zelf, gebruiker, wachtwoord):
Self.user = gebruiker
Self.password = wachtwoord
Als IMAP_USE_SSL:
Self.IMAP = imaplib. IMAP4_SSL(IMAP_SERVER, IMAP_PORT)
anders:
Self.IMAP = imaplib. IMAP4(IMAP_SERVER, IMAP_PORT)
def __enter__(self):
Self.IMAP.login (self.user, self.password)
keren zelf
def __exit__ (zelf, type, waarde, traceback):
Self.IMAP.Close()
Self.IMAP.logout()
def get_count(self):
Self.IMAP.Select('Inbox')
status, gegevens = self.imap.search (geen, 'Onzichtbare')
som (1 voor num in data[0].split()) retourneren
def fetch_message (self, num):
Self.IMAP.Select('Inbox')
status, gegevens = self.imap.fetch(str(num), '(RFC822)')
email_msg = email.message_from_string(data[0][1])
email_msg retourneren
def delete_message (self, num):
Self.IMAP.Select('Inbox')
Self.IMAP.Store (num, '+ vlaggen', r '\Deleted')
Self.IMAP.Expunge()
def print_msgs(self):
Self.IMAP.Select('Inbox')
status, gegevens = self.imap.search (geen, 'Onzichtbare')
#for num in reversed(data[0].split()):
status, gegevens = self.imap.fetch (num, '(RFC822)')
Self.IMAP.Store (num, '+ vlaggen', '\\Deleted')
msg=email.message_from_string(data[0][1])
message_content=msg.get_all("subject")
als 'nauwe garagedeur' in message_content:
return 1
def get_latest_email_sent_to (zelf email_address, timeout = 300, poll = 1):
start_time = time.time()
terwijl ((time.time()-start_time) < timeout):
# Het is geen gebruik blijven totdat we met succes hebt geselecteerd
# het postvak in. En als we niet het selecteren op elke iteratie
# voor het zoeken, we krijgen intermitterende mislukkingen.
status, gegevens = self.imap.select('Inbox')
als status! = 'OK':
time.Sleep(poll)
blijven
status, gegevens = self.imap.search (geen, 'TO', email_address)
gegevens = [d voor d in gegevens als d niet geen]
als status == 'OK' en gegevens:
voor num in reversed(data[0].split()):
status, gegevens = self.imap.fetch (num, '(RFC822)')
email_msg = email.message_from_string(data[0][1])
email_msg retourneren
time.Sleep(poll)
verhogen van AssertionError ("geen e-mail gestuurd naar ' %s gevonden in Postvak in"
"na de polling voor %s seconden." % (email_address timeout))
def delete_msgs_sent_to (self, email_address):
Self.IMAP.Select('Inbox')
status, gegevens = self.imap.search (geen, 'TO', email_address)
als status == 'OK':
voor num in reversed(data[0].split()):
status, gegevens = self.imap.fetch (num, '(RFC822)')
Self.IMAP.Store (num, '+ vlaggen', r '\Deleted')
Self.IMAP.Expunge()
def closedoor():
gpio.digitalWrite (relay_pin, gpio. HOOG)
delay(200)
gpio.digitalWrite (relay_pin, gpio. LAAG)
Als __name__ == '__main__':
Setup
while(1):
Als gpio.digitalRead(sensor_pin) == gpio. LAAG:
afdrukken ("pin van de Sensor is LOW")
sessie = smtplib. SMTP (server, poort)
Session.EHLO()
Session.starttls()
Session.EHLO
Session.login (afzender, wachtwoord)
Session.sendmail (afzender, ontvanger, headers "\r\n\r\n" + lichaam)
Session.Quit()
delay(10)
met de postbus (imap_username, imap_password) als mbox:
num=mbox.get_Count()
Als num! = 0:
als mbox.print_msgs():
afdrukken 'inschakelen'
closedoor()
sessie = smtplib. SMTP (server, poort)
Session.EHLO()
Session.starttls()
Session.EHLO
Session.login (afzender, wachtwoord)
Session.sendmail (afzender, ontvanger, replyheaders "\r\n\r\n" + replybody)
Session.Quit()

We kunnen de truc gebruiken in post te krijgen python bibliotheek voor pcDuino, en laat de bovenstaande python script om het automatisch te laden tijdens het opstarten van pcDuino.

Gerelateerde Artikelen

Een Piano met banaan als toetsenbord aangedreven door pcDuino

Een Piano met banaan als toetsenbord aangedreven door pcDuino

we zullen detail hoe te gebruiken Touch sleutel USB-Shield en pcDuino uit te voeren van een piano met banaan als toetsenbord.Stap 1: How to Simuleer toetsenbord Input?(1) om te injecteren toetsaanslagen, moeten we de gebeurtenissen van de aanraking v
Verticale tuin & weer aangedreven door Intel Edison

Verticale tuin & weer aangedreven door Intel Edison

BioEdison is een slimme verticale tuin op basis van de nieuwe Intel Edison waarmee een eenvoudige, geautomatiseerdebeheer van elk type van plantaardige of plant.Voordelen van het bedieningsorgaan BioEdison dan een traditionele moestuin zijn het effic
DIY auto aangedreven door Smartphone

DIY auto aangedreven door Smartphone

Ik maakte deze auto met behulp van recycling materialen zoals doppen, ijs stokken enz. Interessante ding over deze auto is de aangedreven door Smartphone. Geen behoefte aan een batterij. Net plugin uw Smartphone met OTG ondersteuning en u bent goed o
Arc reactor model aangedreven door zonne-energie

Arc reactor model aangedreven door zonne-energie

Dit zijn de stappen van het maken van een model van Arc Reactor aangedreven door zonne-energie.这些是如何制作一个由太阳能供电的方舟反应堆模型的步骤.Stap 1: Voorbereiding 准备 Materialen die we nodig heeft: koperen draad, Strijkijzer, schaar, handschoenen, giue, LED's, acrylglas
Multi Cade aangedreven door Raspberry Pi

Multi Cade aangedreven door Raspberry Pi

Herbeleef uw jeugd dagen, of nieuwe degenen met dit leuk om te maken van de arcade kast aangedreven door de raspberry pi ervaring. Deze gids zal u tonen enkele van de basisprincipes arcade creatie en ingaan op het proces nam ik naar mijne bouwen.Stap
Steampunked Magic Eye Winker aangedreven door batterijen en USB-kabel is aangesloten

Steampunked Magic Eye Winker aangedreven door batterijen en USB-kabel is aangesloten

Hi iedereenen een gelukkig Nieuwjaar aan de instructables- en ook steampunk-bedrijf.Hier is mijn nieuwste project: deSteampunked Magic Eye Winker.Sinds mijn vroegste jeugd ben ik diep onder de indruk van de magie van licht bij mijn grootouders radio.
ClockWise - een intelligente wekker aangedreven door Intel Edison

ClockWise - een intelligente wekker aangedreven door Intel Edison

Met de klok mee is uw volgende intelligente wekker: het u wakker door het hardop zeggen de weersomstandigheden en uw Google agenda-afspraken voor de dag in een Bluetooth speaker.De basis van dit project is een python-script: met behulp van API's, zoa
Muzikale oefening: Training Shirt MP3 speler aangedreven door oefening

Muzikale oefening: Training Shirt MP3 speler aangedreven door oefening

Mensen hou het luisteren naar muziek tijdens het sporten. Muziek biedt de motivatie nodig voor particulieren om energie uit te blijven oefenen en in vorm te komen. Dus, omdat mensen genieten van het luisteren naar muziek tijdens het sporten, wat als
Een multithreaded knipperende theremin aangedreven door VIPER

Een multithreaded knipperende theremin aangedreven door VIPER

De theremin is een experimenteel muziekinstrument, uitgevonden door de Russische natuurkundige Lev Sergejevitsj Termen in de 20 's. Zonder fysiek contact, twee antennes zin de positie van de handen van de speler van de theremin in ruimte te gebruiken
Emma: een 8-cijferige alfanumeriek LED Display aangedreven door elektrische Imp

Emma: een 8-cijferige alfanumeriek LED Display aangedreven door elektrische Imp

Emma is een openbaar referentieontwerp voor een imp-aangedreven apparaat van elektrische Imp.Nog nooit gehoord van de elektrische Imp? Het is vrij netjes. "Het GMB" is een klein wifi-verbonden microcontroller ingepakt in de dezelfde vormfactor a
Toverspiegel aangedreven door zonnepaneel :)

Toverspiegel aangedreven door zonnepaneel :)

dit instructable is gebaseerd op een bestaand verlichtingssysteem van de goedkope aangedreven door een zonnepaneel dat is ook 3 x 1.2volts accu bij te laden!Dus wat je nodig hebt:-20 leds-spiegel film (misschien de moeilijkste dingen om te ga vinden
Aangesloten Sprinkler Controller aangedreven door Afero

Aangesloten Sprinkler Controller aangedreven door Afero

Beheer uw Sprinkler systeem overal mee naartoe!Er is een plek in mijn huis waar ik vrees om te betreden. Het is in de voorste hoek van de garage, onder twee parasols, een ski-pole, twee honkbalknuppels en een Heggenschaar. Dit is waar ik moet gaan te
DIY Smart Garage deuropener

DIY Smart Garage deuropener

Ik weet dat je hebt gekregen van 5 minuten op de weg en gevraagd zelf, "deed ik de garagedeur sluiten?".Nu, in plaats van draaien of verlaten van uw garage en huis kwetsbaar voor dieven, kunt u controleren en sluit het met uw telefoon met uw keu
Een zeer goedkope ESP8266 WiFi smart auto bestuurd door telefoon op basis van NodeMCU

Een zeer goedkope ESP8266 WiFi smart auto bestuurd door telefoon op basis van NodeMCU

DoitCar is ontworpen en ontwikkeld door artsen van Shenzhen of Intelligence & technologie (SZDOIT), die het meest kosteneffectief is. Het wordt algemeen toegepast op vele terreinen, sucha als de elektronische minnaar, studenten, Internet of Things (I