Python × Pico 電子工作 | #16 Pico W で IoT データを送ろう

🚫 この単元は Pico W / Pico WH 専用です

無線機能のない「Pico」「Pico H」では動きません。まだ #15「Pico W で WiFi につなごう」 を済ませていない方は先にそちらをやってください。本単元は #15 の WiFi 接続 + #10 の DHT11 温湿度センサーを組み合わせます。

前回 #15 で Pico W が WiFi に繋がり、IP アドレスを取得 できるようになりました。しかし 「IP を取得しただけ」では実用ロボットにはなりません。今回はいよいよ 「インターネットの向こうのサーバにデータを送る・受け取る」を体験します。「Pico W + 温湿度センサー + クラウドサービス」 を組み合わせて、本物の IoT デバイス(部屋の温湿度を 24 時間クラウドに記録する装置)を作りましょう。

今回は 「Ambient(アンビエント)」 という国内の無料 IoT データ可視化サービスを使います。「Pico W から HTTP POST で温度を送る → Ambient のサイトで折れ線グラフが自動描画」 という流れで、「物理世界 → ネット → グラフ」 の魔法の瞬間を体感できます。1 つのチャンネルで 8 つの数値・最大 3,000 件 / 日まで無料。学校・個人趣味なら十分すぎる容量です。

  • HTTP プロトコルの基本(GET / POST / レスポンスコード)
  • JSON(JavaScript Object Notation)形式でデータをやり取りする方法
  • REST API の概念(URL に動詞・パラメータを乗せて通信する設計思想)
  • Ambient での チャンネル作成・writeKey/readKey の使い分け
  • urequests.post()(MicroPython 版 requests)で JSON ボディを送る方法
  • 30 秒ごとに温度を送信する 「ロギング」パターン
  • 複数センサーをまとめて 1 回の POST で 8 系列まで送るテクニック
  • レート制限(短時間に大量送信すると弾かれる)の理由と対処

今回は PycoBlocks(MicroPythonモード) の 「Pico W」カテゴリ にある「HTTP POST」「HTTP GET」ブロックと、「センサー」カテゴリ の 「DHT11 読み取り」「アナログ読み取り」を組み合わせます。SSID/パスワード/チャンネル ID/書き込みキーの 4 つの値を書き換えるだけで、あなたの部屋の温度がインターネット上のグラフに反映される瞬間が訪れます。

Pico W で IoT データを送ろう

HTTP プロトコル:Web の世界の共通言語

HTTP(HyperText Transfer Protocol) は Web ブラウザとサーバの会話ルールです。あなたが普段スマホで「Google を開く」「Twitter に投稿する」「YouTube を見る」のも、全部裏側では HTTP(または HTTPS)が動いています。「クライアント(=スマホ / Pico W)」が 「サーバ(=ネット上のコンピュータ)」に「リクエスト」を送り、サーバが 「レスポンス」を返す ── これが全ての基本形。

Pico W から Ambient クラウドへ HTTP POST で温度を送り、グラフ化されるまでのデータフロー図
IoT データの流れ:Pico W(クライアント)が DHT11 で温度を測定 → HTTP POST で JSON を Ambient(サーバ)へ送信 → Ambient が折れ線グラフを自動描画 → ブラウザで可視化。「物理世界 → ネット → グラフ」の一連の流れを 1 枚に示した。
メソッド動詞の意味用途本記事での例
GET取得するサーバから情報を読み出す(URL にパラメータ)Ambient から保存済みデータを読み出す(演習3)
POST送り込むサーバに新しいデータを送る(本文に JSON 等)Pico W から温度値を送る(ステップ1・2 / 演習2)
PUT置き換える既存リソースを丸ごと更新本記事では使わない(REST API で頻出)
DELETE削除するリソースを消す本記事では使わない

レスポンスコード(サーバの返事の「ヘッダ番号」)の代表例も覚えておきましょう:

  • 200 OK:成功(一番見たい返事)
  • 400 Bad Request:リクエストが間違っている(JSON が壊れてる等)
  • 401 Unauthorized:認証エラー(writeKey が違う)
  • 404 Not Found:URL が間違っている(チャンネル ID 等)
  • 429 Too Many Requests:送りすぎ(レート制限・後述)
  • 500 Internal Server Error:サーバ側の不具合
「200 が返れば成功」 と覚えておけば、最初はそれで十分です。

JSON:データの「世界共通フォーマット」

