注目キーワード

第10回 プログラミング -HAKO-

ミニケース「KARAKURI -HAKO-」で使用するプログラムを作ります。

さて、これまでの記事では計画のみでしたが、いよいよ実際に動くものを作っていきます。

プログラミングする機能については、「第4回 機能とプログラム構成」で必要なものを洗い出しました。今回はこの機能単位でプログラミングし、最後に合わせて動作の確認をしたいと思います。

中には、センサーやFAN、LEDを使うものがありますが、大丈夫。
本サイトのINSIDE TECHで回路の作り方含めた方法を記事にしています。今回はINSIDE TECHの記事と連携しながら記載していきますので、合わせて読んでくださいね!

今回の開発環境は「Arduino」を使います。開発環境の準備については、次の記事を確認してください。

関連記事

ミニケース「KARAKURI -HAKO-」のコンピュータをプログラミングする環境を準備します。 今回使用するコンピュータ「M5Stick C」は「Arduino IDE」で開発が可能です。「Arduino IDE」はC言語風の「Ardui[…]

 

プログラミングする機能の概要

今回プログラミングする機能をおさらいしましょう。
第4回 機能とプログラム構成」で検討した際に図にしていましたね。図中の「プログラム」に書いた部分が今回の対象になります。

では、図中の順番と多少前後しますが、順を追ってやっていきます。

 

CODE:ネットワークに接続する

M5StickCは標準でWifi接続の仕組みがついています。
ここではM5StickCを指定したWifi環境へ接続させます。
接続に必要な情報は次の2つです。

WifiルータのSSID 接続先のWifiルータのネットワークIDです。
携帯などでWifiを有効にすると検索結果として表示される名前です。
SSIDのパスワード SSIDに対応するパスワードです。

Wifi接続用に使うライブラリは次のものを使います。

WiFi Wifi制御用ライブラリ
Wi-Fiに接続する際にプログラム内でアクセスポイント情報(SSIDやパスワード)を記述すると、Wi-Fi環境が変わった際にプログラムの修正が必要になります。便利な機能としてアクセスポイント情報をNVS(不揮発性メモリ)に保存することができます。ただし、NVS領域は暗号化されないため、読みだすことができます。廃棄する際にスケッチを上書きするだけでは消えないため注意が必要です。

本サイトではアクセスポイント情報を指定して接続する方法と合わせて、アクセスポイント情報をM5StickCに覚えさせることで、プログラム上では指定しない方法の2種類のやり方を紹介します。ご自身にあった方法で活用してください。

 

SSID/パスワードをプログラム内で指定してWifiへ接続する方法の記事は次を参照ください。

関連記事

この記事では、Arduino IDEを使ってコンピュータをWi-Fiルータに接続する方法について紹介します。 Wi-Fi接続する方法は、2つがあります。今回はプログラム内でWi-FiのSSID/パスワードを指定して接続するやり方をご紹介し[…]

 

前回使用したWifi情報をM5StickCに保存しWifiへ接続する方法の記事は次を参照ください。

関連記事

この記事では、Arduino IDEを使ってコンピュータをWi-Fiルータに接続する方法について紹介します。 Wi-Fi接続する方法は、2つあります。2回目の今回はマイコンにアクセスポイント情報(SSID、パスワード)を記憶させることでプ[…]

 

これでWifiに接続することができました。
次は、インターネット上のNTPサーバを使ってM5StickCの時刻同期を行います。

CODE:時刻同期をさせる

時刻同期は、インターネットにあるNTPサーバという時刻サービスを提供しているサーバを使います。

今回は次のNTPサーバを使用します。

NTPサーバ名 MFEED時刻情報提供サービスを使用します。
NTPサーバ:ntp.jst.mfeed.ad.jp

時刻同期に使うライブラリは次のものを使います。

time 時刻制御用ライブラリ

 

NTPサーバから時刻を同期する方法の記事は次を参照ください。

関連記事

この記事では、Arduino IDEを使ってM5StickCをアクセスWi-Fiアクセスポイントに接続し、インターネットの時刻サービスを使って時刻を同期する方法について紹介します。 M5StickCなどのマイコンも内部に時刻をもってい[…]

 

CODE:センサーから温度と湿度を取得する

「DHT11」という温湿度センサーを使用します。センサーは外付けなので、ケーブルなどの下準備が必要です。

