Bosch社製のセンサーBME280を使って温湿度と大気圧をOLEDに表示するサンプルです。タクトスイッチを押すことで右下の画像を切り替え、ソケット通信で簡単なWebサーバーを作りテキストを表示します。
- Raspberry Pi Pico W (or Pico)
- BME280 sensor module
- 0.96" SSD1306 OLED display
- Tactile switch
- 3mm blue LED
- LEDはなんでもいいですし、なくてもいいです。ただし繋がない場合は該当コードを削除してください。
- Breadboard
- こちらも必要に応じて出問題なしです。
BME280 | Raspberry Pi Pico (W) | SSD1306 | LED | Tactile switch |
---|---|---|---|---|
VCC | 3V3 (36pin) | VCC | - | - |
GND | GND | GND | Cathode | GND |
- | GP7 (10pin) | SCL | - | - |
- | GP6 (9pin) | SDA | - | - |
CSB | - | - | - | - |
SDI | GP4 (6pin) | - | - | - |
SDO | GND | - | ||
SCK | GP5 (7pin) | - | - | - |
- | GP10 (14pin) | - | Anode | - |
- | GP19 (25pin) | - | - | To GND |
/lib
ディレクトリに env.py
ファイルを作成してSSIDとパスワードを設定してください。
IPアドレスは固定にすることをおすすめします。のでFIXED_IPに固定したいIPアドレスを設定してください。
起動時シェルに表示される
Connection successful
('xxx.xxx.x.xx', 'xxxx.xxx.xxx.x', 'xxx.xxx.x.x', 'xxx.xxx.x.x')
こちらがPicoのIPアドレスです。
SSID = "YOUR SSID"
PASSWORD = "YOUR PASSWORD"
FIXED_IP = "YOUR FIXED IP ADDRESS"
SUBNET_MASK = "YOUR SUBNET MASK"
GATEWAY_IP = "YOUR GATEWAY IP ADDRESS"
DNS_IP = "YOUR DNS IP ADDRESS"
デフォルトは Hello!
です。再起動時はこの値になります。
起動するとシェルにPicoのIPアドレスが表示されます。
Connection successful
('xxx.xxx.x.xx', 'xxxx.xxx.xxx.x', 'xxx.xxx.x.x', 'xxx.xxx.x.x')
一番左のアドレスがPICOのIPです。同じネットワーク内のブラウザで http://YOUR.PICO.IP.ADDRESS/
にアクセスし、テキストを入力すれば文字が変わります。
文字はスペースも含めて10~11文字以上は右下のイラストと被ってしまいますので良い感じにしてください。
セキュリティは考慮されていないので注意してくださいね。
ディスプレイのサイズは128x64ドットです。何らかの方法で128x64pxのモノクロ二階調の画像を作成してください。JPGでもPNGでも問題ないです。
次に img2ccp を使って画像をプレーンのビットマップに変換します。最後のOutputの項目にあるCode output formatはPlain bytesを選択してください。
そちらのビットマップの文字列を.txtとして /img フォルダの中に保存するだけで追加されます。