Raspberry Pi Pico Wの無線LANモジュールをアクセスポイントとして使って機器を操作します。

Raspberry Pi Pico Wの無線LANモジュールをアクセスポイントとして使います。
スマホなどからWi-Fi接続先としてRaspberry Pi Pico Wのアクセスポイントに接続します。接続後に機器を操作します。
今回はサーボモーターを動かして本体LEDを点滅させます。
Raspberry Pi Pico W ➕ スマホ ➕ サーボモーター
配線図
実際の配線
MicroPythonプログラム
import network
import machine
from machine import PWM
from machine import Pin
from time import sleep
led= machine.Pin('LED', machine.Pin.OUT)
#Pin param = servo GPIO pin number
pwm = PWM(machine.Pin(16))
ssid = 'Lights-Out'
password = 'sleeptime'
ap = network.WLAN(network.AP_IF)
ap.config(essid=ssid, password=password)
ap.active(True)
while ap.active() == False:
pass
print('Connection successful')
print(ap.ifconfig())
def rotateServo ():
pwm.freq(50)
pwm.duty_ns(2000000)
sleep(0.5)
pwm.duty_ns(1500000)
led.high()
sleep( 1 )
led.low()
#ap.status is a blank array until someone connects, then it will have one entry
#when ap.status = true, then it will trigger rotateServo()
# then it will shut itself off to kick the user off the network,
# allowing the device to reconnect to its usual network
while True:
try:
if ap.status('stations'):
print('client connected')
rotateServo()
sleep(5)
ap.active(False)
sleep(2)
ap.active(True)
except OSError as e:
print('Connection closed')
import network
import machine
from machine import PWM
from machine import Pin
from time import sleep
led= machine.Pin('LED', machine.Pin.OUT)
#Pin param = servo GPIO pin number
pwm = PWM(machine.Pin(16))
ssid = 'Lights-Out'
password = 'sleeptime'
ap = network.WLAN(network.AP_IF)
ap.config(essid=ssid, password=password)
ap.active(True)
while ap.active() == False:
pass
print('Connection successful')
print(ap.ifconfig())
def rotateServo ():
pwm.freq(50)
pwm.duty_ns(2000000)
sleep(0.5)
pwm.duty_ns(1500000)
led.high()
sleep( 1 )
led.low()
#ap.status is a blank array until someone connects, then it will have one entry
#when ap.status = true, then it will trigger rotateServo()
# then it will shut itself off to kick the user off the network,
# allowing the device to reconnect to its usual network
while True:
try:
if ap.status('stations'):
print('client connected')
rotateServo()
sleep(5)
ap.active(False)
sleep(2)
ap.active(True)
except OSError as e:
print('Connection closed')
import network import machine from machine import PWM from machine import Pin from time import sleep led= machine.Pin('LED', machine.Pin.OUT) #Pin param = servo GPIO pin number pwm = PWM(machine.Pin(16)) ssid = 'Lights-Out' password = 'sleeptime' ap = network.WLAN(network.AP_IF) ap.config(essid=ssid, password=password) ap.active(True) while ap.active() == False: pass print('Connection successful') print(ap.ifconfig()) def rotateServo (): pwm.freq(50) pwm.duty_ns(2000000) sleep(0.5) pwm.duty_ns(1500000) led.high() sleep( 1 ) led.low() #ap.status is a blank array until someone connects, then it will have one entry #when ap.status = true, then it will trigger rotateServo() # then it will shut itself off to kick the user off the network, # allowing the device to reconnect to its usual network while True: try: if ap.status('stations'): print('client connected') rotateServo() sleep(5) ap.active(False) sleep(2) ap.active(True) except OSError as e: print('Connection closed')
実行
その後、アクセスポイントのパスワードは他からは見えなくなります。アクセスポイントとパスワードを知っていいる人だけが使える機器がつくれます。