# 필요한 모듈 임포트
from machine import Pin
import bluetooth
from ble_simple_peripheral import BLESimplePeripheral
import utime
# BLE 객체 생성
ble = bluetooth.BLE()
# BLE 간단한 주변장치 클래스 인스턴스 생성
sp = BLESimplePeripheral(ble)
# 온보드 LED 설정
led_onboard = Pin("LED", Pin.OUT)
led_onboard.value(1) # 연결 확인을 위해 LED 켜기
# LED 핀 설정 (예: GPIO 14, 15, 16번 핀에 LED 연결)
led_red = Pin(27, Pin.OUT)
led_blue = Pin(18, Pin.OUT)
led_yellow = Pin(22, Pin.OUT)
# LED 상태 변수 초기화
led_states = {
'red': 0,
'blue': 0,
'yellow': 0
}
# 수신한 데이터를 처리하는 콜백 함수 정의
def on_rx(data):
print("Data received:", data)
command = data.decode('utf-8').strip() # 데이터를 문자열로 디코딩하고 공백 제거
if command in led_states:
# 해당 LED의 상태를 토글
led_states[command] = 1 - led_states[command]
# LED 상태 적용
led_red.value(led_states['red'])
led_blue.value(led_states['blue'])
led_yellow.value(led_states['yellow'])
# 문자열 포매팅 수정
led_status = 'ON' if led_states[command] else 'OFF'
print(command.upper() + " LED " + led_status)
elif command == 'off':
# 모든 LED 끄기
for key in led_states:
led_states[key] = 0
led_red.value(0)
led_blue.value(0)
led_yellow.value(0)
print("All LEDs OFF")
else:
print("Unknown command")
# 메인 루프
while True:
if sp.is_connected():
sp.on_write(on_rx)
utime.sleep(0.1) # CPU 사용량을 줄이기 위해 약간의 딜레이 추가
추가 코드 업로드
피웹2. 피코 웹 데이터베이스 제어
피웹3. 피코 웹 블루투스 제어
# Source: electrocredible.com , Language: MicroPython
# Import necessary modules
import machine
import bluetooth
from ble_simple_peripheral import BLESimplePeripheral
# Create a Bluetooth Low Energy (BLE) object
ble = bluetooth.BLE()
# Create an instance of the BLESimplePeripheral class with the BLE object
sp = BLESimplePeripheral(ble)
# Create a Pin object for the onboard LED, configure it as an output
led = machine.Pin("LED", machine.Pin.OUT)
# Initialize the LED state to 0 (off)
led_state = 0
led.on()
# Define a callback function to handle received data
def on_rx(data):
print("Data received: ", data) # Print the received data
sp.send(data)
if data == b'a': # Check if the received data is "toggle"
led.on() # LED 켜기
print("aa")
if data == b'b': # Check if the received data is "toggle"
led.off() # LED 켜기
print("bb")
# Start an infinite loop
while True:
if sp.is_connected(): # Check if a BLE connection is established
sp.on_write(on_rx) # Set the callback function for data reception
제어 사이트 예시
https://671510d7ee5caa0d829ed2ad--dancing-trifle-f25156.netlify.app/