JSON(JavaScript Object Notation) は 「人間にも読める辞書形式のテキスト」 で、ネット上でデータをやり取りする 事実上の世界標準 です。Python の dict(辞書) と見た目が非常に似ていて、「key: value のペアを { } で囲む」だけ。Ambient に温度を送るときも、データは JSON 形式で渡します。

# JSON の最小例(temperature だけ送る)
{"writeKey": "0123456789ABCDEF", "d1": 25.3}

# 複数センサーの値(温度 d1・湿度 d2・明るさ d3)
{"writeKey": "0123456789ABCDEF", "d1": 25.3, "d2": 60, "d3": 1200}

# 文字列は必ずダブルクォート ""(シングルクォート ' は不可)
{"writeKey": "0123456789ABCDEF", "comment": "test", "d1": 25.3}

# Python の dict と JSON の対応
# Python: {"key": "value", "num": 42, "ok": True}
# JSON  : {"key": "value", "num": 42, "ok": true}   ← True ではなく true
# JSON  : {"key": "value", "num": 42, "ok": null}   ← None ではなく null

📝 JSON を書くときの 4 つの注意点

  • 文字列はダブルクォート "" 必須(Python のシングルクォートはダメ)
  • 真偽値は true / false(Python の True/False ではない・小文字)
  • 「ない」は null(Python の None ではない)
  • 末尾カンマ , を付けるとエラーになる(Python の dict は OK だが JSON は NG)
本記事の 「HTTP POST」 ブロックの「送るデータ」入力に f文字列で組み立てた JSON 文字列 を渡せば自動的に送信されます。

Ambient の準備:チャンネル ID と書き込みキーを取得しよう

Ambient(アンビエント) は 2016 年から続いている国内 IoT データ可視化サービスで、「IoT 教育 + 個人開発」に強く支持されています。アカウント作成も無料・データ送信も無料で、「1 アカウントで 8 チャンネル・1 チャンネルで 8 系列・3,000 件 / 日」まで使えます。URL は https://ambidata.io/。

  1. https://ambidata.io/ にアクセスし、画面右上の「ユーザー登録」からメールアドレスを登録します。登録メールが届いたら本文中のリンクをクリックして本登録完了。
  2. ログイン後、「チャンネルを作る」 ボタンで新規チャンネルを作成。チャンネル名は何でも OK(例:「ピコ温度ロガー」)。
  3. 作成されたチャンネルの設定画面で 「チャンネル ID」(5〜7 桁の数字)と「ライトキー(writeKey)」(16 桁の英数字)をメモ。後述のコード中の YOUR_CH_ID / YOUR_WRITE_KEY を書き換えるだけで動きます。
  4. 同じ画面に 「リードキー(readKey)」もあるので、演習3 で使う場合はそれもメモ。

API の URL:

  • POST(送信):https://ambidata.io/api/v2/channels/YOUR_CH_ID/data
  • GET(取得):https://ambidata.io/api/v2/channels/YOUR_CH_ID/data?readKey=YOUR_READ_KEY&n=1(最新 n 件取得)
writeKey はチャンネルに 「データを書く権利」、readKey はチャンネルに 「データを読む権利」を表します。writeKey が漏れると勝手にデータを送り込まれるので、writeKey は #15 で学んだ secrets.py 分離パターンで管理しましょう。

⚠️ レート制限:5 秒に 1 回・3,000 件 / 日

Ambient は 「5 秒に 1 回まで」のレート制限があります。「5 秒以内に 2 回送る」と HTTP 429(Too Many Requests) が返り、データが捨てられます。本記事では 「30 秒ごとの送信」 を例にしますが、「温湿度の変化を観察する」用途なら 1 分〜10 分間隔で十分。「3,000 件 / 日」 の上限は 「30 秒ごと送信なら 24 時間 = 2,880 件」でちょうど収まります。

