MacBook Air M1 2020 レビュー

Mac Book Air 購入しました

一週間前の2021/12/12、MacBook を購入しました。 PCはMicrosoft一筋で生きてきた自分にとって、これがMacデビューとなります。
購入したのは以下の商品で、価格は¥137,280でした。

f:id:camelrush:20211219014845p:plain 上記のリンク ※ユニファイドメモリ8GB版が初期表示されます

購入してから1週間が経過したので、簡単なレビューを行いたいと思います。(このブログもMacBookから投稿しています)

購入目的

既存ノートPCの買い替え(ファンがうるさかった)

元々、持ち歩きには、3年前に購入したこちらのDynaBookを使用していました。2013年モデルなので、今から9年前のものになるんですが、薄型軽量、持ち歩きに便利で、ストレージも256SSD(MSATA)とそこそこ快速で、重宝してました。

f:id:camelrush:20211219020418p:plain

dynabook KIRA V832/W2, V632/W2(Core i7) 2013春モデル Webオリジナル ハードウェア仕様 |東芝ダイレクト

このPC、第3世代 Core i7ながら2Coreと非力なため、ちょっと重い処理が入っただけでファンが全開になります。
コロナ禍前はオープンカンファレンスなどによく参加していたのですが、ハンズオン中にファンがうるさく、リアルタイムでTwitterで書き込まれたことがありました(T-T

Macの操作・用語を理解したかった

昨今はブログやYoutubeから技術を学ぶ機会が多くなりましたが、操作方法やターミナルコマンドも、Mac依存の内容が多く出ています。また、ハンズオンセミナーに出ると、受講者の半分がMac使いということがあるため、情報共有に苦労することがありました。
こういうことは実践で学んだ方が早いと思い、この期にMacを導入した次第です。まぁ、異文化交流みたいなもんですね。英語を覚えるのに、まずは海外旅行に行ってみる、みたいな。

シンクライアントであればなんでも良い時代

最近は、クラウドクロスプラットフォーム化、Webアプリケーションが多勢であり、端末OSに依存しない時代です。
なので、ぶっちゃけシンクライアントの機能が果たせれば、WindowsだろうとMacだろうとRaspberryPiだろうとChromeBookだろうと、なんでもよかったわけです。逆にいうと、そういう用途を選択したためストレージも256GBモデルを選択しており、ParallelsWindowsと併用とかは、あまり考えていません。

レビュー

前評判が非常に高い

購入した「MacBook Air M1 2020」ですが、ネットで評価が非常に多く、特に以下の評価ポイントが高いようでした。

  1. 薄型軽量で持ち歩きやすい
  2. 電源持ちが非常に良い(フル充電で18時間程度持続)
  3. コストパフォーマンスが良い
  4. M1プロセッサ性能が高く動画編集もスムーズ

これらは私のような、にわかMacユーザだけではなく、従来からのMac信者(尊敬を込めて)の方々も、軒並み高い評価を出しています。

◎持ち歩きやすい

まだ家でしか使っていないため想像の範囲ですが、持ち歩きはそこそこしやすいと思っています。

  • 重量は前使用のDynaBookと同程度(1.4〜1.5Kg?)
  • USB Type-Cで映像出力可能。ポータブルモニタと相性◎
  • 単独使用ならバッテリがほとんど減らない

最近、これと別にポータブルモニタも購入したため、早くカフェでデュアルディスプレイとかしたいなーと思ってますw

◎静音・冷却性能が良い

一番気に入ったのが、ファンレスモデルのため使用時に音が全くしないこと、それでいて発熱もほとんど感じないことです。パームレストも常にひんやりとしており、冬の北海道だと、逆に温もりが恋しくなるほどですw
また、キーボードが打ちやすくタイピングに音がしないのもありがたい。隣で子供が寝ていても、安心してタイピングができます。

◯Magicパッドが使いやすい

最近のMacはノートにマウスをつけないんだなぁ、と思っていましたが、「つけない」のではなくて「いらない」ってのがわかりました。

特に、従来のWindowsと違って使用するのは「指2本でスクロール」「指2本タップで右クリック相当」です。これだけで「あ、マウスいらないや」と理解しました。ただ、この発想はWindowsの設定でも可能なのかも。今度調べてみようと思います。

▲キー配置に慣れない

特に次の2つです。

  • 「Command」キーが左下隅にないこと
  • 日本語⇔英語変換が別々のボタンであること

特に前者。「Command」ボタン(Windowsでいう「Ctrl」ボタン)が左下隅になく、そこにあるのが「↑」ロック(Windowsの「Caps」キー)なので、うっかり押してしまう、という問題。

f:id:camelrush:20211219023718p:plain

また、この「Command」ボタンと「C」「V」が近いので、コピペを押すのが難しいという問題がありますね。

▲ライブ変換に慣れない

使ってみて一番に違和感を感じたのが「ライブ変換」という機能。
Windowsの場合、ひらがな入力後、スペースや変換キーを押すことで明示的な漢字変換をしますが、Macではひらがなを入力している最中に、先頭文字からどんどん漢字変換されていきます。紹介者によってはこれが便利!という触れ込みをするんですが、先頭が変換されてしまうことによって、入力カーソルの位置が意図せず移動(戻ったり)するので、まだちょっと慣れないですね。

総評

結論でいうと、気に入りました。少なくともあと4〜5年は付き合っていけそうです。

まだ持ち歩いたりしていないため、▲は、全てキータイプに関連するものです。これらはWindowsユーザ向けに機能自体をOFFにしたり、設定を変更することもできそうですが、あえてMacの沼にハマっていこうと思いますw

AWS re:Invent 2021 ClassMethod Re:Growth を 見て

youtu.be

セキュリティ系アップデートまとめ

AWS Well-Architected フレームワークの柱が5本から6本に

  • サステナビリティの柱を追加
  • コスト最適化や、マネージドサービスを推進することで、エコ推進?

コンピュートサービスの進化を語る

新たなEC2ファミリの発表

1年ぶりにNitroに想いを馳せる

Nitroとはなんぞや

Nitroの発表内容

何が嬉しい?Amazon S3 Object ACL無効化

  • S3 Bucketに、Ownershipポリシー「BucketOwnerEnforced」を指定することで、これまで当該BucketにPushできなかったACL付与オブジェクトが、Push可能となる。(これまでは、一旦オブジェクトの所有者を、Bucketの所有者に切り替えてから入れる必要があった)
    f:id:camelrush:20211210020827p:plain

    ↓ なかなか秀逸な表現w
    f:id:camelrush:20211210015757p:plain

re:Inventのキーワードからみる将来

  • (未編集)

Amazon店舗体験記〜最新の「Just Walk Out」のここがすごかった〜

シアトルのAmazonショップ 照会

  • 店舗外観・内装
    f:id:camelrush:20211210021015p:plain f:id:camelrush:20211210020957p:plain
  • ショッピングカートに、コードスキャナと画面。 f:id:camelrush:20211210021216p:plain
  • 日本国内にも、これに近い感じのがある ↓ けど、↑ はスキャンが不要。どちらもバーコードをスキャンしているのは同じだけど、「スキャナに充てさせる」か、可能な限り「スキャナが拾いに行く」かの違い。やっていることは同じなんだけどね。
    gasket.bizright.co.jp
  • 以下の対比表を見て。
    f:id:camelrush:20211210022629p:plain
    DevIOカフェってなんだ?って思ってたら、ClassMethodさん、こんなことやってたのね…。しらんかった…。
    cafe.classmethod.jp

Amazon SageMaker周りのアップデート

Amazon DevOps Guru for RDSを5分でざっくり理解する

  • (未編集)

データ分析のトレンドと注目の新機能

  • (未編集)

Figma連携でReact UI Component自動生成!AWS Amplify Studio解説

  • (未編集)

AWS SDKAmazon CloudWatch関連アップデート

  • (未編集)

AWS Private 5Gについて今わかっていること

  • (未編集)

AWS re:Inventの10年を振り返る

  • (未編集)

クロージング

  • (未編集)

AWS EC2上でElasticSearch + Kibana環境を構築する

前置き

以前、Windows上で構築したElasticSearch+Kibana環境を、AWS EC2(Amazon Linux2)上に構築する。

本来、AWSには「Amazon OpenSearch」という、まさにこの2つのサーバ環境を備えたサービスが存在するのだけど、少し触った感じだと、構築した後にインスタンスの停止・再起動といったことができないようで、維持するのになかなの課金がかかるみたい。

近日、会社でIoTがらみの研修を開くことになったので、復習もかねて構築にトライすることにした。

今回の構築で分かったこと

安定的に動かすならば、EC2ファミリでは「t3.large」(メモリ8GB)以上がよい。

ElasticSearchサービスは、デフォルトで2GBのメモリを使用するらしく「t2.micro」(メモリ1GB)で起動すると、起動に失敗したり、途中からコマンドを受け付けなくなる。

ググると、jvmの設定変更を駆使して256MBで動かしている人もいたけど、あくまで検証作業なので、そこまでシビアに絞らんでもよいと判断しました。

事前準備

VPN / Subnet / EC2 作成

独立したVPN一つと、publicサブネットを一つ作成し、上にEC2を構築する。

種別 名前 IPアドレス
VPC biweb-dev-vpc 10.0.0.0/16
サブネット biweb-dev-pub-subnet1 10.0.32.0/20
EC2 biweb-dev-web 10.0.20.240/20
  • EC2を作成する前に、サブネットの「自動割当IP設定」を有効化する。
  • EC2作成時、セキュリティグループには、SSHアクセスだけを許可とする。Sourceは「マイIP」をクリックして自宅のIPからの要求だけ許可とする
  • EC2作成後、アクセス用のキーペアをダウンロードして保存しておく。
  • EC2作成後、パブリックIPv4アドレスが割当されていることを確認する。

自PCからのSSHアクセス

  • VPCメニューから、インターネットゲートウェイを作成(biweb-dev-igw)して、サブネット(biweb-dev-pub-subnet1)にアタッチする。
  • VPCメニューから、サブネットを選択し、作成したサブネットのルートテーブルに以下を加える。

    送信先 ターゲット
    0.0.0.0/0 (作成したIGW)
  • ローカルPCで「Tera Term」を起動して、「Host」に作成したEC2のパブリックIPv4アドレスを指定する。

    f:id:camelrush:20211020212657p:plain

  • OK押下後の認証画面で、以下の内容を設定してOKをクリック。

    • 「User name」に「ec2-user」(これは固定値)
    • 「Use RSA/~(略)~ key to log in [Private key file:]」に、ダウンロードしたキーを選択

    f:id:camelrush:20211020212903p:plain

  • 以下のとおり、ログインが成功すれば、準備OK。

    f:id:camelrush:20211020213315p:plain

必要ソフトのインストール

yumリポジトリ更新

$ sudo yum update -y

java8 OpenJDK

$ sudo yum install java-1.8.0-openjdk.x86_64

Elastic Searchインストール

以下を参照しつつ、RPMからのインストールを行う。

www.elastic.co

GPG-KEYをローカルリポジトリにインポートする

$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

※【補足】GPGの説明はこちらを参照

ElasticSearch RPMのrepoを所定フォルダに生成する

エディタはなんでもいいですが、今回は nano を使いました。

$ sudo nano /etc/yum.repos.d/elasticsearch.repo

elasticsearch.repo への記載内容は以下の通り。

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md

インストールコマンドを実行する

$ sudo yum install --enablerepo=elasticsearch elasticsearch
:
:
Installed:
  elasticsearch.x86_64 0:7.15.1-1

Complete!

外部アドレスからのアクセスを可能にする

以下のコマンドで設定ファイル「elasticsearch.yml」を開く。

$ sudo nano /etc/elasticsearch/elasticsearch.yml

以下の箇所に追記を行って、ファイルを保存。

# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
#network.host: 192.168.0.1
network.host: 0.0.0.0   # ←ここを追記
discovery.type: single-node # ←ここを追記

また、同じファイルに対して最後の行に次の内容を設定しておく。

xpack.security.enabled: false

意図としては「セキュリティ機能を使用しない」というもの。本来はtrueとし、パスワード等を設定するのだが、今回はあえて使用しない。この設定を明示的にしないと、Kibana操作時に画面でやいのやいの言われる。

↓ やいのやいの の例

f:id:camelrush:20211104225632p:plain

システム起動時にElasticSearchを起動するようにする(systemd)

$ sudo /bin/systemctl daemon-reload
$ sudo /bin/systemctl enable elasticsearch.service

$ # (ちなみに、システムを 起動をやめさせたい場合は次のとおり)
$ sudo /bin/systemctl disable elasticsearch.service

動作確認

PCを再起動。

$ sudo shutdown -r now

再起動後、起動状態をチェックする

$ sudo systemctl | grep elastic
elasticsearch.service         loaded active running   Elasticsearch

以下のコマンドでサービス自体の起動を確認(デフォルトポートは 9200)

$ sudo curl http://localhost:9200
{
  "name" : "ip-10-0-23-98.ap-northeast-1.compute.internal",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "9RtovLuBTuyvlNjuMLLekg",
  "version" : {
    "number" : "7.15.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "83c34f456ae29d60e94d886e455e6a3409bba9ed",
    "build_date" : "2021-10-07T21:56:19.031608185Z",
    "build_snapshot" : false,
    "lucene_version" : "8.9.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

同様に外部からのアクセスを確認。ブラウザで「http://[ip address]:9200/」にアクセスし、上と同じ表示がされればOK。

Kibanaインストール

以下を参照しつつ、RPMからのインストールを行う。

www.elastic.co

GPG-KEYをローカルリポジトリにインポートする

$ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

↑ ここはElasticSearchと同じレポジトリなので実施不要

Kibana RPMのrepoを所定フォルダに生成する

$ sudo nano /etc/yum.repos.d/kibana.repo

kibana.repo への記載内容は以下の通り。

[kibana-7.x]
name=Kibana repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

インストールコマンドを実行する

$ sudo yum install kibana 
:
:
Installed:
  kibana.x86_64 0:7.15.1-1

Complete!

外部アドレスからのアクセスを可能にする

以下のコマンドで設定ファイル「kibana.yml」を開く。

$ sudo nano /etc/kibana/kibana.yml

以下の箇所に追記を行って、ファイルを保存。

# To allow connections from remote users, set this parameter to a non-loopback $
# server.host: "localhost"
server.host: "0.0.0.0"   # ← ここを追記

システム起動時にKibanaを起動するようにする(systemd)

$ sudo /bin/systemctl daemon-reload
$ sudo /bin/systemctl enable kibana.service

動作確認

PCを再起動。

$ sudo shutdown -r now

再起動後、起動状態をチェックする

$ sudo systemctl | grep kibana
kibana.service         loaded active running   Kibana

以下のコマンドでサービス自体の起動を確認(デフォルトポートは 5601)

$ sudo curl http://localhost:5601

↑ 特にエラーなど、何もでなければ、おそらく(笑) 問題なし。 ブラウザで「http://[ip address]:5601/」にアクセスし、下の画面が表示がされればOK。

f:id:camelrush:20211027000040p:plain

あとがき

なんとか構築にはこぎつけました。所要、14時間程度。冒頭で書いたメモリ不足に気づくまで、4~5時間かかってしまったが、まずまずの進捗。次回は、Raspberry PiからのMQTTデータを流し込んで、Kibanaでのグラフ表示を実現します。

HDD、分解してみた

「HDDは、20世紀末から存在するコンピュータ向けのストレージであり、円盤状の磁気ディスクに、スライド式のヘッドを当てることにより、情報の記録、読み取りを行っている」

今回はそんなHDDを、実際に分解して内部構造を調べてみたので、その内容について書いてみたいと思います。

分解の儀

必要な工具

今回のHDDでは、精密ドライバ(トルクスドライバ)のT5、T6を使用しました。

犠牲

生贄の羊は、TOSHIBA製 MK6465GSX(640GB)。

f:id:camelrush:20211016190213j:plain f:id:camelrush:20211016184708j:plain

ジャンクPCから取り外したもので、ノートPCに取り付けたところ不良があるのか、BIOS起動時にディスクエラーが表示されます。使っていても微妙な異音がするので、継続使用を諦め、今回犠牲になってもらいました。

外装の撤去

まずは外装を取り外します。トルクスドライバで表と裏を取り外したところ。

f:id:camelrush:20211016190744j:plain f:id:camelrush:20211016190730j:plain

読み出しヘッド部分

円盤横についている、5cm弱の小さな部品が読み出しヘッドのようですね。薄い鉄が3層重ねられており、うまくスライドするように、プラスチック(白)のガイドもあるようです。

f:id:camelrush:20211016190841j:plain

取り出すとこんな感じ。

f:id:camelrush:20211017005234j:plain

ディスク部分

読み出しヘッドを取り出すと、2枚の円盤が見えました。何枚が入っているのかが、以前から不思議だったんですが、2枚だけなんですね。てっきり、超薄型で10枚程度入っているのかと思ってたので、ちょっと拍子抜けしました。

f:id:camelrush:20211017005305j:plain

2枚のディスクを、中央の突起部分(モータ)で回すようになっています。残念ながら、このモーター部分の解体まではできませんでした。

f:id:camelrush:20211017005336j:plain

全バラ結果

最終的には、以下の部品に分類されます。細かいネジが結構ありますね。

f:id:camelrush:20211017013322j:plain

後で見たら

以下に全部書いてありました。Wikipediaってすごいね、ってオチでしたw

ja.wikipedia.org

初めてのHDD

HDDに初めて触れたのは、1988年(中学2年)頃だったと思う。田舎町で電器屋を営んでいた父が、20MBのHDDを家に持ち込んできた。当時の価格は20万円。今では信じられないが、当時は1万円/1MBという価格設定だった(1GBじゃなくて1MBだよ。)インターフェイスもUSBではなくて、SCSI-1という幅20cm弱ある大き目のコネクタだったのを覚えてます。 今から30年以上前の話なので、内部の作りもここまでコンパクトにはなってなかったんだろうなぁと…、今では想像しかできませんが…。

Raspberry Pi 4 Model B(8G RAM) 購入…でも遅い?

動機

最近、顔認識系の工作を始めているのですが、所有しているRaspberry Pi 3 だとOpenCVの応答速度が非常に遅かったため、この期に以前から気になっていたRaspberry Pi 4 を購入しました。

注意点

・Raspberry Pi4 には、メモリの大小でバリエーションがあります。2G、4G、8G。
・画面への出力には、MicroHDMIケーブルが必要です。通常のHDMIでは接続できないので、変換アダプタが必要となります。
・電源はUSB-TypeCで供給します(Pi3では、TypeAでした)

買ったもの

今回はAmazonさんで普通に購入しました。
せっかくなので、現時点で最高スペックの、メモリ8Gのバージョンを購入。

スタートアップキットもありましたが、いろいろついて割高っぽく、手持ちの部品もあるので、付属品は別購入としました。 ケースは、以下を購入。

開封の儀

f:id:camelrush:20210915230103j:plain

f:id:camelrush:20210915230123j:plain

f:id:camelrush:20210915230137j:plain

f:id:camelrush:20210915230147j:plain

速度比較…いまいち遅くないか…?

Pi3に比べてメモリ量が桁違いなので、ノートPCのような応答を想像していたのですが、実際に動かしてみるとPi3とそれほど変わりなく、Chromeブラウザの起動・タブ追加も、もっさり感が…。
少し調べたところではMicroSDカードのアプリケーションクラスによって応答速度が結構違うという話があり、急いでA2のカードを購入しました。

ただ、これでも大きな差は感じられず…。期待しすぎなのかな…。

ベンチマーク

体感だけだとわからないので、ベンチマークで値比較をすることにしました。 使用したのは、byte-UnixBench です。

導入・実行方法

ターミナル画面で以下のコマンドを実行し、ソースのダウンロードとビルドを実行します。

# git clone https://github.com/kdlucas/byte-unixbench.git
# cd byte-unixbench
# cd UnixBench
# make

終了後、以下のコマンドでベンチマークを実行します。

./Run

実行結果

以下のとおりでした(左が、右が)

f:id:camelrush:20210915083020p:plain

各指標は、上からの順で、以下の通りです。

  1. Dhrystone 2 using register variables
    2つのレジスタを使ってシステム(整数)プログラミングの性能
  2. Double-Precision Whetstone
    浮動小数点演算性能
  3. Execl Throughput
    関数の呼び出し性能
  4. File Copy 1024 bufsize 2000 maxblocks
    ファイルのコピー(バッファサイズ1024バイト)
  5. File Copy 256 bufsize 500 maxblocks
    ファイルのコピー(バッファサイズ256バイト)
  6. File Copy 4096 bufsize 8000 maxblocks
    ファイルのコピー(バッファサイズ4096バイト)
  7. Pipe Throughput
    パイプ処理のスループット
  8. Pipe-based Context Switching
    パイプベースのコンテキストのスイッチング処理
  9. Process Creation
    プロセス作成
  10. System Call Overhead
    システムコールでのオーバーヘッド
  11. Shell Scripts (1 concurrent)
    1つだけシェルスクリプトの実行
  12. Shell Scripts (8 concurrent)
    8つ同時にシェルスクリプトの実行

伸び幅が低いのはともかく、Pi3よりも低いところがある原因がわからない…。
メモリ量 1G->8Gで、CPU性能も向上しているはずなのに、下がることなんてあるんだっけ…。

今回は以上となります。

Raspberry Pi # 距離測定(time-of-flight)

今回のお題

前回作成した有機ELディスプレイをもう少し活かしたく、センサーからの距離情報を画面に表示させるギミックを作ってみることにしました。

使用したパーツ

VKLSVAN製のVL53L0Xという距離センサーになります。
距離センサーにはいくつかの種類がありますが、今回は time-of-flight 方式を使います。
仕様上、最大距離は2.0m。

(前回同様ですが)購入すると、以下の通りPINと基盤が別々になっていますので、ハンダで足留めする必要があります。さすがにこのぐらいはできるようになりました(^^

f:id:camelrush:20210907144809p:plain f:id:camelrush:20210907144855p:plain

Raspberry Pi接続

接続は下図のとおりです。

f:id:camelrush:20210907152719p:plain

今回はインターフェイスとして、I2Cを使用します。
センサーから連続して距離を取得して、3回分の平均を取り、その値を画面に表示します。

できあがり

カメラ自体が障壁になっているので、近づくことで距離が縮まっていきます。
f:id:camelrush:20210907152852g:plain

ソースは以下のGitにアップロードしています。
github.com

所感

やっぱり有機EL「SSD1306」の画面表示があると、できあがりが映えますね^^
次回は、これによる距離と顔画像認識、サーモセンサーを使った非接触体温計を作ってみたいと思います。

Raspberry Pi # 有機ELで文字・アニメーション表示

久々のRaspberry Pi 工作

しばらくジャンク修理やら試験勉強においやられていたので、気分転換にRaspberry Piの電子工作を再開しました。

今回のお題

今回は小型のディスプレイに、文字を表示します。
  f:id:camelrush:20210906132422g:plain
  f:id:camelrush:20210906124335p:plain ← ドット操作で、普通に画像も作れます

以前使用した、温湿度センサー「DHT11」を使い、温度・湿度をリアルタイムに表示してみたいと思います。
camelrush.hatenablog.com

使用したパーツ

Aideepen製のSSD1306という有機LEディスプレイになります。 解像度は128×64、サイズ感としては 3cm×3cm程度の小さなディスプレイです。

購入すると、以下の通りPINと基盤が別々になっていますので、ハンダで足留めする必要があります(さすがにこのぐらいはできるようになりました(^^
f:id:camelrush:20210906144242p:plain f:id:camelrush:20210906144334p:plain

Raspberry Pi接続

接続は下図のとおりです。
f:id:camelrush:20210906134232p:plain

今回はインターフェイスとして、I2Cを使用します。
1秒周期でDTH11から温湿度を取得して、この周期でディスプレイに文字表示します。

できあがり

以前実装したDHT11を使用した温湿度計を使い、その内容をディスプレイに表示しました。

f:id:camelrush:20210906130105g:plain

ソースは以下のGitにアップロードしています。
GitHub - camelrush/dispThermoHygroMeter

所感

IoT工作の最初に、これ、やっとけばよかったと、本当に思いました。 今まで外部出力はターミナルに出るからいいや、とか思ってましたが、こうやって簡単に見えることって、非常にわかりやすいし、作った感が出ますよね。