Advertisement
Guest User

Bogdan

a guest
Dec 3rd, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.58 KB | None | 0 0
  1. #!/usr/bin/env/python
  2. import cgitb ; cgitb.enable()
  3. import spidev
  4. import time
  5.  
  6. import RPi.GPIO as GPIO
  7. from datetime import datetime
  8.  
  9. import smtplib
  10. from email.mime.text import MIMEText
  11. from twilio.rest import Client
  12.  
  13. # empty variables
  14. waarde0 = 0
  15. waarde1 = 0
  16.  
  17. # MySql-library importeren
  18. import MySQLdb
  19.  
  20. # Verbinden met de lokale database
  21. database = MySQLdb.connect(host="localhost", user="root", passwd="******", db="******")
  22.  
  23. # Database selecteren via de cursor methode
  24. # Via deze cursor kunnen we de database later aanpassen
  25. cursor = database.cursor()
  26.  
  27. # ADC activeren
  28. spi = spidev.SpiDev() # create spi object
  29. spi.open(0,0) # open spi port 0, device CS0 pin 24
  30.  
  31. # To use Raspberry PI board GPIO numbers
  32. GPIO.setmode(GPIO.BCM) #GPIO
  33. GPIO.setup(17, GPIO.OUT) # GPIO 17 output
  34.  
  35. # Blinking function
  36. def blink(pin):
  37. # Setup GPIO output channel
  38. GPIO.setup(pin, GPIO.OUT)
  39. GPIO.output(pin, 1)
  40. #time.sleep(0.1)
  41. #GPIO.output(pin, 0)
  42. #time.sleep(0.1)
  43.  
  44. def blink2(pin):
  45. # Setup GPIO output channel
  46. GPIO.setup(pin, GPIO.OUT)
  47. GPIO.output(pin, 0)
  48.  
  49. # read SPI data 8 possible adc's (0 thru 7)
  50. def readadc(adcnum):
  51. if ((adcnum > 7) or (adcnum < 0)):
  52. return -1
  53. r = spi.xfer2([1,(8+adcnum)<<4,0])
  54. adcout = ((r[1]&3) << 8) + r[2]
  55. return adcout
  56.  
  57. while True:
  58. # waardes ophalen
  59. waarde0 = ((readadc(0)*100) / 1023) # read channel 0
  60. waarde1 = ((readadc(1)*100) / 1023) # read channel 1
  61. print "waarde 1: ", waarde0
  62. print "waarde 2: ", waarde1
  63.  
  64. if ((waarde0 < 50) or (waarde1 < 50)):
  65. blink(17)
  66.  
  67. if (((waarde0 > 50) and (waarde0 < 80)) or ((waarde1 > 50) and (waarde1 < 80))):
  68. # Create the email content
  69. message = "The value passed 50%, the first value is " + str(waarde0) + "% and the second value is " + str(waarde1) + "%."
  70. msg = MIMEText(message)
  71. msg['Subject'] = 'RPi Python values'
  72. msg['From'] = 'wielandtjordan@gmail.com'
  73. msg['To'] = 'wielandtjordan@gmail.com'
  74.  
  75. # Send the email via Gmail server
  76. username = 'wielandtjordan'
  77. password = '*****'
  78. server = smtplib.SMTP('smtp.gmail.com:587') # Gmail rewriting port 25 to port 587
  79. server.starttls() # Support SMTP AUTH
  80. server.login(username,password)
  81. server.sendmail(msg['From'], msg['To'], msg.as_string())
  82. server.quit()
  83.  
  84. if ((waarde0 > 80) or (waarde1 > 80)):
  85. # Your account SID from twilio.com/console - dashboard
  86. account_sid = "AC*******"
  87.  
  88. # Your auth token from twilio.com/console - dashboard
  89. auth_token = "dc********"
  90.  
  91. client = Client(account_sid, auth_token)
  92. message = client.messages.create(
  93. to="+32*******",
  94. from_="+32********",
  95. body="The value passed 80%, the first value is " + str(waarde0) + "% and the second value is " + str(waarde1) + "%.")
  96. print(message.sid)
  97.  
  98. # De funtctie cursor.execute voert SQL commando's uit
  99. # waarde0 en waarde1 wegschrijven naar de tabel in de database)
  100. cursor.execute("INSERT INTO Test(waarde0, waarde1) VALUES(%s, %s)", (waarde0, waarde1))
  101.  
  102. # Voert elke openstaande opdracht uit op de database zelf
  103. database.commit()
  104.  
  105. # Wait 1s
  106. time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement