#-----------------------------------------------------------------------------
# WEB SERVER TO CONTROL 2 LEDs
# ============================
#
#------------------------------------------------------------------------------
from machine import Pin
import network
import socket
import utime
import ubinascii
import binascii
import rp2
from umqtt.simple import MQTTClient
import time
rp2.country('DE')
ssid = "IOT1_GSSO";
psw = "iotWifi23"
# ########################## Method definitions ###########################
# Check air-interface for avalable Wifi-networks
def analyse():
global wlan
wlan = network.WLAN(network.STA_IF)
print("---- scanning for available WiFi AccsessPoints----------")
networks = wlan.scan() # list with tuples (ssid, bssid, channel, RSSI, security, hidden)
networks.sort(key=lambda x:x[3],reverse=True) # sorted on RSSI (3)
for i, w in enumerate(networks):
print(i+1, w[0].decode(), binascii.hexlify(w[1]).decode(), w[2], w[3],"dBm", w[4], w[5])
print("--------------------------------------------------------")
#
# This function attempts to connect to Wi-Fi
#
def connect():
global wlan
wlan = network.WLAN(network.STA_IF)
wlan.config(hostname='PicoW_LT0')
wlan.active(True)
wlan.connect("IOT1_GSSO", "iotWifi23")
while wlan.isconnected() == False:
print("Waiting to be connected")
utime.sleep(1)
print("...Connected to WiFi!", ssid)
def wifi_net_info():
##################### Info about Network ################
print("--------------------HOST (Pico)--------------------------")
ssid= network.WLAN().config('ssid')
print("ssid", ssid)
hostname= network.WLAN().config('hostname')
print("hostname", hostname)
print("ip: ",wlan.ifconfig()[0])
print("subnetMask: ",wlan.ifconfig()[1])
mac = ubinascii.hexlify(network.WLAN().config('mac'),':').decode()
print("mac: ",mac)
print("--------------------------------------------------------")
print("gateway: ",wlan.ifconfig()[2])
print("dns: ",wlan.ifconfig()[3])
print("--------------------------------------------------------")
# analyse environment for wifi signals
analyse()
# Connect to local Wi-Fi
connect()
# printf information about network
wifi_net_info()
addr=socket.getaddrinfo("0.0.0.0",80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)
mqtt_server = 'broker.hivemq.com'
client_id = 'clientId-3dhmpSG0Mi'
topic_pub = b'gsso/message_leon'
topic_msg = b'TEST!'
def mqtt_connect():
client = MQTTClient(client_id, mqtt_server, keepalive=3600)
client.connect()
print('Connected to %s MQTT Broker'%(mqtt_server))
return client
def reconnect():
print('Failed to connect to the MQTT Broker. Reconnecting...')
time.sleep(5)
machine.reset()
try:
client = mqtt_connect()
except OSError as e:
reconnect()
i = 0
while True:
topic_msg = b'TEST! '+str(i)
client.publish(topic_pub, topic_msg)
print('Message sent!')
time.sleep(1)
i = i+1
else:
pass