ラズパイpico 便利サンプルコード集

GPIO(I/OポートのIN /OUT、High/Low、PullUP/Down)
GPIOやI/Oポート、PullUp/Downってなに?←そのうち記事を書きます!

from machine import Pin

led = Pin("LED", machine.Pin.OUT) # ラズパイ動作確認用

GP16 = Pin(16, Pin.OUT)# GP16を出力端子()に設定
GP28 = Pin(28, Pin.IN, Pin.PULL_DOWN)  # GP28を入力端子()に設定

GP16.value(1) # LED ON
GP16.value(0) # LED OFF

本文とCtrl+Cで中断

def loop():
    while True:
        #ここに本文を記載
        time.sleep(0.2)  #0.2secの待ち


#プログラムスタート
if __name__ == '__main__':     #プログラムスタート
   try:
        loop()
    except KeyboardInterrupt:  # Ctrl+C で中断処理
        destroy()

ウェイトタイマー処理()

import time

time.sleep(0.2)  #0.2secの待ち

割込処理(ボタン入力)

from machine import Pin

GP16 = Pin(16, Pin.OUT)# GP16を出力端子()に設定

# スイッチの押下を割り込み
def button_press(pin):
    GP16.value(1) # GP16 High

GP28 = Pin(28, Pin.IN, Pin.PULL_DOWN)  # GP28を入力端子()に設定

# 割り込み(GP28がLowになったら実行)
GP28_PIR.irq(trigger=Pin.IRQ_FALLING, handler=log_button_press)

割込処理(タイマー)

import time

#タイマー割り込み
timer1 = machine.Timer()
timer2 = machine.Timer()

timer1.init(period=300000, mode=machine.Timer.ONE_SHOT, callback=OFF_led) # 300 秒後に1回だけ
timer2.init(period=300000, mode=machine.Timer.PERIODIC, callback=OFF_led) # 300 秒毎に繰り返す

Wi-fi接続(タイマー)

import network
import socket
import ntptime
import time
from machine import Pin, RTC

# Pico WをWi-Fiに接続
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
SSID = 'ssid' #家のルーターのssid
PASSWORD = 'pass' #家のルーターのパスワード
wlan.connect(SSID, PASSWORD) #SSID,PASS

# 静的IP設定
STATIC_IP = "192.168.11.65"  # 使用したいIPアドレス
SUBNET_MASK = "255.255.255.0"  # サブネットマスク
GATEWAY = "192.168.11.1"  # ゲートウェイ(通常はルーターのIP)
DNS_SERVER = "8.8.8.8"   # DNSサーバー(GoogleのパブリックDNS)

# 静的IPアドレスを設定
wlan.ifconfig((STATIC_IP, SUBNET_MASK, GATEWAY, DNS_SERVER))

# Wi-Fi接続の確認
max_wait = 10
while max_wait > 0:
    if wlan.isconnected():
        break
    print("Wi-Fi接続中...")
    time.sleep(1)
    max_wait -= 1

if not wlan.isconnected():
    print("Wi-Fi接続失敗")
    raise RuntimeError("ネットワークに接続できません")
    
print("Wi-Fi 接続完了!")
print("IPアドレス:", wlan.ifconfig()[0])

def serve():
	addr = ("0.0.0.0", 80)
	s = socket.socket()
	s.bind(addr)
	s.listen(5)
	print("Webサーバー起動! ブラウザでアクセス:", wlan.ifconfig()[0])
	
	while True:
	    cl, addr = s.accept()
	    print("クライアント接続:", addr)
	
	    request = cl.recv(1024).decode("utf-8")
	    print("リクエスト:\n", request)
	
	    # LED制御処理
	    if "GET /led/on" in request:
	        led.value(1)
	    elif "GET /led/off" in request:
	        led.value(0)
	
	    # HTMLレスポンスを作成
	    response = """\
	HTTP/1.1 200 OK
	Content-Type: text/html
	
	<!DOCTYPE html>
	<html>
	<head><title>Pico W Web Server</title></head>
	<body>
	<h1>Raspberry Pi Pico W</h1>
	<p>LED Control:</p>
	<a href="/led/on"><button>LED ON</button></a>
	<a href="/led/off"><button>LED OFF</button></a>
	</body>
	</html>
	"""
	    cl.send(response)
	    cl.close()
	
# サーバーを実行
serve()

内臓温度センサーを取得

from picozero import pico_temp_sensor

temperature = pico_temp_sensor.temp # 内臓温度センサーから温度データを取得する

ランニング

音楽

釣り

筋トレ

ゴルフ

登山

キャンプ

旅行

剣道

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

趣味で生きていけたらを夢見る中年サラリーマン。
なお、趣味>仕事のため出世の見込みはない模様。

目次