Guest User

Untitled

a guest
Aug 30th, 2018
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.66 KB | None | 0 0
  1. import network, socket, machine, time, module
  2. from umqtt.robust import MQTTClient
  3.  
  4. def do_connect():
  5. import network
  6. sta_if = network.WLAN(network.STA_IF)
  7. if not sta_if.isconnected():
  8. print('connecting to network...')
  9. sta_if.active(True)
  10. sta_if.connect('GL-iNet-866', 'goodlife')
  11. while not sta_if.isconnected():
  12. pass
  13. print('network config:', sta_if.ifconfig())
  14.  
  15. def leitor(limite, email):
  16. lim = int(limite)
  17. while True:
  18. valor = adc.read()
  19. print("Limite:")
  20. print(lim)
  21. print("Valor Atual:")
  22. print(valor)
  23. print("")
  24. if(valor > lim):
  25. print("*****Enviando Alerta*****")
  26. things_speak(valor)
  27. envia_email(valor, email)
  28. time.sleep_ms(5000)
  29.  
  30. def envia_email(valor, email):
  31. msg = ("\r\n O leitor de luminosidade está em: " + str(valor))
  32. endmsg = "\r\n.\r\n"
  33. mailserver = ("smtp.gmail.com", 465)
  34. clientSocket = socket(AF_INET, SOCK_STREAM)
  35. clientSocket.connect(mailserver)
  36. recv = clientSocket.recv(1024)
  37. recv = recv.decode()
  38. print("mensagem após a requisição de conexão:" + recv)
  39. if recv[:3] != '220':
  40. print('resposta 220 não recebida do servidor.')
  41. heloCommand = 'EHLO gmail.com\r\n'
  42. clientSocket.send(heloCommand.encode())
  43. recv1 = clientSocket.recv(1024)
  44. recv1 = recv1.decode()
  45. print("mensagem após o comando EHLO:" + recv1)
  46. if recv1[:3] != '250':
  47. print('resposta 250 não recebida do servidor.')
  48. username = "pedroluiseccel@gmail.com"
  49. password = "Farofa123"
  50. base64_str = ("\x00"+username+"\x00"+password).encode()
  51. base64_str = base64.b64encode(base64_str)
  52. authMsg = "AUTH LOGIN ".encode()+base64_str+"\r\n".encode()
  53. clientSocket.send(authMsg)
  54. recv_auth = clientSocket.recv(1024)
  55. print(recv_auth.decode())
  56. mailFrom = "MAIL FROM:<concentrado@furbi.com>\r\n"
  57. clientSocket.send(mailFrom.encode())
  58. recv2 = clientSocket.recv(1024)
  59. recv2 = recv2.decode()
  60. print("após comando MAIL FROM: "+recv2)
  61. rcptTo = "RCPT TO:<" + email + ">\r\n"
  62. clientSocket.send(rcptTo.encode())
  63. recv3 = clientSocket.recv(1024)
  64. recv3 = recv3.decode()
  65. print("após comando RCPT TO: "+recv3)
  66. data = "DATA\r\n"
  67. clientSocket.send(data.encode())
  68. recv4 = clientSocket.recv(1024)
  69. recv4 = recv4.decode()
  70. print("após comando DATA: "+recv4)
  71. subject = "Subject: Alerta de Luminosidade\r\n\r\n"
  72. clientSocket.send(subject.encode())
  73. date = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime())
  74. date = date + "\r\n\r\n"
  75. clientSocket.send(date.encode())
  76. clientSocket.send(msg.encode())
  77. clientSocket.send(endmsg.encode())
  78. recv_msg = clientSocket.recv(1024)
  79. print("resposta após enviar a mensagem:" + recv_msg.decode())
  80. quit = "QUIT\r\n"
  81. clientSocket.send(quit.encode())
  82. recv5 = clientSocket.recv(1024)
  83. print(recv5.decode())
  84. clientSocket.close()
  85.  
  86. def things_speak(num):
  87. myMqttClient = bytes("client_" + str(num), 'utf-8')
  88. thingspeakUrl = b"mqtt.thingspeak.com"
  89. thingspeakUserId = b"pedroyup"
  90. thingspeakMqttApiKey = b"OOEM5ZBDVWIIX2HY"
  91. client = MQTTClient(client_id=myMqttClient,
  92. server=thingspeakUrl,
  93. user=thingspeakUserId,
  94. password=thingspeakMqttApiKey,
  95. ssl=False)
  96. client.connect()
  97. thingspeakChannelId = b"552426"
  98. thingspeakChannelWriteApiKey = b"P3VQHJPV5BC920TD"
  99. credentials = bytes("channels/{:s}/publish/{:s}".format(thingspeakChannelId, thingspeakChannelWriteApiKey), 'utf-8')
  100. payload = bytes("field1={:.1f}\n".format(num), 'utf-8')
  101. print(payload)
  102. client.publish(credentials, payload)
  103. client.disconnect()
  104.  
  105. adc = machine.ADC(0)
  106. do_connect()
  107. addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
  108. s = socket.socket()
  109. s.bind(addr)
  110. s.listen(1)
  111.  
  112. print('listening on', addr)
  113.  
  114. while True:
  115. cl, addr = s.accept()
  116. cl_file = cl.makefile('rwb', 0)
  117. while True:
  118. line = cl_file.readline()
  119. print(line)
  120. print(str(line))
  121. print(type(str(line)))
  122. if(b'?valor=' in line):
  123. linha = str(line)
  124. t = linha.split('=')
  125. limite = t[1].split('&')[0]
  126. print("valor limite encontrado = " + limite)
  127. if(b'&email=' in line):
  128. linha = str(line)
  129. t = linha.split('=')
  130. email = t[2].split('H')[0]
  131. email = email.split('%40')
  132. email = email[0] + "@" + email[1]
  133. print("email encontrado = " + email)
  134. leitor(limite, email)
  135. if not line or line == b'\r\n':
  136. break
  137. cl.send(html)
  138. cl.close()
Add Comment
Please, Sign In to add comment