配線:Pico W + DHT11 温湿度センサー(#10 と同じ)

今回のステップ1・2 は 「#10 で使った DHT11 + Pico W」 の構成です。DHT11(または DHT22)の データピンを GP16 に、VCC を 3V3・GND を GND に繋ぐだけ。WiFi は無線なので追加配線は不要です。演習2 で 明るさセンサー(#11 で使った CdS)を ADC0(GP26)に追加して 3 系列同時送信します。

Pico W に DHT11 温湿度センサーを接続した配線図
ステップ1・2 の配線:Pico W + DHT11(データ=GP16・VCC=3V3・GND=GND)。#10 の温湿度センサー回路と完全に同じです。WiFi は無線なので追加配線不要・USB 給電のみで動きます。(実体配線図は Fritzing の部品画像をもとに作図・CC BY-SA 3.0)

ステップ1:温度を 1 回だけ Ambient に送信してみよう

まずは 「電源 ON → WiFi 接続 → 温度を 1 回読み取り → Ambient に POST」 の最短コースから。HTTP POST ブロックの 「URL」 に https://ambidata.io/api/v2/channels/YOUR_CH_ID/data(YOUR_CH_ID を自分のチャンネル ID に書き換え)を入れ、「送るデータ」 には f文字列で組み立てた JSON 文字列をはめ込みます。送信成功すれば Ambient のダッシュボードに新しい点が打たれ、グラフが描かれるはずです。

温度を 1 回 Ambient に POST するブロック
ブロック構成:Pico W で WiFi に接続 → DHT11 読み取り(温度 temp・湿度 humi)→ HTTP POST URL(Ambient のチャンネル)に f文字列 {"writeKey":"...","d1":{temp}} を送信 → レスポンス resp を print。Ambient のダッシュボードに最初の点が打たれます。
from machine import Pin
from dht import DHT11
import utime
import network, utime
_wlan = network.WLAN(network.STA_IF)
_wlan.active(True)
_wlan.connect('your-ssid', 'your-password')
while not _wlan.isconnected():
    utime.sleep(0.5)
_dht = DHT11(Pin(16))
_dht.measure()
temp = _dht.temperature()
humi = _dht.humidity()
import urequests
_r = urequests.post('https://ambidata.io/api/v2/channels/YOUR_CH_ID/data', data=f'{{"writeKey":"YOUR_WRITE_KEY","d1":{temp}}}')
resp = _r.text
_r.close()
print(resp)

動作確認のコツ:

  1. シェルに 「(空文字または短いレスポンス)」が出れば成功。Ambient は POST 成功時は本文ほぼ空(HTTP 200)を返します。
  2. Ambient の Web 画面でチャンネルを開き、「グラフ」タブを見ると 「d1」 に新しい点が 1 つ追加されているはず。
  3. 失敗時はシェルに 「OSError: -2」(接続不可)や「writeKey is wrong」(401)などが出ます。writeKey/CH_ID の打ち間違いが 9 割の原因です。

ステップ2:30 秒ごとに温度を送り続けよう(ロギング)

ステップ1 を 「ずっと繰り返す」でループ化し、「30 秒に 1 回 Ambient に送信」する データロガー にします。1 日 = 2,880 件 なので、Ambient の 「3,000 件 / 日」 制限ぎりぎりで収まる設定。ロガーとして 24 時間動かせば 「自宅の温度の 1 日推移グラフ」が手に入ります。「PC を起動せず、Pico W だけ電源 ON で温度監視ロボット完成」です。

30秒ごとに温度を Ambient に POST するブロック
ブロック構成:Pico W で WiFi に接続 → ずっと繰り返す → DHT11 読み取り → HTTP POST で温度送信 → 30 秒待つ → 戻る。Ambient の 「d1」 系列に折れ線グラフが描かれていきます。
from machine import Pin
from dht import DHT11
import utime
import network, utime
_wlan = network.WLAN(network.STA_IF)
_wlan.active(True)
_wlan.connect('your-ssid', 'your-password')
while not _wlan.isconnected():
    utime.sleep(0.5)
while True:
    _dht = DHT11(Pin(16))
    _dht.measure()
    temp = _dht.temperature()
    humi = _dht.humidity()
    import urequests
    _r = urequests.post('https://ambidata.io/api/v2/channels/YOUR_CH_ID/data', data=f'{{"writeKey":"YOUR_WRITE_KEY","d1":{temp}}}')
    resp = _r.text
    _r.close()
    utime.sleep(30)

動作確認のコツ:実行後 1 分 = 2 点、10 分 = 20 点とグラフが伸びていくのが Ambient の Web で確認できます。ブラウザを開きっぱなしにすれば自動更新されるので、「ドライヤーで Pico W を温める → グラフが上がる」「保冷剤を当てる → グラフが下がる」といったリアルタイム実験が楽しめます。

⚠️ 送信間隔とエラー処理の注意

送信間隔を 30 秒未満にすると、Ambient のレート制限(5 秒)にぶつかります。また WiFi 接続が不安定な環境では 「OSError: -2」「ETIMEDOUT」 でプログラムが止まることがあります。本格運用では try/except でエラーを捕まえて再試行する「リトライロジック」が必要ですが、本記事では基本動作を優先して省略します。

演習課題

課題3-16-1:HTTP / JSON / REST API の計算問題

HTTP プロトコル・JSON 構造・レート制限 を計算で深く理解しましょう。

問1: HTTP リクエスト/レスポンス の構造を答えよ。「リクエスト = メソッド + URL + ヘッダ + 本文(POST のみ)」、「レスポンス = ステータスコード + ヘッダ + 本文」。POST のリクエストに本文を入れる理由と、GET でも URL クエリ(?key=value)で本文の代わりになる例を 1 つずつ挙げよ。
問2: 次の 2 つの JSON のうち、Ambient API として正しいのはどちら?間違っているほうの誤りを 3 つ以上指摘せよ。
(A) {"writeKey": "ABC", "d1": 25.3}
(B) {'writeKey': 'ABC', "d1": 25.3, "d2": True,}
問3: Ambient は 「5 秒 / 回」「3,000 件 / 日」 のレート制限がある。「1 分間隔で送信」「30 秒間隔で送信」「10 秒間隔で送信」 それぞれを 24 時間続けたとき、何件のデータが Ambient に保存されるか計算せよ。上限の 3,000 件を超える場合は 「何時間で上限に達するか」も答えよ。
問4: REST API(Representational State Transfer)の 「リソース指向」という設計思想とは何か。「URL がリソースを表す」「メソッドが操作を表す」 という観点で、「Ambient の温度データ追加」を例に説明せよ。

▶ 模範解答と解説を見る
# 問1: HTTP リクエスト/レスポンス構造
# - POST 本文に入れる理由:
#   * パスワードや個人情報を URL に書くと「ブラウザ履歴・サーバログ」に残るので危険
#   * URL は最大 2,048 文字程度の制限があるが、本文は実質無制限(巨大 JSON も送れる)
# - GET の URL クエリ例:
#   https://example.com/search?q=python&page=2  ← q=python と page=2 を「?」で送る
#   Ambient の GET: ?readKey=KEY&n=10  ← データ取得件数を URL で指定

# 問2: 正しい JSON は (A)
# (B) の誤り 3 つ以上:
#   1) シングルクォート 'writeKey' → ダブルクォート "writeKey" 必須
#   2) シングルクォート 'ABC' → ダブルクォート "ABC" 必須
#   3) Python の True → JSON の true(小文字)
#   4) 末尾カンマ ,} → ,なしの }(JSON では末尾カンマ不可)

# 問3: レート制限と日次上限の計算
# 1 分間隔: 24h * 60min = 1,440 件/日   → 3,000 件以下 OK(残り 1,560 件の余裕)
# 30 秒間隔: 24h * 60min * 2 = 2,880 件/日 → 3,000 件以下 OK(残り 120 件のみ)
# 10 秒間隔: 24h * 60min * 6 = 8,640 件/日 → 上限突破!
#   3,000 件 / (6 件/分) = 500 分 = 8 時間 20 分で上限到達
#   さらに 5 秒制限 < 10 秒なので 5秒制限ギリギリは「12 件/分 * 250 分 = 3000」で 4時間 10分で上限
# 結論: 「30 秒〜1 分間隔」が現実的な最適解

# 問4: REST API の「リソース指向」
# URL がリソース(=データの実体)を表す
#   https://ambidata.io/api/v2/channels/12345/data
#                                          ↑チャンネル12345の「データ」というリソース
# メソッドが操作を表す
#   POST   → そのリソースに「新規追加」
#   GET    → そのリソースを「読み出し」
#   PUT    → そのリソースを「丸ごと置換」
#   DELETE → そのリソースを「削除」
# つまり「URL = 名詞、メソッド = 動詞」の文法で API が成り立つ。
# Twitter API・GitHub API・Google API もみんなこの REST パターンを採用。

解説: 解説:HTTP / JSON / REST API は IoT・Web 開発・モバイルアプリ・AI API すべての共通基盤です。「URL = リソース、メソッド = 動詞、ボディ = 中身、レスポンスコード = 結果」の 4 点さえ覚えれば、Twitter・GitHub・OpenAI・Google Maps などあらゆる Web API の使い方が瞬時に分かるようになります。レート制限 はクラウド時代の必須概念で、「短時間に大量リクエストすると BAN・課金される」のはChatGPT・YouTube API・天気予報 API すべてに共通します。「IoT は短い・少量・定期的なデータを永続的に送る」という用途設計を理解して、適切な送信間隔を選ぶスキルが身につきます。

課題3-16-2:温湿度+明るさを 3 系列まとめて送ろう

Ambient の 「1 チャンネル = 8 系列まで」を活かして、3 系列(d1=温度・d2=湿度・d3=明るさ)を 1 回の POST で送信します。「POST 回数を 3 分の 1 に削減」できるので、レート制限・通信時間・電池消費すべてに有利。「複数センサーをまとめて送る」 は IoT 設計の鉄則です。

JSON の組み立ては f文字列(3 式埋め込み版)を使います。「PRE + d1 + MID1 + d2 + MID2 + d3 + POST」 の構造で {"writeKey":"...","d1":25.3,"d2":60,"d3":1200} のような完全な JSON 文字列ができあがります。

配線追加:DHT11(GP16)に加えて、明るさセンサー(CdS) を 3V3 + 10kΩ + GP26(ADC0)+ GND で分圧接続します(#11 と同じ)。DHT11(デジタル GP16)と CdS(アナログ GP26)はピンが完全分離しているので干渉しません。

▶ 模範解答と解説を見る

ブロックの組み合わせ例:

温湿度+明るさを 3 系列まとめて Ambient に POST するブロック
ブロック構成:Pico W で WiFi 接続 → ずっと繰り返す → DHT11 読み取り(temp/humi)→ アナログ読み取り GP26(light)→ HTTP POST URL に 3 変数 f文字列で組み立てた {"writeKey":"...","d1":{temp},"d2":{humi},"d3":{light}} を送信 → 30 秒待つ。Ambient のグラフが 3 本同時に動くのが見ものです。
from machine import Pin, ADC
from dht import DHT11
import utime
import network, utime
_wlan = network.WLAN(network.STA_IF)
_wlan.active(True)
_wlan.connect('your-ssid', 'your-password')
while not _wlan.isconnected():
    utime.sleep(0.5)
while True:
    _dht = DHT11(Pin(16))
    _dht.measure()
    temp = _dht.temperature()
    humi = _dht.humidity()
    light = ADC(26).read_u16()
    import urequests
    _r = urequests.post('https://ambidata.io/api/v2/channels/YOUR_CH_ID/data', data=f'{{"writeKey":"YOUR_WRITE_KEY","d1":{temp},"d2":{humi},"d3":{light}}}')
    resp = _r.text
    _r.close()
    utime.sleep(30)

解説: 動作確認のコツ:Ambient のダッシュボードで 「d1(温度)・d2(湿度)・d3(明るさ)」 3 本のグラフが同時に伸びていきます。「窓のカーテンを閉める → d3 が下がる」「ドライヤーを当てる → d1 が上がり・d2 が下がる」など、3 つのセンサーが連動する様子をリアルタイムで観察できます。発展:

  • 4 系列追加:HC-SR04(距離 d4)も追加して 4 系列同時送信
  • 移動平均:5 回分の平均を送ることで「ノイズの少ないグラフ」に
  • 異常検知:温度が 35℃ 超 → ブザーで警告(クラウド送信+ローカル動作)
  • BME280 への昇格:DHT11 より精度の高い気圧センサー BME280 で d4=気圧も追加

DHT11 + CdS を Pico W に接続した配線図(演習2)
課題3-16-2 の配線:Pico W + DHT11(GP16)+ CdS 分圧(GP26 + 10kΩ)。デジタル GP16 とアナログ GP26 は完全分離しているので干渉なし。WiFi は無線・USB 給電のみで動きます。

課題3-16-3:HTTP GET で Ambient から最新データを取得しよう

「送信(POST)だけでなく、取得(GET)もできる」ことを確認します。Ambient の GET API は 「最新 n 件のデータを JSON 配列で返す」 仕様で、「別の Pico W が送ったデータ」 や 「Web 画面から手動で入れた値」を読み出せます。「クラウドが Pico W 同士の橋渡しになる」「IoT 装置間の M2M(Machine to Machine)通信」の第一歩です。

URL の組み立て方:https://ambidata.io/api/v2/channels/YOUR_CH_ID/data?readKey=YOUR_READ_KEY&n=1
「?n=1」 で最新 1 件、「?n=10」で最新 10 件取得できます。レスポンスは JSON 配列で、各要素は {"created":"2026-05-18T12:34:56","d1":25.3,"d2":60} のような形。本演習ではレスポンスを print するだけで、JSON パース(解析)は次回の #17 統合課題で扱います。

▶ 模範解答と解説を見る

ブロックの組み合わせ例:

HTTP GET で Ambient から最新データを取得するブロック
ブロック構成:Pico W で WiFi 接続 → HTTP GET URL(Ambient の取得 API)→ レスポンス resp を print。シェルに JSON 配列の生テキストが出力されます。
from machine import Pin
import utime
import network, utime
_wlan = network.WLAN(network.STA_IF)
_wlan.active(True)
_wlan.connect('your-ssid', 'your-password')
while not _wlan.isconnected():
    utime.sleep(0.5)
import urequests
_r = urequests.get('https://ambidata.io/api/v2/channels/YOUR_CH_ID/data?readKey=YOUR_READ_KEY&n=1')
resp = _r.text
_r.close()
print(resp)

解説: 動作確認のコツ:シェルに以下のような JSON 配列が出力されれば成功:[{"created":"2026-05-18T12:34:56.000Z","d1":25.3,"d2":60}]
「[ ]」(空配列)が返る場合はまだ Ambient にデータが入っていない(ステップ1〜2 を先に動かす)。「Unauthorized」系のエラーが返る場合は readKey の書き間違い。発展:

  • JSON パース:import ujson + data = ujson.loads(resp) でPython の list[dict] に変換 → data[0]['d1'] で温度を取り出す(次回 #17 で扱います)
  • クラウド経由の連携:別の Pico W(または Web 画面)が POST した値を、別の Pico W が GET してその値で LED 制御 → クラウドが「掲示板」になる M2M 通信の基本パターン
  • 天気予報 API:気象庁の無料 API(https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json)を GET すれば 東京の天気予報を Pico W が直接取得できます

まとめ

  • HTTP プロトコルは GET(取得)/ POST(送信)の 2 メソッドが基本。レスポンスコード 200=成功・401=認証エラー・429=送りすぎ を覚えておく。
  • JSON はネット標準のデータ形式。ダブルクォート必須・true/false 小文字・末尾カンマ不可 の 3 点だけ要注意。
  • Ambient は 国内無料 IoT サービス。writeKey で書き込み・readKey で読み出し・8 系列 / チャンネル・3,000 件 / 日。
  • urequests.post(URL, data=JSON文字列) で 1 行で送信できる。f文字列で {"writeKey":"...","d1":{temp}} を組み立てるのが鉄板パターン。
  • レート制限に注意:Ambient は 5 秒に 1 回・3,000 件 / 日。30 秒〜1 分間隔が現実的な最適解。
  • 複数センサーを 1 POST にまとめると回数削減で電池・通信時間・レート制限すべて有利。d1〜d8 を活用するのが IoT 設計の基本。
  • HTTP GET でクラウドから値を取得すれば、クラウドを介した「M2M(Machine to Machine)通信」や 「気象庁 API などの外部データ取得」もできる。

📝 IoT プロトコルの進化方向

今回使った HTTP POST + JSON は 「最も普及していて学びやすい」方式ですが、「電池駆動・大量端末・低遅延」を求める本格 IoT では別のプロトコルが使われます:
  • MQTT:Pub/Sub 型・小さなパケット・低消費電力(家電・スマートホームの定番)
  • CoAP:HTTP に似ているがバイナリ・超軽量(リソース制約デバイス向け)
  • WebSocket:双方向リアルタイム通信(ブラウザとのチャット・ロボット遠隔操作)
  • AWS IoT / Azure IoT Hub / Google Cloud IoT:商用 IoT プラットフォーム(数万台規模の管理)
  • Matter / Thread:2023〜 のスマートホーム新標準(Apple/Google/Amazon 共同策定)
これらは全て 「HTTP POST + JSON で基本動作を理解」 した次のステップ。「クラウドにデータを送る・受け取る」感覚を本記事でしっかり掴んでおきましょう。

次回 #17 は Part 1 の最終統合課題:これまでに学んだ #01〜#16 の全要素(LED・ボタン・PWM・ADC・I2C LCD・ブザー・7セグ・超音波・温湿度・明るさ・サーボ・DC モーター・ステッピング・WiFi・IoT)を組み合わせて、「自分だけのオリジナル IoT 装置」を企画・製作します。「教材として習ってきたパーツが、自分の作品の中で活きる」 瞬間を体験してください。ここまで全 16 単元を駆け抜けてきた皆さんは、もう 本物の電子工作エンジニア です。

トップへ戻る