DHT11から温度と湿度を取得するには次のライブラリを使います。

DHT sensor library 温湿度センサー制御用ライブラリ

 

温湿度センサー「DHT11」を使用する方法の記事は次を参照ください。

関連記事

この記事では、M5StickCに温度・湿度センサー(以降、温湿度センサー)を接続して、部屋の温度・湿度を測定し、M5StickCのディスプレイに表示させます。 センサーを使うと、M5StickCでできることが増えてきます。 センサー[…]

 

CODE:画面に情報を表示する

M5StickCには標準でディスプレイが搭載されています。このディスプレイに情報を表示させる方法をご紹介します。

ディスプレイに情報を表示させるには次のライブラリを使います。

M5.Lcd 画面制御用のライブラリです。これはM5StickCのライブラリに含まれます。

 

ディスプレイに情報を表示させる方法の記事は次を参照ください。

関連記事

この記事では、Arduino IDEを使ってM5StickCのディスプレイに時刻や日付を表示させます。 なんと!、 今回のプログラムを書き込むことで、M5StickCは時計になります。 生活に役立つものができますね!しかも、イ[…]

 

CODE:冷却ファンに回転周波数を送信する

冷却ファンの回転速度を制御するためには、PWMという信号を冷却ファンに送信する必要があります。

また、冷却ファンへの電源供給とコネクタへの接続のために電子回路を作る必要があります。動作確認の段階では、ブレッドボードというものを使って電子回路を試作していきます。このあたりも含めて次の記事でご紹介しています。

 

冷却ファンの回転速度を制御する方法の記事は次を参照ください。

関連記事

この記事では、M5StickCと冷却ファンを使って回転速度制御をしていきます。 M5StickCから冷却ファンの回転を制御できれば、扇風機のように、自由に風量を変えることができます! 今回の冷却ファンは次のものを使います。パソコン用[…]

 

CODE:冷却ファンのLEDライティング信号を送信する

冷却ファンの回転速度制御に続いて、冷却ファンについているARGBという規格に対応したLEDをライティングします。

ライティングを行うためには、ARGB規格に対応した信号を冷却ファンに送信する必要があります。

ARGB規格に対応した信号を生成・送信するには、次のライブラリを使用します。

FastLED ARGBに使用されるLED製品に対応しているライブラリです。
このほかに「Adafruit NeoPixel Library」というものがありますが、今回はこちらを使います。

 

冷却ファンのLEDをライティングする方法の記事は次を参照ください。

関連記事

この記事では、M5StickCとLED搭載の冷却ファンを使ったLED発光制御の方法について紹介します。 前回は、M5StickCで冷却ファンを使った回転速度制御をおこないましたが、今回はLEDです。 使用するLEDは、複数のLEDを1個[…]

 

CODE:ブラウザでファンの回転速度やLEDライティング設定をする

これまでにご紹介してきたファンの回転速度制御や、LEDのライティング制御を行うプログラムは作成しましたが、M5StickCのボタンや、プログラムの書き換えで動作の変更を行うのは、使い勝手が悪いですよね。

そこでスマホやiPadなどのタブレット、パソコンに入っているブラウザ(Chromeなど)を使ってファンの回転速度やライティングの色などを変更できるようにします。

具体的にはM5StickCの中にWebサーバをプログラミングして、ブラウザからの要求に答えるようにします。

このプログラムには、次のライブラリを使用します。

WiFiServer Webサーバ機能を提供します。
WiFiClient Webサーバに接続された情報を格納します。

 

ブラウザでファンの回転速度やLEDライティングを設定する方法の記事は次を参照ください。

関連記事

この記事では、M5StickCに他のパソコンやスマートフォンからブラウザ経由で接続し、動作中のM5StickCの設定の変更を行うようプログラミングする方法について紹介します。 M5StickC本体にもボタンはありますが、M5Stick[…]

 

最終的なプログラムはこうなります。

これまでにご紹介した方法を組み合わせてプログラムを作成します。

最終的なプログラムはGitHubにて公開しています。ぜひご参照ください。

 GitHubのURLはこちら(https://github.com/karakuri-musha/karakuri-HAKO-)

 

以上で、プログラム作成は終了です。これで電子回路図とプログラムがそろいました。
次回はいよいよ組み立てに入りたいと思います。