-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmain.py
68 lines (51 loc) · 1.54 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
from boot import CONFIG
import math
from time import sleep
from machine import Pin, Signal, PWM, I2C
from lib.umqttsimple import MQTTClient
# from lib.hcsr04 import HCSR04
from lib.vl53l1x import VL53L1X
try:
import ujson as json
except:
import json
LED_PIN = None
TOPIC = "home/oil_tank"
SENSOR = None
def setup_pins():
global LED_PIN, SENSOR
LED_PIN = Pin(2, Pin.OUT, value=0)
led = Signal(LED_PIN, invert=True)
# SENSOR = HCSR04(trigger_pin=16, echo_pin=0)
i2c = I2C(scl=Pin(5), sda=Pin(4))
SENSOR = VL53L1X(i2c)
for i in range(3):
print("Led ON")
led.on()
sleep(1)
print("Led OFF")
led.off()
sleep(1)
def pulse(iPwm, t):
for i in range(20):
iPwm.duty(int(math.sin(i / 10 * math.pi) * 500 + 500))
sleep(t / 1000)
def main():
global LED_PIN, SENSOR
led_pulse = PWM(LED_PIN, freq=1000)
client = MQTTClient(CONFIG['client_id'], server=CONFIG['mqtt_broker_ip'],
user=CONFIG['mqtt_user'], password=CONFIG['mqtt_password'])
client.connect()
print("Connected to MQTT Broker {}".format(CONFIG['mqtt_broker_ip']))
print("Sensor ID: {}".format(CONFIG['client_id']))
while True:
data = SENSOR.read()
client.publish('{}/{}'.format(TOPIC,
CONFIG['client_id']),
bytes(str(data), 'utf-8'))
print('Sensor mesure: {}mm'.format(data))
pulse(led_pulse, 50)
sleep(5)
if __name__ == '__main__':
setup_pins()
main()