def read_sensor():
global temp, hum
temp = hum = 0
try:
sensor.measure()
temp = sensor.temperature()
hum = sensor.humidity()
if (isinstance(temp, float) and isinstance(hum, float)) or (isinstance(temp, int) and isinstance(hum, int)):
msg = (b'{0:3.1f},{1:3.1f}'.format(temp, hum))
hum = round(hum, 2)
return(msg)
else:
return('Invalid sensor readings.')
except OSError as e:
return('Failed to read sensor.')
def web_page():
html = """<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="refresh" content="31">
<meta charset="UTF-8">
<style>
body{max-width: 300px; margin: 0px auto;}
.switch{display: flex; flex-direction: column; align-items: center;}
.switch input{display:none}
.slider{position:relative;width:120px;height:68px;background-color:#ccc;border-radius:34px}
.slider:before{position:absolute;content:"";height:52px;width:52px;left:8px;bottom:8px;background-color:#fff;-webkit-transition:.4s;transition:.4s;border-radius:68px}
input:checked+.slider{background-color:#2196F3}
input:checked+.slider:before{-webkit-transform:translateX(52px);-ms-transform:translateX(52px);transform:translateX(52px)}
</style>
</head>
<body>
<h1>ESP Web Server</h1>
<table>
<tr>
<td>Temperature (%s °C) </td>
<td><progress value="%s" max="60"></progress></td>
</tr>
<tr>
<td>Humidité (%s %%) </td>
<td><progress value="%s" max="100"></progress><td>
</tr>
</table>
</body>
</html>""" % (temp, temp, hum, hum)
return html
#****************************************
def main():
# Demander à l'utilisateur de choisir entre le Mode AP ou client
mode_f = input("Veuillez Saisir 1 -> (Mode ACCESS PONT) & 2 -> (Mode Client) : ")
try:
mode_f = int(mode_f)
if(mode_f == 1):
accesspoint_wifi() #executer le mode access point
elif(mode_f == 2):
connect_wifi() # executer le mode client
else:
print("Veuillez entrer une valeur valide.")
except:
print("Veuillez entrer une valeur valide.")
# Créer une socket TCP
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('', 80))
server_socket.listen(5)
while True:
try :
conn, addr = server_socket.accept()
print(' Connexion de client -> %s' % str(addr))
request = conn.recv(1024)
print('Content -> %s' % str(request))
print(read_sensor())
response = web_page()
conn.send('HTTP/1.1 200 OK\n')
conn.send('Content-Type: text/html\n')
conn.send('Connection: close\n\n')
conn.sendall(response)
except Exception as e:
print(f'Erreur lors de la communication avec le client {str(addr)} : {e}')
finally:
# Fermer la connexion du client avec le serveur
conn.close()
if __name__ == "__main__":
main()