注目キーワード

【Arduino】Raspberry Pi Pico W で透過型ディスプレイを使ってみる!Arduinoプログラミング!

すけろく
最近、透明なディスプレイが出てきたな。
げんろく
ああ。透過型ディスプレイというやつだな。
すけろく
Raspberry Pi Pico Wでも使えるのか?
げんろく
手元にあるものはSPI通信を使うタイプだから
Raspberry Pi Pico Wでも使えるぞ。
Arduino でプログラムしてみるか!
今回は記事では、「Raspberry Pi Pico W」をArduinoでプログラミングします。
インターネット上の天気情報サービス「OpenWeather」から1時間おきに天気情報を取得して「透過型ディスプレイ(Transparent OLEDに表示させてみます。
また、起動時に時刻同期することで、正確な時刻を元にデータ取得や、命令の実行を行います。
透過型OLEDは、アニメーションもできる反応速度なので、お天気アイコンをアニメーションさせてみます。

そこで、今回はWaveShare社の提供している「透過型ディスプレイ(Transparent OLEDを、「Raspberry Pi Pico W」+Arduino IDE で使用してみたいと思います。

Raspberry Pi Pico W」と接続する際の環境構成や、画像やテキストを描画させるためのプログラムを紹介します。

この記事の前提となる「Raspberry Pi Pico W」のはじめかたについては、次の記事で紹介しています。
関連記事

すけろく ついに、国内でもRaspberry Pi Pico Wを手に入れたぞ! げんろく Wi-Fiモジュールがついているので、 国内の技適取得が必要だったからな。 すけろ[…]

記事内でご紹介する「Raspberry Pi Pico W」はこちら!

ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,290 (2024/05/28 19:33:10時点 Amazon調べ-詳細)
ピンヘッダを自分ではんだ付けするもの
created by Rinker
Raspberrypi
¥1,499 (2024/05/28 13:41:25時点 Amazon調べ-詳細)

Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

透過型OLEDです。表示色は、水色になります。ディスプレイをコントロールするための拡張ボード(SSD1309ドライバーチップ内蔵)と透過型OLEDのセットになります。128×64解像度、SPI / I2Cインターフェイスです。この商品は、標準でSPIを使用するように設定されています。
I2Cで使用する場合は、はんだ付けされている部分を変更する必要があります。
起動時のロゴ画面
起動時のロゴ画面
天気表示画面
天気表示画面

Raspberry Pi Pico W」は、Wi-Fi接続ができるので、できることが広がりそうですよ!

ぜひ、皆さんも挑戦してみてくださいね!

今回の目標

今回は、インターネット上のお天気情報サービスである「OpenWeather」から、住んでいる場所の現在の天気を取得します。
OpenWeatherのお天気情報を取得する手順は、次の記事で紹介しています。
関連記事

すけろく Raspberry Pi Pico Wをインターネットに 接続できたということは、 インターネット上のサービスを使えるということだな。 げんろく うむ。 インターネット上の情報を取得する[…]

取得した情報をもとに、「透過型ディスプレイ(Transparent OLEDに出力します。

全体の構成

全体の構成は次のようになります。

Raspberry Pi Pico W を使った透過型OLEDへのお天気表示(処理イメージ)
Raspberry Pi Pico W を使った透過型ディスプレイへのお天気表示(処理イメージ)

処理の流れ

プログラム内での処理の流れは次の通りです

  1. Wi-Fiアクセスポイントへの接続
  2. 時刻同期する
  3. OpenWeatherへアクセスする際のURLを生成
  4. OpenWeatherへ接続しJSON形式データを取得
  5. JSON形式データから対象の値を取得
  6. 透過型ディスプレイ(Transparent OLED)に表示する

上記の④~⑥を1時間に1回繰り返す

Raspberry Pi Pico W でSPI通信を使う

今回使用している「透過型ディスプレイ(Transparent OLEDは、「SPI」通信を使用して「Raspberry Pi Pico W」から表示制御します。

SPI通信については、次の記事で紹介しています。

関連記事

すけろく Raspberry Pi Pico Wでお天気情報を インターネットから取得できたな。 げんろく うむ。 お天気情報を取り込むことができたな。 すけろく 次は、お天[…]

Raspberry Pi Pico W」は、2つのSPI通信用インタフェース(SPI0、SPI1)をもっており、使用するGPIOを変えることができます。

今回は、SPI0の初期設定GPIOを使用します。

初期設定で、どのGPIOを使用するかは、今回使うボードマネージャ「Raspberry Pi Pico/RP2040」の中で定義されています。

初期設定GPIOは、次の通りです。

役割 GPIO 説明
CS 17 SPIのCSに対応しています
SCK 18 SPIのCLKに対応しています。
TX 19 Raspberry Pi Pico W をメインノードとした場合のデータ送信用です。
SPI のMOSIに対応しています。
RX 16 Raspberry Pi Pico W をメインノードとした場合のデータ受信用です。
SPI のMISOに対応しています。

Raspberry Pi Pico W」は、メインノードになります。

透過型ディスプレイ(Transparent OLEDへのデータ送信にはTX(MOSI)を使用します。

RX(MISO)は今回使用しません。

Raspberry Pi Pico Wの準備

今回は、「Raspberry Pi Pico W」と「透過型ディスプレイ(Transparent OLEDを電子回路で接続します。
そのため、いくつか準備するものがあります。
  1. Raspberry Pi Pico Wにピンヘッダをはんだ付けする
  2. ブレッドボードなど電子回路を構成するために必要なものを準備する

 Raspberry Pi Pico Wにピンヘッダをはんだ付けする

Raspberry Pi Pico W」には、ピンヘッダをつけるための穴がついています。

ピンヘッダをつけることで、ブレッドボードや、ディスプレイのシールドなどと接続することができます。

ピンヘッダとは次のようなものです。

秋月電子さんの1×40ピンヘッダ

ピンヘッダ 1×40 
入手元:秋月電子
型番:PH-1x40S
片方のピンが長いものになります。
40ピンありますので、8ピン分を切って使うなどできます。
秋月電子さんの通販サイトURLはこちらです。
はんだ付けの手順や、必要となる道具のおススメについては、次の記事で紹介しています。
関連記事

電子工作という言葉を聞くとまず思い浮かぶのは、中学校の技術家庭の授業でやったはんだ付け。 最近の学校は実習とかやっているのかなとふと思います。 子供の頃は何となく作業していたので、今思うと「よく部品壊さなかったな・・・」と思いま[…]

Raspberry Pi Pico W」にピンヘッダをつけると次のようになります。

ブレッドボードなど電子回路を構成するために必要なものを準備する

今回使用する「透過型ディスプレイ(Transparent OLED)は、SPI通信を使って制御します。

Raspberry Pi Pico W」との接続は、次のように構成します。

透過型ディスプレイ(Transparent OLEDへの電源は、別途、5Vの電源を用意しました。

Raspberry Pi Pico W と透過型OLEDの接続(クリックすると拡大します。)
Raspberry Pi Pico W と透過型OLEDの接続(クリックすると拡大します。)

今回使用した電源はこちら!

実際にブレッドボードに接続したイメージは次の通りです。
配線イメージ1
配線イメージ1
配線イメージ2
配線イメージ2
ブレッドボードと透過型ディスプレイをまとめて固定しているホルダーが気になった方、
「ブレッドボードホルダー」については、こちらの記事もどうぞ!
関連記事

すけろく ぬぉーーー! げんろく どうした? イライラしておるの~ すけろく ブレッドボードとマイコンで回路を作っているのだが マイコンに配線すると、ブレッドボード側が外れて[…]

ブレッドボード、ジャンパワイヤはこちらがおススメです!

created by Rinker
サンハヤト
¥1,544 (2024/05/29 02:02:36時点 Amazon調べ-詳細)
電子回路の試作を行う際に使用するツールです。
左右にVinとGNDがあり、中心部分に回路を構成して使います。
電子回路の試作を行う際に使用するツールです。
ブレッドボード上で使用する際にはこちらが便利です。
持っておくと便利です。
電子回路の試作を行う際に使用するツールです。
いろんな長さのものがセットになり、保管用のボックスもついています。
100V電源を5V4Aに変換する電源アダプターです。
PSE認証付きのものを購入しましょう!
透過型ディスプレイ(Transparent OLED)をブレッドボードに接続する際には次のものを使用しています。
両端ロングピンヘッダ 1×40 (40P 6.1)
入手元:秋月電子
型番:PH-1x40SG(6.1/6.1)
両端のピンが長いものになります。40ピンありますので、
8ピン分を切って使うなどできます。秋月電子さんの通販サイトURLはこちらです。

透過型OLEDをRaspberry Pi Pico W で使うために必要な設定

今回は、Arduino IDEを使ってRaspberry Pi Pico Wにプログラムを書き込みます。

この記事では、次の2つの設定方法を紹介します。

  • WaveShare社の公式ライブラリを使う
  • LavyanGFXを使う

描画機能の充実度から見ると、上記の「LavyanGFX」がおススメです。

WaveShare社の公式ライブラリを使う

公式ライブラリでの動作確認方法は次のボックスをクリックしてください

透過型ディスプレイの公式ライブラリで使ってRaspberry Pi Pico W 上で動作確認する手順

販売元であるWaveShare社が、透過型ディスプレイ向けのArduinoライブラリを提供しています。

ライブラリはArduino IDEのライブラリ管理機能ではインストールできません。

プログラムは以下の手順でダウンロードできます。

 WaveShare社の公式ライブラリのインストール

所要時間:10分程度

左のリンクから、WaveShare社のサイトにアクセスします。

サイトを下のほうにスクロールし、「Demo Example」にあるリンクをクリックします。ダウンロードが開始されます。
以下のリンクからも直接ダウンロードできます。
WaveShare社のダウンロード元
No image

OLED_Module_Code_(12).7z」というファイルがダウンロードできますので、解凍ツールで解凍します。
No image

解凍後、以下のフォルダをコピーします。
「OLED_Module_Code_(12)」-「OLED_Module_Code」-「Arduino」-「OLED_1in51」
No Image

コピーしたフォルダを以下の場所にコピーします。
Arduinoのスケッチの標準の保存先は以下の場所です。
「Cドライブ」-「Users」-「”ユーザ名”」-「Documents」-「Arduino」
各ファイルを以下のとおり修正します。
<修正前>
#include <avr/pgmspace.h>


<修正後>
#include <api/deprecated-avr-comp/avr/pgmspace.h>


以下のファイルの内容を書き換えます。
※Arduinoで使用する場合はこの手順は不要です。
<対象ファイル>
・DEV_Config.h
・ImageData.c
・fonts.h
「fonts.h」の内容を書き換えます。
<修正後>

typedef struct
{
unsigned char index[27]; 
const char matrix[MAX_HEIGHT_FONT*MAX_WIDTH_FONT/8];
}CH_CN;

「fonts.h」の内容を書き換えます。
index[3]をindex[27]に変更します。
※Arduinoで使用する場合はこの手順は不要です。
「GUI_Paint.cpp」の内容を書き換えます。
<修正後>
void Paint_DrawString_CN
{
const char* p_text = pString;

「GUI_Paint.cpp」の内容を書き換えます。
unsigned char」を「char」に変更します。
※Arduinoで使用する場合はこの手順は不要です。
「DEV_Config.cpp」の内容を書き換えます。
削除対象
Serial.begin(115200);
・・・
Serial.println(“USE_SPI”);
・・・
Serial.println(“USE_I2C”);

「DEV_Config.cpp」の内容を書き換えます。
左のSerial系のコマンド部分を削除します。
※Arduinoで使用する場合はこの手順は不要です。
「DEV_Config.cpp」の内容を書き換えます。
<修正前>
#if USE_SPI_4W
//  Serial.println(“USE_SPI”);
//set OLED SPI
  SPI.setDataMode(SPI_MODE3);
  SPI.setBitOrder(MSBFIRST);
  SPI.setClockDivider(SPI_CLOCK_DIV2);
  SPI.begin();


<修正後>
#if USE_SPI_4W
   //  Serial.println(“USE_SPI”);
   //set OLED SPI
   SPI.begin(true);
   SPI.beginTransaction(SPISettings(2000000, MSBFIRST, SPI_MODE3));

10
「DEV_Config.cpp」の内容を書き換えます。
SPI通信の開始処理を左のように修正します。
「DEV_Config.h」ファイルを以下の通り修正します。
<修正前>
#define OLED_CS 10
・・・
#define OLED_RST 8
・・・
#define OLED_DC 7


<修正後>
#define OLED_CS 17
・・・
#define OLED_RST 12
・・・
#define OLED_DC 13

11
「DEV_Config.h」の内容をRaspberry Pi Pico Wで使用するGPIOの情報に書き換えます。
※別のGPIOピン番号にした場合は、読み替えてください。

 サンプルプログラムの準備

動作テスト用のスケッチ「OLED_1in51.ino」で動作確認します。
ライブラリにコピーした「OLED_1in51」フォルダの中にありますので、Arduino IDEで開きます。
所要時間:5分程度
「OLED_1in51」の内容を書き換えます。
<追加後>
void setup() {
//set Serial
Serial.begin(9600);

「OLED_1in51」の内容を書き換えます。
Serial系のコマンド部分をSetup関数に追加します。
「OLED_1in51」の内容を書き換えます。
<修正後>
void setup() {
・・・
 if((BlackImage = (UBYTE *)malloc(Imagesize)) == NULL) {
Serial.print(“Failed to apply for black memory…\r\n”);
return -1;
}
・・・

「OLED_1in51」の内容を書き換えます。
Setup関数にある「return 1;」を削除します。
#include “Arduino.h”

「OLED_1in51」の内容を書き換えます。
ヘッダー部分に「#include “Arduino.h”」を追加します。
以上で、Raspberry Pi Pico Wへの書き込みができる状態になります(2023年4月時点)

 Raspberry Pi Pico Wへの書き込み

2回目以降

  1.  Raspberry Pi Pico WをパソコンにUSB接続します。
  2.  Arduino IDEで前述のプログラムを記載して、 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  3. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
    「Raspberry Pi Pico/RP2040」-「Raspberry Pi Pico W」
  4. 「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  5. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「9600」です)
  6. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

 プログラム実行結果

Raspberry Pi Pico Wを起動すると、次のように透過型ディスプレイに表示されます。

さて、動作確認が終わったところで、いよいよ今回の目標に向け、スケッチを作成していきますよ~

LovyanGFXライブラリを使う

Arduino や M5Stackなどでお世話になることが多い、「LavyanGFX」。

描画速度向上や、画像の回転などが自由に行えるなど、便利な機能が多数実装されているライブラリです。

このライブラリは、Arduino IDE のライブラリマネージャからインストールすることができます。

使うディスプレイや、開発ボードによって設定をカスタマイズして使うことができます。

今回は、ライブラリインストール後に、「Raspberry Pi Pico W」と「透過型ディスプレイ(Transparent OLEDを使用するための設定を定義したファイルを追加します。

「LovyanGFX」ライブラリのインストール

以下のライブラリを追加インストールします。

使用する情報 設定値(バージョン)
ライブラリ名 LovyanGFX (1.1.5)

ライブラリのインストール手順については、次の記事を参考にしてください!

関連記事

「Arduino IDE」では、使用する機能やセンサー、ボードを使用するプログラムで使用できる有効なライブラリが公開されています。 ライブラリを使用すると、効率的かつ品質を確保したプログラミングが可能です。 この記事では、Ar[…]

 Raspberry Pi Pico W用のユーザー定義ファイルの追加

「LovyanGFX」では、自動的に開発ボードやディスプレイを認識して、使えるようにしてくれる機能がありますが、「Raspberry Pi Pico W」は、自動認識されません。

自動認識が使えない場合、ユーザー側で開発ボードのSPI通信に使用すインターフェイス(GPIO)や、ディスプレイモジュールの仕様に合わせた設定を記述することができます。

このユーザー定義ファイルを使うことで、今回の「Raspberry Pi Pico W」と「透過型ディスプレイ(Transparent OLEDに対応できます。

当ブログで作成したユーザ定義ファイルを次の場所で公開していますのでダウンロードしてご利用ください。

所要時間:5分程度

GitHub

Contribute to karakuri-musha/TOLEDbyArduino-RaspiPicoW devel…


左のリンクから、GitHubへアクセスします。

GitHubページの「code」ボタンを押して、「Download ZIP」を押します。
ダウンロードが開始されます。
No Image

「TOLEDbyArduino-RaspiPicoW-main.zip」というファイルが
ダウンロードされます。解凍ツールで解凍します。
コピーファイル
LGFX_RasPiPicoW_ST1309_TOLED.hpp

解凍後、以下のフォルダ内の
LGFX_RasPiPicoW_ST1309_TOLED.hpp」ファイルをコピーします。
「OLEDbyArduino-RaspiPicoW-main」-「src」-「LovyanGFX」-「lgfx-user」
コピー先
Users\”ユーザ名”\Documents\Arduino\libraries\LovyanGFX\src\lgfx-user

コピーしたファイルを以下の場所にコピーします。
(WindowsでのArduino IDEの標準的な環境では以下の場所にあります。)
「Cドライブ」-「Users」-「”ユーザ名”」-「Documents」-「Arduino」ー「libraries」          -「LovyanGFX」ー「src」-「lgfx-user」
以上で、ユーザー定義ファイルの追加作業は完了です。

Raspberry Pi Pico Wで透過型OLEDに天気を表示してみる

Raspberry Pi Pico W」を使って、「透過型ディスプレイ(Transparent OLEDに天気を表示するプログラムを作成します。

Raspberry Pi Pico W を使った透過型OLEDへのお天気表示(処理イメージ)
Raspberry Pi Pico W を使った透過型OLEDへのお天気表示(処理イメージ)

今回の目標」でも書きましたが、今回はインターネット上の天気情報サービス「OpenWeather」から現在の天気情報を取得します。

取得した天気の状態に応じて、天気アイコンで分かりやすく表現してみます。

透過型ディスプレイ(Transparent OLEDは、アニメーションも表示できそうなので、天気ごとに2つのアイコン画像を交互に表示し、アニメーションさせます。

 

表示する画像を準備する

ディスプレイに表示する画像を準備します。

は、一色表示(青白い色)で、その他の部分は透けて見えるようになります。

画像は、二値化(白と黒)して、輪郭がわかりやすいよう閾値を調整しました。

起動時のロゴ画像

起動時に表示するロゴ画像として、次のものを用意しました。

天気アイコン画像

また、天気情報をアニメーション表示するために、以下の画像も用意しました。
OpenWeather」から取得できる天気情報は主に「晴れ」、「曇り」、「雨」、「雪」、「その他」の5種類に分類できます。
今回は「その他」については、雷の画像にしてみます。

プログラム作成前に確認するポイント

プログラム作成前に、以下の点を押さえておいてください。

Wi-Fi接続と時刻同期

Wi-Fi接続と時刻同期の方法については、次の記事で紹介しています。

Wi-Fi接続方法は、次の記事で紹介しています。

関連記事

すけろく Raspberry Pi Pico W がArduinoで プログラムを書き込めることは確認できた。 げんろく ああ。無事、初回書き込みが出来て、 COMポートとしても認識されたな。 […]

時刻同期方法は、次の記事で紹介しています。

関連記事

すけろく 前回の記事で、Raspberry Pi Pico Wを Wi-Fi接続できた。 げんろく ああ。インターネットへのアクセスが できるようになったな。 すけろく これ[…]

プログラム内で、Wi-Fi接続に使用する「ssid」と「password」というものがあります。
ご自分の環境に合わせて値を修正してください。
(スケッチ例では「”your-ssid」、「”your-password」と記載しています。)

 OpenWeatherからの天気情報取得

インターネット上のAPIからの情報取得になりますので、HTTPS通信でAPI向けのURLを送信します。

APIから情報を取得する際に必要となる認証情報が、2つあるので押さえておきます。

OpenWeatherからの天気情報取得方法の詳細は、次の記事で紹介しています。

関連記事

すけろく Raspberry Pi Pico Wをインターネットに 接続できたということは、 インターネット上のサービスを使えるということだな。 げんろく うむ。 インターネット上の情報を取得する[…]

 

「OpenWeatherのAPIキー」、「OpenWeatherのルート証明書」は、プログラム内の次の部分で定義しています。
ご自分の環境に合わせて値を修正してください。
(スケッチ例では、「”Please correct it to the value that suits your environment.”」と記載しています。)

項目名 プログラム内の定義名(変数名)
OpenWeatherのAPIキー
const String Api_KEY
OpenWeatherのルート証明書
const char*ow_rootca

 必要な追加ライブラリのインストール

以下のライブラリを追加インストールします。

使用する情報 設定値(バージョン)
ライブラリ名① ArduinoJSON (6.21.1)
ライブラリ名② Time By Michael Margolis (1.6.1)
ライブラリ名③ LovyanGFX (1.1.5)
*1 このライブラリは、前述の手順を行っていればインストールされているので作業は不要です。

ライブラリのインストール手順については、次の記事を参考にしてください!

関連記事

「Arduino IDE」では、使用する機能やセンサー、ボードを使用するプログラムで使用できる有効なライブラリが公開されています。 ライブラリを使用すると、効率的かつ品質を確保したプログラミングが可能です。 この記事では、Ar[…]

 スケッチ(プログラム作成)と書き込み

いよいよ、プログラムを作成して、書き込みます。

Arduino IDE スケッチ例

スケッチ例は、GitHubで公開していますので、次のリンクからアクセスしてください。

GitHub

Contribute to karakuri-musha/ePaper-by-Arduino-for-Raspberry…

■ GitHubからのスケッチ例のダウンロード方法

次の手順でダウンロードしてください。

① 前述のリンクからGitHubのページへ移動します。

②GitHubページの右上にある「Code」をクリックします。
表示されるメニューから「Download Zip」を選択します。

③「TOLEDbyArduino-RaspiPicoW-main.zip」という
ファイルがダウンロードされます。

④ダウンロードしたファイルを解凍してください。

⑤解凍したフォルダにある「Src」フォルダ内の「RaspberryPi_Pico_WTOLED.ino」
をArduino IDEで開きます。

⑥「RaspberryPi_Pico_WTOLED.ino」と「Original_Image_Data.h」が
開かれていることを確認します。

以上で、完了です。

 Raspberry Pi Pico Wへの書き込み

2回目以降

  1.  Raspberry Pi PicoをパソコンにUSB接続します。
  2.  Arduino IDEで前述のプログラムを記載して、 「ファイル」メニューから「名前を付けて保存」で任意の名前を付けて保存します。
  3. 「ツール」メニューから「ボード」情報を確認し、次のものを選択します。
    「Raspberry Pi Pico/RP2040」-「Raspberry Pi Pico W」
  4. 「シリアルポート」にマイコンを接続したCOMポートが指定されているかも確認します。
  5. 「ツール」メニューから「シリアルモニタ」を選択してシリアルモニタを起動します。(転送速度は「9600」です)
  6. 「スケッチ」メニューから「マイコンボードに書き込む」を選択します。

プログラム実行結果

書き込み後、しばらくして天気情報が画面に表示されれば成功です。

お天気によってアイコンが変わるので面白いですよ~。

1時間おきに天気情報が更新されるようになっています。

天気によって表示が変わることも確認できました!

天気表示(雪)
天気(雪)
天気(雨)
天気(雨)

また、成功していれば、シリアルモニタ上に以下の通り表示されているはずです。

Connecting to yourssid

WiFi connected
IP address: 
192.xxx.xxx.xxx
Current time: 2023-04-04 10:26:00
https://api.openweathermap.org/data/2.5/weather?lat=35.6828&lon=139.759&units=metric&lang=ja&appid=xxxxxxxxxxxxxxxxxxxxxxxxx
[HTTPS] begin...
[HTTPS] GET...
[HTTPS] GET... code: 200
{"coord":{"lon":139.7595,"lat":35.6828},"weather":[{"id":800,"main":"Clear","description":"晴天","icon":"01d"}],"base":"stations","main":{"temp":16.11,"feels_like":15.03,"temp_min":14.98,"temp_max":16.74,"pressure":1026,"humidity":48},"visibility":10000,"wind":{"speed":3.6,"deg":70},"clouds":{"all":0},"dt":1680571032,"sys":{"type":2,"id":268395,"country":"JP","sunrise":1680553454,"sunset":1680599026},"timezone":32400,"id":1857654,"name":"東京都千代田区丸の内","cod":200}
WeatherID : 801
WeatherStats : 4
・・・ 以降、1時間おきにHTTPSリクエストの出力が繰り返し出力されます。

 編集後記

今回は、インターネット上の天気情報サービス「OpenWeather」から、天気情報を受け取りました。

取得したお天気情報に応じて「透過型ディスプレイ(Transparent OLED上にアイコンを表示させました。

これで、「Raspberry Pi Pico W」とインターネット上のサービスが連携したプログラムが完成しました。

Raspberry Pi Pico W」のプログラミングといえば、「microPython」と言われます。

Arduino IDEでプログラムできることで、他のマイコンと同じArduino IDEで開発できます!

Raspberry Pi Pico W」と同じRP2040というチップを搭載している機器にも使えるので応用ができそうです。

今回の記事は以上になります。

最後までご覧いただき、ありがとうございました。

記事内でご紹介する「Raspberry Pi Pico W」はこちら!

ピンヘッダ実装済み
created by Rinker
ノーブランド品
¥2,290 (2024/05/28 19:33:10時点 Amazon調べ-詳細)
ピンヘッダを自分ではんだ付けするもの
created by Rinker
Raspberrypi
¥1,499 (2024/05/28 13:41:25時点 Amazon調べ-詳細)

Arduino、C/C++、MicroPythonに対応している組み込み開発キットです。
正確なタイマ機能、温度センサーなどを備えたモデルです。ディスプレイ等がないため、消費電力を抑えた構成をとることができます。いろいろ遊べますよ~

透過型OLEDです。表示色は、水色になります。ディスプレイをコントロールするための拡張ボード(SSD1309ドライバーチップ内蔵)と透過型OLEDのセットになります。128×64解像度、SPI / I2Cインターフェイスです。この商品は、標準でSPIを使用するように設定されています。
I2Cで使用する場合は、はんだ付けされている部分を変更する必要があります。

Raspberry Pi Pico Wの他の記事はこちらからどうぞ!

すけろく うーむ。 げんろく どうした?浮かない顔をして。 すけろく LEDを火のように光らせる方法を知りたくてな。 げんろく それなら、1/fの揺らぎを使って 再現してみるか。 この記事では、「Raspberry Pi  Pico W」を使って、「LEDを揺らぎを加えて点灯させる」方法をご紹介します。 Raspberry Pi の中でも、省電力なCPUを搭載したマイコン開発ボードです。 他のRa […]

すけろく うーむ。 どうしたものか。 げんろく どうした。 暗い顔をして。 すけろく カーモデルのウィンカー点滅を再現したくてな。 明滅回路を作ろうか悩んでおる。 げんろく ん!? そんなときは、メインプロセッサと切り離して 動作するPIOの出番ではないのか! この記事では、「Raspberry Pi  Pico/W」に実装されている「PIO(Programmable I/O」を実際に使ってみます […]

すけろく Raspberry Pi Pico/WのPIO機能を使ってUARTの送信には成功した。 しかし、まだ受信側ができていないのぉ。 げんろく そうだな。 今度は受信側を試してみるか。 すけろく どうせなら、パソコンから送った文字を返すような やり取りができるといいな。 げんろく よし。 UART送受信を実装してみよう。 この記事では、「Raspberry Pi  Pico/W」に実装されてい […]

すけろく Raspberry Pi Pico/WのPIO機能については前回調べた。 今度は実際に使ってみたいの~ げんろく そうだな。 実際にプログラムする際の注意事項などを見ていこう。 すけろく Arduino IDEでも使用できるのか? げんろく ああ。 使えるぞ! Arduino IDEで使う場合を例にやっていこう。 この記事では、「Raspberry Pi  Pico/W」に実装されている […]

すけろく Raspberry Pi Pico/Wには、PIOという機能があるらしいな。 げんろく そうだ。 UARTなどのインタフェース不足や、実装されていない機能を GPIOに対してプログラムできる機能だ。 すけろく Raspberry Pi Pico/Wをもっと知るために PIOを調べてみたい。 げんろく よし! PIOについて少し調べてみるか! この記事では、「Raspberry Pi  P […]

すけろく うーむ。 げんろく どうした浮かない顔して。 すけろく これまで、Raspberry Pi Pico / Wをいろいろ確認してきたが 外付けのボタンの認識ってやったかぇ? げんろく たしかに!まだ取り上げていない基本的なものがあるな よし、今回はボタン押下時の状態を Raspberry Pi Pico / Wで認識してみよう。 この記事では、「Raspberry Pi  Pico W」を […]

すけろく 宅内で使っているリモコンは、どういった仕組みで テレビなどをつけているのかな~? げんろく 赤外線を使って信号を送っているのだ。 すけろく しかし、たくさんある機器のリモコンが混信しないのは どういった仕組みなのかぇ? げんろく よし、今回は赤外線リモコンの通信を 調査してみるか! この記事では、「Raspberry Pi  Pico W」を使って、「赤外線リモコンの通信内容を分析する」 […]

すけろく うーむ。 対応付けが難しいな。 げんろく どうした? Raspberry Pi Picoで悩んでいるようだな。 すけろく Raspberry Pi PicoやPico Wの GPIOピンの情報がボード上にプリント されていないから資料との対応付けがやりづらくてな。 げんろく そうか。そういう課題があるのだな。 よし、解決するグッツを作って提供してみよう! 皆さんは、「Raspberry […]

すけろく うーむ。 モーターを毎回同じくらい回転させることはできんのかな。 げんろく DCモーターや、サーボモーターだと、 回転量を正確に制御することは難しいぞ。 すけろく では、何か解決策はあるのかぇ? げんろく ステッピングモーターというものがある。 モーターの回転をステップとして制御できる。 今回はこのあたりを動かしてみるか。 この記事では、「Raspberry Pi  Pico W」を使っ […]

すけろく 以前の記事で、Raspberry Pi Pico Wを Picoprobe経由でデバッグすることができた。 しかし、シリアルの入出力がArduino IDEで 読み込めないのだ。 げんろく そうだな。 Raspberry Pi PicoやRaspberry Pi Pico Wでは、 シリアル出力用の「Serial.println」では、 Picoprobe経由で取得できない。 すけろく […]