Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2017
371
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.83 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import cgitb ; cgitb.enable()
  3. import spidev
  4. import time
  5. from datetime import datetime
  6. import RPi.GPIO as GPIO
  7. import smtplib
  8. from email.mime.text import MIMEText
  9. from twilio.rest import Client
  10.  
  11. import Adafruit_Nokia_LCD as LCD
  12. import Adafruit_GPIO.SPI as SPI
  13. import Image
  14. import ImageDraw
  15. import ImageFont
  16.  
  17. tijdstip = 0
  18. account_sid = "AC728f597da5b0f85246ce559539bd2673"
  19. auth_token = "83082db0d4d58955e61446109e92689e"
  20.  
  21. #MySql-library importeren
  22. import MySQLdb
  23. #Verbinden met de lokale database
  24. database = MySQLdb.connect(host="localhost", user="root",
  25. passwd="_Kultuur16", db="data")
  26. #Database selecteren
  27. cursor = database.cursor()
  28.  
  29. GPIO.setmode(GPIO.BCM) #GPIO 18
  30.  
  31. # Raspberry Pi hardware SPI config:
  32. DC = 23 # data/control
  33. RST = 24 # reset
  34. SPI_PORT = 0 # SPI port 0
  35. SPI_DEVICE = 1 # CS1 pin 26
  36.  
  37. spi = spidev.SpiDev() #create spi object
  38. spi.open(0,0) #open spi port 0, device CS0 pin 24
  39.  
  40. # Hardware SPI usage:
  41. disp = LCD.PCD8544(DC, RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
  42. image = Image.new('1', (LCD.LCDWIDTH, LCD.LCDHEIGHT))
  43.  
  44. # Initialize library.
  45. disp.begin(contrast=50)
  46.  
  47. # Clear display.
  48. disp.clear()
  49. disp.display()
  50.  
  51. # Load default font.
  52. font = ImageFont.load_default()
  53.  
  54. # Get drawing object to draw on image.
  55. draw = ImageDraw.Draw(image)
  56. # Draw a white filled box to clear the image.
  57. draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255)
  58.  
  59. #read SPI data 8 possible adc's (0 thru 7)
  60. def readadc(adcnum):
  61. if ((adcnum > 7) or (adcnum < 0)):
  62. return -1
  63. r = spi.xfer2([1,(8+adcnum)<<4,0])
  64. adcout = ((r[1]&3) << 8) + r[2]
  65. return adcout
  66.  
  67. while True:
  68. GPIO.setup(18,GPIO.OUT)
  69. GPIO.output(18, 0)
  70. tmp0 = readadc(0) # read channel 0
  71. tmp1 = readadc(1) # read channel 1
  72. ad_waarde1 = ((tmp0 * 100) / 1024) #omzetten draaiknop naar precentage
  73. #ad_waarde2 = ((tmp1 * 100) / 1024)
  74. ad_waarde2 = ((tmp1 *(3300.0/1024.0)) - 500)/100.0 #omzetten naar temperatuur
  75. gemiddelde_waarde = (ad_waarde1 + ad_waarde2) / 2
  76. tijdstip = datetime.now()
  77. comment= ('De waardes zijn ' + format(ad_waarde1) + '% en ' + format(ad_waarde2) + '%')
  78.  
  79. draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255)
  80. draw.text((1,0),'Hallo', font=font)
  81. disp.image(image)
  82. disp.display()
  83.  
  84. #print "De gemiddelde waarde is ",gemiddelde_waarde,"%"
  85. #show html
  86. # show the HTML page
  87. print "Content-Type: text/html\r\n\r\n"
  88. print "<html>"
  89. print "<head>"
  90. print "<title>Control GPIO18</title>"
  91. print "</head>"
  92. print "<body>"
  93. print "%s" % comment
  94. print "</br>"
  95. print "<p></p>"
  96. print "</body>"
  97. print "</html>"
  98.  
  99. #Tijdstip en teller wegschrijven naar de tabel in de database
  100. cursor.execute("INSERT INTO examen(tijdstip,ad_waarde1,ad_waarde2) VALUES(%s,%s,%s)",
  101. (tijdstip,ad_waarde1,ad_waarde2))
  102. database.commit()
  103.  
  104. if (gemiddelde_waarde >= 50):
  105. GPIO.setup(18,GPIO.OUT)
  106. GPIO.output(18, 1)
  107.  
  108. if ((gemiddelde_waarde >= 50) and (gemiddelde_waarde < 80)):
  109. #opmaken van email
  110. message = ('De waardes zijn ' + format(ad_waarde1) + '% en ' + format(ad_waarde2) + '% en ')
  111. msg = MIMEText(message)
  112. msg['Subject'] = 'RPi Python test'
  113. msg['From'] = 'raspberrypitm@gmail.com'
  114. msg['To'] = 'mattidc.mdc@gmail.com'
  115.  
  116. # send the email via Gmail server
  117. username = 'raspberrypitm@gmail.com'
  118. password = 'thomasmore'
  119. server = smtplib.SMTP('smtp.gmail.com:587') # Gmail rewriting port 25 to port 587
  120. server.starttls() # Support SMPT AUTH
  121. server.login(username,password)
  122. server.sendmail(msg['From'], msg['To'], msg.as_string())
  123. server.quit()
  124.  
  125. if (gemiddelde_waarde >= 80):
  126. client = Client(account_sid, auth_token)
  127. message = client.messages.create(
  128. to="+32479677232",
  129. from_="+32460205439",
  130. body=('De waardes zijn ' + format(ad_waarde1) + '% en ' + format(ad_waarde2) + '% en '))
  131.  
  132. time.sleep(2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement