-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Description
My code
import time
import machine
import network
import ujson
from simple1 import MQTTClient
SSID = b'Exxxye'
PASS = b'8xxx766'
CLIENT_ID = b'ixxxxxxxxxxxx6eb63'
AWS_ENDPOINT = b'xxxxx-1.amazonaws.com'
PUB_TOPIC = b'temperature'
SUB_TOPIC = b'temperature'
with open('/pri.der', 'rb') as f:
DEV_KEY = f.read()
with open('/cert.der', 'rb') as f:
DEV_CRT = f.read()
light = machine.Pin("LED", machine.Pin.OUT)
light.off()
def wifi_connect():
print('Connecting to wifi...')
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PASS)
while wlan.isconnected() == False:
light.on()
print('Waiting for connection...')
time.sleep(0.5)
light.off()
time.sleep(0.5)
print('Connection details: %s' % str(wlan.ifconfig()))
def mqtt_subscribe_callback(topic, msg):
print("Received topic: %s message: %s" % (topic, msg))
if topic == SUB_TOPIC:
mesg = ujson.loads(msg)
if 'state' in mesg.keys():
if mesg['state'] == 'on' or mesg['state'] == 'ON' or mesg['state'] == 'On':
light.on()
print('Light is ON')
else:
light.off()
print('Light is OFF')
def get_rpi_temperature():
sensor = machine.ADC(4)
voltage = sensor.read_u16() * (3.3 / 65535)
temperature = 27 - (voltage - 0.706) / 0.001721
return temperature
wifi_connect()
mqtt = MQTTClient(
client_id=CLIENT_ID,
server=AWS_ENDPOINT,
port=8883,
keepalive=120,
ssl=True,
ssl_params={'key':DEV_KEY, 'cert':DEV_CRT, 'server_side':False})
mqtt.connect()
mqtt.set_callback(mqtt_subscribe_callback)
mqtt.subscribe(SUB_TOPIC)
while True:
message = b'{"temperature":%s, "temperature_unit":"Degrees Celsius"}' % get_rpi_temperature()
print('Publishing topic %s message %s' % (PUB_TOPIC, message))
mqtt.publish(topic=PUB_TOPIC, msg=message, qos=1)
# Check subscriptions for message
mqtt.check_msg()
time.sleep(5)
My error code:
Connecting to wifi...
Connection details: ('192.168.x.xx', '255.255.255.0', '192.168.xx.xx', '192.168.xx.xx')
dbug-msg: 0x9 b'04:4d:51:54:54:04:02:00:78'
dbug-resp: b''
Traceback (most recent call last):
File "", line 81, in
File "simple1.py", line 92, in connect
IndexError: bytes index out of range
please someone help me on this..i tried everything
Metadata
Metadata
Assignees
Labels
No labels