60 lines
1.6 KiB
Python
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()
|