-
Notifications
You must be signed in to change notification settings - Fork 1
/
publish_bmp085.py
90 lines (67 loc) · 2.22 KB
/
publish_bmp085.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
import network
import time
from umqtt.robust import MQTTClient
import os
import gc
import sys
from machine import Pin, I2C
from bmp085 import BMP180
i2c = I2C()
#i2c = I2C(scl=Pin(22), sda=Pin(23), freq=10000)
bmp = BMP085(i2c)
bmp.oversample = 2
bmp.sealevel = 101325
# WiFi connection information
WIFI_SSID = ''
WIFI_PASSWORD = ''
# turn off the WiFi Access Point
ap_if = network.WLAN(network.AP_IF)
ap_if.active(False)
# connect the device to the WiFi network
wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect(WIFI_SSID, WIFI_PASSWORD)
# wait until the device is connected to the WiFi network
MAX_ATTEMPTS = 20
attempt_count = 0
while not wifi.isconnected() and attempt_count < MAX_ATTEMPTS:
attempt_count += 1
time.sleep(1)
if attempt_count == MAX_ATTEMPTS:
print('could not connect to the WiFi network')
sys.exit()
# Cliente MQTT aleatorio
random_num = int.from_bytes(os.urandom(3), 'little')
mqtt_client_id = bytes('client_'+str(random_num), 'utf-8')
# conectar con el BROKER CONECTATE-GT usando TCP no seguro (puerto 1883)
#
# Para usar una conexión segura (encriptada) con TLS:
# establece el parámetro de inicializador MQTTClient a "ssl = True"
# Advertencia: una conexión segura usa aproximadamente 9k bytes de la pila
# (aproximadamente 1/4 de la pila de micropython en la plataforma ESPXX)
MQTT_URL = b'galiot.galileo.edu'
MQTT_USER = b'node' #cambiar el node
MQTT_TOPIC = b'temp'
client = MQTTClient(client_id=mqtt_client_id, server=MQTT_URL,
ssl=False)
print('conectado al servidor MQTT')
try:
client.connect()
except Exception as e:
print('no se pudo conectar al servidor MQTT {}{}'.format(type(e).__name__, e))
sys.exit()
mqtt_feedname = bytes('/{:s}/{:s}'.format(MQTT_USER, MQTT_TOPIC), 'utf-8')
PUBLISH_PERIOD_IN_SEC = 3
while True:
try:
temp = bmp.temperature
presion = bmp.pressure
altitude = bmp.altitude
print(temp, presion, altitude)
temp = bme.temperature
client.publish(mqtt_feedname,bytes(str(temp), 'utf-8'),qos=0)
time.sleep(PUBLISH_PERIOD_IN_SEC)
except KeyboardInterrupt:
print('Ctrl-C pressed...exiting')
client.disconnect()
sys.exit()