Files
Micropython-IOT/main.py

60 lines
1.6 KiB
Python

import network
import json
import time
from machine import Pin
import aabiot.LED
import Device
import aabiot
if aabiot.DoubleReset():
print("Double Reset - Starting AP")
AP()
#import settings
settings=json.loads(''.join(open('settings.json').readlines()))
LED=aabiot.LED.LED()
def netstop():
n=network.WLAN(network.STA_IF)
n.active(False)
n=network.WLAN(network.AP_IF)
n.active(False)
def STA():
"""Connects Board as Client to WiFi-Network. LED.Blinks 5 times short if successful and then displays the IP address in morse code"""
sta=network.WLAN(network.STA_IF)
if sta.isconnected():
LED.Blink(5)
return True
sta.active(True)
if ('NetMask') in settings and 'DNS' in settings and 'Gateway' in settings and 'IP' in settings:
print("Static configuration active")
sta.ifconfig((settings["IP"],settings["NetMask"],settings["Gateway"],settings["DNS"]))
else:
print("DHCP active")
sta.connect(settings['ssid'],settings['password'])
timeout=0
while timeout < 30:
if sta.isconnected():
LED.Morse('ip %s'%sta.ifconfig()[0],1)
return True
else:
LED.Blink(1,.05,.95)
timeout += 1
print("Time waiting: %s sec"%timeout)
sta.active(False)
return False
def AP():
"""Provides Access point with settings in settings.json. LED blinks 'AP' in morse code on success"""
ap=network.WLAN(network.AP_IF)
ap.active(True)
ap.config(essid=settings['AP-ssid'],password=settings['AP-password'])
print("AP configured")
LED.Morse ('AP')
netstop()
if STA() != True:
AP()
Device.run()