Skip to content

Commit

Permalink
Merge pull request #20 from RichardA1/patch-1
Browse files Browse the repository at this point in the history
Example for using miniMQTT with the PyPortal
  • Loading branch information
brentru authored Jan 31, 2020
2 parents 76f0e17 + ae5ac78 commit eb0c466
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions examples/minimqtt_pub_sub_pyportal
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import time
from adafruit_esp32spi import adafruit_esp32spi_wifimanager
import adafruit_esp32spi.adafruit_esp32spi_socket as socket
from adafruit_minimqtt import MQTT
import adafruit_pyportal

pyportal = adafruit_pyportal.PyPortal()

### WiFi ###

# Get wifi details and more from a secrets.py file
try:
from secrets import secrets
except ImportError:
print("WiFi secrets are kept in secrets.py, please add them there!")
raise

wifi = adafruit_esp32spi_wifimanager.ESPSPI_WiFiManager(pyportal._esp,
secrets, None)

# ------------- MQTT Topic Setup ------------- #
mqtt_topic = 'test/topic'

### Code ###
# Define callback methods which are called when events occur
# pylint: disable=unused-argument, redefined-outer-name
def connected(client, userdata, flags, rc):
# This function will be called when the client is connected
# successfully to the broker.
print('Subscribing to %s' % (mqtt_topic))
client.subscribe(mqtt_topic)

def disconnected(client, userdata, rc):
# This method is called when the client is disconnected
print('Disconnected from MQTT Broker!')

def message(client, topic, message):
"""Method callled when a client's subscribed feed has a new
value.
:param str topic: The topic of the feed with a new value.
:param str message: The new value
"""
print('New message on topic {0}: {1}'.format(topic, message))

# Connect to WiFi
wifi.connect()

# Set up a MiniMQTT Client
mqtt_client = MQTT(socket,
broker=secrets['broker'],
username=secrets['user'],
password=secrets['pass'],
is_ssl=False,
network_manager=wifi)

# Setup the callback methods above
mqtt_client.on_connect = connected
mqtt_client.on_disconnect = disconnected
mqtt_client.on_message = message

# Connect the client to the MQTT broker.
mqtt_client.connect()

photocell_val = 0
while True:
# Poll the message queue
mqtt_client.loop()

# Send a new message
print('Sending photocell value: %d' % photocell_val)
mqtt_client.publish(mqtt_topic, photocell_val)
photocell_val += 1
time.sleep(1)

0 comments on commit eb0c466

Please sign in to comment.