I've simplified my code down to the following (the server is "nc -k -l -p 2939").
boot.py
Code: Select all
import machine
import network
SSID='...'
PASS='...'
def connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
wlan.connect(SSID, PASS)
while not wlan.isconnected():
pass
return wlan
def disconnect(wlan):
wlan.disconnect()
wlan.active(False)
wlan = connect()
Code: Select all
import machine
import time
import socket
server_addr = socket.getaddrinfo('192.168.5.120', 2939)[0][-1]
if wlan.isconnected():
try:
s = socket.socket()
s.connect(server_addr)
bytes_sent = s.send(bytes('TEST\n', 'utf8'))
print("{} bytes sent".format(bytes_sent))
except OSError as e:
print(e)
finally:
s.close()
# Why do I need a sleep here?
time.sleep(5)
# If we have just been powered up, wait 30 seconds in case we want to do a firmware upgrade.
if machine.reset_cause() != machine.DEEPSLEEP_RESET:
time.sleep(30)
print("going to sleep")
disconnect(wlan)
machine.deepsleep(10 * 1000) # Deep sleep for 10 seconds