raspberry pi pico wを使ってJSTを取得するプログラムを書いた。
本来の目的として、raspberry pi pico w -> ssh で Amazon Lightsailにアクセスし、DBにデータを突っ込む!っということをしたかったのだが、raspberry pi picoにはOSが無いことをすっかり忘れてしまっていた。
raspberry pi picoからsshを用いて他の環境へアクセスはできない。。。httpサーバーにはなるので、httpリクエストを捌くことはできるが、他の環境へアクセスができないと思っています。
GPTさんもそのような回答。。。(以前にも調べたができないことをすっかり忘れていた)
せっかく作ったので以下を記載。
import network
import usocket as socket
import ustruct as struct
import utime
from machine import RTC
import time
def connect_wifi(ssid, password):
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
print("testssss")
wlan.connect(ssid, password)
while not wlan.isconnected():
pass
print('Wi-Fi connected:', wlan.ifconfig())
def get_ntp_time():
NTP_DELTA = 2208988800
host = "ntp.nict.jp"
addr = socket.getaddrinfo(host, 123)[0][-1]
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.settimeout(1)
msg = b'\x1b' + 47 * b'\0'
s.sendto(msg, addr)
msg, _ = s.recvfrom(48)
s.close()
val = struct.unpack("!I", msg[40:44])[0]
print(val)
return val - NTP_DELTA + 9*60*60
def set_time():
t = get_ntp_time()
tm = utime.localtime(t)
rtc = RTC()
rtc.datetime((tm[0], tm[1], tm[2], tm[6], tm[3], tm[4], tm[5], 0))
print('現在時刻: UTC', rtc.datetime())
参考にさせていただいたページ
Pi Pico W を単体起動後、NTPサーバーに接続して時刻を取得 – FRONT
utime -- 時間関連の関数 — MicroPython 1.13 ドキュメント
utime -- 時間関連の関数 — MicroPython 1.13 ドキュメント
やりたいことを実現するには、大人しくRaspberry piかRaspberry pi Zero 2 Wを使うとするか。。。