Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import cgitb ; cgitb.enable()
- import spidev
- import time
- from datetime import datetime
- import RPi.GPIO as GPIO
- import smtplib
- from email.mime.text import MIMEText
- from twilio.rest import Client
- import Adafruit_Nokia_LCD as LCD
- import Adafruit_GPIO.SPI as SPI
- import Image
- import ImageDraw
- import ImageFont
- tijdstip = 0
- account_sid = "AC728f597da5b0f85246ce559539bd2673"
- auth_token = "83082db0d4d58955e61446109e92689e"
- #MySql-library importeren
- import MySQLdb
- #Verbinden met de lokale database
- database = MySQLdb.connect(host="localhost", user="root",
- passwd="_Kultuur16", db="data")
- #Database selecteren
- cursor = database.cursor()
- GPIO.setmode(GPIO.BCM) #GPIO 18
- # Raspberry Pi hardware SPI config:
- DC = 23 # data/control
- RST = 24 # reset
- SPI_PORT = 0 # SPI port 0
- SPI_DEVICE = 1 # CS1 pin 26
- spi = spidev.SpiDev() #create spi object
- spi.open(0,0) #open spi port 0, device CS0 pin 24
- # Hardware SPI usage:
- disp = LCD.PCD8544(DC, RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
- image = Image.new('1', (LCD.LCDWIDTH, LCD.LCDHEIGHT))
- # Initialize library.
- disp.begin(contrast=50)
- # Clear display.
- disp.clear()
- disp.display()
- # Load default font.
- font = ImageFont.load_default()
- # Get drawing object to draw on image.
- draw = ImageDraw.Draw(image)
- # Draw a white filled box to clear the image.
- draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255)
- #read SPI data 8 possible adc's (0 thru 7)
- def readadc(adcnum):
- if ((adcnum > 7) or (adcnum < 0)):
- return -1
- r = spi.xfer2([1,(8+adcnum)<<4,0])
- adcout = ((r[1]&3) << 8) + r[2]
- return adcout
- while True:
- GPIO.setup(18,GPIO.OUT)
- GPIO.output(18, 0)
- tmp0 = readadc(0) # read channel 0
- tmp1 = readadc(1) # read channel 1
- ad_waarde1 = ((tmp0 * 100) / 1024) #omzetten draaiknop naar precentage
- #ad_waarde2 = ((tmp1 * 100) / 1024)
- ad_waarde2 = ((tmp1 *(3300.0/1024.0)) - 500)/100.0 #omzetten naar temperatuur
- gemiddelde_waarde = (ad_waarde1 + ad_waarde2) / 2
- tijdstip = datetime.now()
- comment= ('De waardes zijn ' + format(ad_waarde1) + '% en ' + format(ad_waarde2) + '%')
- draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255)
- draw.text((1,0),'Hallo', font=font)
- disp.image(image)
- disp.display()
- #print "De gemiddelde waarde is ",gemiddelde_waarde,"%"
- #show html
- # show the HTML page
- print "Content-Type: text/html\r\n\r\n"
- print "<html>"
- print "<head>"
- print "<title>Control GPIO18</title>"
- print "</head>"
- print "<body>"
- print "%s" % comment
- print "</br>"
- print "<p></p>"
- print "</body>"
- print "</html>"
- #Tijdstip en teller wegschrijven naar de tabel in de database
- cursor.execute("INSERT INTO examen(tijdstip,ad_waarde1,ad_waarde2) VALUES(%s,%s,%s)",
- (tijdstip,ad_waarde1,ad_waarde2))
- database.commit()
- if (gemiddelde_waarde >= 50):
- GPIO.setup(18,GPIO.OUT)
- GPIO.output(18, 1)
- if ((gemiddelde_waarde >= 50) and (gemiddelde_waarde < 80)):
- #opmaken van email
- message = ('De waardes zijn ' + format(ad_waarde1) + '% en ' + format(ad_waarde2) + '% en ')
- msg = MIMEText(message)
- msg['Subject'] = 'RPi Python test'
- msg['From'] = 'raspberrypitm@gmail.com'
- msg['To'] = 'mattidc.mdc@gmail.com'
- # send the email via Gmail server
- username = 'raspberrypitm@gmail.com'
- password = 'thomasmore'
- server = smtplib.SMTP('smtp.gmail.com:587') # Gmail rewriting port 25 to port 587
- server.starttls() # Support SMPT AUTH
- server.login(username,password)
- server.sendmail(msg['From'], msg['To'], msg.as_string())
- server.quit()
- if (gemiddelde_waarde >= 80):
- client = Client(account_sid, auth_token)
- message = client.messages.create(
- to="+32479677232",
- from_="+32460205439",
- body=('De waardes zijn ' + format(ad_waarde1) + '% en ' + format(ad_waarde2) + '% en '))
- time.sleep(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement