1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
| import gc
import network
import socket
import time
import utime
import uasyncio
gc.collect()
ssid = "xxxxxxxxxxx"
password = "xxxxxxxxxxxx"
repertoire = parametres.repertoire
index_page = parametres.index_page
from machine import Pin
Led_builtin = Pin('LED', Pin.OUT)
Led_builtin.off()
RedLed = machine.Pin(16,machine.Pin.OUT)
wlan = network.WLAN(network.AP_IF)
wlan.config(essid= ssid , password = password)
wlan.active(True)
wlan.config(pm = 0xa11140) #augmente la réactivité
while wlan.active == False :
pass
print("Access point actif")
print(wlan.ifconfig()[0])
print('Réseau wifi : ',ssid, 'et mot de passe :',password)
def get_request_file(request_file_name):
#page index par défaut
if request_file_name == '/' :
request_file_name = '/'+pageIndex
with open(repertoire + request_file_name, 'rb') as file: #byte
file_requested= file.read()
return file_requested
# Ouverture du socket
addr = socket.getaddrinfo('0.0.0.0', 80)[0][-1]
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) # evite error EADDRINUSE
s.bind(addr)
s.listen(3)
async def Moteur_main():
while True:
RedLed.on()
utime.sleep(CO2_OFF)
RedLed.off()
Led_builtin.on()
utime.sleep(CO2_ON)
Led_builtin.off()
#await uasyncio.sleep_ms(3000)
#
async def main():
while True:
uasyncio.create_task(Serveur_main())
await uasyncio.sleep_ms(3000)
uasyncio.create_task(Moteur_main())
await uasyncio.sleep_ms(3000) # lancement des tâches programmées et attente de 1s
async def Serveur_main():
# Ecoute du port et attente connexion d'un client
while True:
try:
print("Attente connexion d'un client")
connexionClient, adresse = s.accept() #ça bloque à cet endroit
print("Connecté avec le client : ", adresse,"\n")
print("Attente requete du client\n")
#reception de la demande
requete = connexionClient.recv(1024) #requête du client
requete = str(requete)
#recherche des données demandées
requete = requete.split()[1]
#lecture du ficher demandé + insertion data
reponse = get_request_file(requete)
#envoie file header
connexionClient.send(file_header)
#envoie réponse
connexionClient.sendall(reponse)
connexionClient.close()
print("Connexion avec le client fermée\n")
except OSError as e:
connexionClient.close()
print("Connexion avec le client fermée, le programme a déclenché une erreur\n")
await uasyncio.sleep_ms(0)
uasyncio.run(main()) |
Partager