-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
128 lines (106 loc) · 3.18 KB
/
main.py
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import time
from esp_ble_uart import *
import uSGP30
import sys
import machine
# Définition du cablage (input SGP30) :
# I2C Data (SDA) = GPIO 18 :
I2C_SCL_GPIO = const(18)
# I2C Clock (SCL) = GPIO 19 :
I2C_SDA_GPIO = const(19)
# Fréquence :
I2C_FREQ = const(400000)
i2c = machine.SoftI2C(
scl=machine.Pin(I2C_SCL_GPIO, machine.Pin.OUT),
sda=machine.Pin(I2C_SDA_GPIO, machine.Pin.OUT),
freq=I2C_FREQ
)
# Définition du raccourci de fonction de capteur :
sgp30 = uSGP30.SGP30(i2c)
# Définition du cablage (input LEDs) :
# Rouge :
I2C_RED_GPIO = const(13)
pRED = machine.Pin(I2C_RED_GPIO, machine.Pin.OUT)
pRED.value(0)
# Jaune :
I2C_YELLOW_GPIO = const(12)
pYELLOW = machine.Pin(I2C_YELLOW_GPIO, machine.Pin.OUT)
pYELLOW.value(0)
# Vert :
I2C_GREEN_GPIO = const(14)
pGREEN = machine.Pin(I2C_GREEN_GPIO, machine.Pin.OUT)
pGREEN.value(0)
# Bleu :
I2C_BLUE_GPIO = const(27)
pBLUE = machine.Pin(I2C_BLUE_GPIO, machine.Pin.OUT)
pBLUE.value(0)
# Définition du port valeur du buzzer :
I2C_BUZZ_GPIO = const(25)
pBUZZ = machine.Pin(I2C_BUZZ_GPIO, machine.Pin.OUT)
pBUZZ.value(0)
# Définition du réseau Bluetooth Low Energy :
nom = 'SKAIR Sensor'
UUID_UART = '6E400001-B5A3-F393-E0A9-E50E24DCCA9E'
UUID_TX = '6E400003-B5A3-F393-E0A9-E50E24DCCA9E'
UUID_RX = '6E400002-B5A3-F393-E0A9-E50E24DCCA9E'
uart = Bleuart(nom, UUID_UART, UUID_TX, UUID_RX)
uart.close()
# Fonction pour envoyer des données :
def envoi(val_tx, val_ty):
uart.write("\n\n")
uart.write("Valeur mesurée d'équivalent CO₂ : " + str(val_tx) + " ppm.\n")
uart.write("Composés organiques volatils totaux : " + str(val_ty) + " ppb.")
sgp30.set_absolute_humidity(62)
sgp30.measure_iaq()
time.sleep(15)
uart.write("Le capteur se calibre, patientez s'il vous plaît...\n")
for i in range(10,100,10):
time.sleep(5)
uart.write(i,"% ...\n")
sgp30.mesure_iaq()
time.sleep(2)
uart.write("Calibrage complété avec succès !\n")
runtime = 120 # Changer ici le temps d'exécution total des mesures
interval = 2 # Changer ici l'intervalle entre chaque mesure
timecode = "Temps en secondes;"
val_lst_co2 = "Valeurs mesurées d'équivalent CO₂ (en ppm) :;"
val_lst_tvoc = "Composés organiques volatils totaux (en ppb) :;"
checktime = 0
while checktime < runtime:
co2eq_ppm, tvoc_ppb = sgp30.measure_iaq()
envoi(co2eq_ppm, tvoc_ppb)
val_lst_co2 += str(co2eq_ppm)+";"
val_lst_tvoc += str(tvoc_ppb)+";"
timecode += str(checktime)+";"
if co2eq_ppm >= 1000 :
pYELLOW.value(0)
pGREEN.value(0)
pBLUE.value(0)
pRED.value(1)
pBUZZ.value(1)
if 999 >= co2eq_ppm >= 800 :
pGREEN.value(0)
pBLUE.value(0)
pRED.value(0)
pBUZZ.value(0)
pYELLOW.value(1)
if 799 >= co2eq_ppm >= 600 :
pBLUE.value(0)
pRED.value(0)
pYELLOW.value(0)
pBUZZ.value(0)
pGREEN.value(1)
if 599 >= co2eq_ppm :
pRED.value(0)
pYELLOW.value(0)
pGREEN.value(0)
pBUZZ.value(0)
pBLUE.value(1)
checktime += interval
time.sleep(interval)
file = open("rapport.txt", "w")
file.write(timecode+"\n")
file.write(val_lst_co2+"\n")
file.write(val_lst_tvoc+"\n")
file.close()
raise KeyboardInterrupt