IoT を使ってみる(その15:ESP32のディープスリープで長時間バッテリー駆動に挑戦)
前回は有機ELディスプレイ(OLED)「SSD1306」を紹介しました。 今回はIoTデバイス「ESP32」を長時間バッテリー駆動する際に必須とも言える「DeepSleep」機能を使ってみたいと思います。 ESP32は意外と電力を食う # ESP32 は非常に安価でありながらWi-FiやBluetoothが使える超お得マイコンです。 以前の回でもESP32について紹介しました。 開発ボードの大きさもマッチ箱程度(最近マッチ箱を見ませんが)であり、IoT機器として利用するには非常に便利です...
記事を読むGitHub Actions Runner Controller (ARC) をk3sにインストール
こんにちは、庄司です。 k3s は現在 x86_64、armhf、arm64/aarch64 と s390x アーキテクチャをサポートしています。また、GitHub Actions Runner Controller (ARC) の runner イメージは linux/amd64 (つまり x86_64) と linux/arm64 (つまり arm64/aarch64) をサポートしています...
記事を読むOpen62541を使用したOPC-UAクライアント開発
はじめに # 前回の記事 # 前回の記事(こちら)では、OPC-UAの概要やOpen62541のインストール方法について説明しました。 本記事を読む前にご覧ください。 本記事の目的 # 本記事では、下記の事項について説明します。 OPC-UA Clientのサンプル作成 サーバに登録した変数への読み書き サーバに登録した関数の呼び出し 開発環境 # 必要なライブラリ・ツール # 開発にあたって、下記のライブラリ・ツールを使用します...
記事を読むエアーギャップ環境のエッジデバイスにk3sをインストールする
こんにちは、庄司です。 筆者は遠隔地にある事務所の PC にソフトウェアをインストールする仕事をしていたことがあります。この時代インターネットはなく、何枚ものフロッピーディスクを持って事務所を訪問し、手順書をもとに数時間かけてインストールしていました。この記事のタイトルにあるエアーギャップ環境とはこのような環境をいいます。インターネットに常時接続された環境が一般的となり、ネットワークにつながっていない環境の方が特殊となりエアーギャップ環境と呼ばれるようになりました...
記事を読むIoT を使ってみる(その14:有機ELディスプレイ(OLED)SSD1306編)
この記事は豆蔵デベロッパーサイトアドベントカレンダー2023第18日目の記事です。 前回は温湿度センサモジュール「DHT11」を紹介しました。 今回はIoTデバイスに接続して使用する「有機ELディスプレイ(OLED) SSD1306」を紹介致します。 有機ELディスプレイ(OLED) SSD1306 # 前回は DHT11 で取得した温度・湿度の情報をシリアル通信でPCに転送して、COMポートの情報をシリアルモニタで確認していました...
記事を読むOpen62541を使用したOPC-UAサーバ開発
はじめに # 本記事の目的 # 本記事では,下記の事項について説明します。 OPC-UAの概要について Open62541のインストール方法 Visual Studioでの開発環境構築 OPC-UA サーバのサンプル作成 GitHubリンク # 本記事で実装するコードはこちらに記載しています...
記事を読むIoT を使ってみる(その13:温湿度センサモジュールDHT11編)
前回は FreeRTOS の「セマフォ」を紹介しました。 今回はIoTデバイスに接続して使用する「温湿度センサモジュール DHT11」を紹介致します。 温湿度センサモジュール「DHT11」 # DHT11は、温度と湿度を同時に計測することができるセンサモジュールです。 ネットでDHT11を検索すると4ピン(単体版)のものと、3ピン(モジュール版)のものが見つかりますが、今回使用するのは3ピン(モジュール版)の方です...
記事を読むIoT を使ってみる(その12:FreeRTOS排他制御編)
前回は「FreeRTOS」のタスク優先度を考察しました。 今回は「排他制御」について見ていきたいと思います。 排他制御とは # 複数のタスクが並列実行するプログラムにおいて、複数のタスクから利用される”共有資源"が存在する場合、複数のタスクが同時に”共有資源”にアクセスすると、”共有資源”に不整合が発生する場合があります。 ”共有資源”には、メモリや外部機器などが該当します...
記事を読むIoT を使ってみる(その11:FreeRTOSタスク優先度編)
前回は「FreeRTOS」のタスクを紹介しました。 今回は前回説明できなかったタスクの挙動が優先度でどのように変わるのかを見ていきたいと思います。 サンプルプログラム # COMポートに”HIGH”、”LOW”の文字を出力する2つのタスクを用意しました。 タスクの優先度は初期値として両方とも「2」を設定しています...
記事を読むIoT を使ってみる(その10:FreeRTOSタスク編)
前回はESP32などの安価なIoTデバイスで利用できる「FreeRTOS」を紹介しました。 今回はFreeRTOSの詳細に入っていきたいと思います。 FreeRTOSのタスク # FreeRTOS では処理を実行する単位を「タスク」として構造化します。 各タスクは、システム内の他のタスクやスケジューラ自体に依存することなく、独自のコンテキスト内で実行されます。 任意の時点で実行できるタスクは 1 つだけであり、FreeRTOS スケジューラがどのタスクを実行させるかを決定します...
記事を読む