ESP32-DevKitCでI2C接続が正しくできていることを確認する

Posted on Sun 31 March 2019 in JP • Tagged with ESP32

はじめに

I2C接続が必要なデバイスの場合、テスター等で確認することはできないので正しく接続できているか確認するのが面倒です。

ESP-IDFに便利なツール(i2c_tools)があったので試してみます。このツールでは、サンプルプログラムをESP32-DevKitCに転送し、シリアルコンソール上でコマンドを実行することで、I2Cバスに接続されているデバイスの検知や、レジスタの読み書きが簡単にできます。

今回は、温度・湿度・気圧を測定できるセンサーのBME280をESP32-DevKitCにI2Cで接続し、i2c_toolsで動作を確認してみます。

回路図

i2c_toolsのREADME.mdによるとデフォルトのピンアサインは下記のようになっています。 ESP32 I2C MasterがESP32-DevKitC側で、Sensorが接続するデバイス側のピンです。

SDA SCL GND Other VCC
ESP32 I2C Master GPIO18 GPIO19 GND GND 3.3V
Sensor SDA SCL GND WAK VCC

このピンアサインは、ツールをESP32-DevKitCに書き込み後、i2cconfigコマンドで変更することもできますが、今回はデフォルトのピンアサインで接続します。

下記のように接続しました …


Continue reading

ESP32でAmazon FreeRTOSを使用してLEDをチカチカさせてみた

Posted on Tue 19 March 2019 in JP • Tagged with AWS

はじめに

ESP32でAmazon FreeRTOSを使ってLEDチカチカさせる手順についてまとめます。

下記の公式ドキュメント等を参照してESP32にfirmwareの転送しMQTTのPublishができていることを前提としています。

Espressif ESP32-DevKitC と ESP-WROVER-KIT の開始方法

デモのesp32_devkitc_esp_wrover_kitに手を加える形でLチカを実現します。

ESP32でのGPIOの操作について

ESP32向けの公式ライブラリとしてESP-IDFが用意されています。 ESP-IDFはAmazon FreeRTOSに組み込まれているので、これを利用してGPIOを操作します。

ESP-IDFを使用したGPIOの操作に関しては、ESP-IDFのリファレンス(API Reference - Peripherals API - GPIO & RTC GPIO)に説明があります。

また、サンプルコードもGitHub(ESP-IDF GPIO Sample)で公開されています。

回路構成

GPIO4を制御してLEDをチカチカさせることにします。 GPIO4とGNDの間にLEDと抵抗を入れてつなぎます。抵抗の大きさは適当です。

コードの修正

esp32_devkitc_esp_wrover_kitのコードの修正を行います。 書き換え対象は、amazon-freertos/demos/espressif/esp32_devkitc_esp_wrover_kit/common/application_code/main.c です。

元々のサンプルコードはDEMO_RUNNER_RunDemos …


Continue reading

Cisco Catalyst 2960L を使用したリンクアグリゲーションの設定

Posted on Mon 14 January 2019 in JP • Tagged with サーバー管理

ファイルサーバーとL2スィッチ間のリンクアグリゲーションを設定する

自宅用にCisco Catalyst 2960Lを手に入れました。 このL2スイッチではリンクアグリゲーションを設定することができるので、ファイルサーバーとスイッチ間でリンクアグリゲーションを設定します。

これにより、帯域を増やすことができ複数のクライアントが同時にアクセスしてもパフォーマンスの低下を防げることが期待できます。

リンクアグリゲーションとは

リンクアグリゲーション(IEEE 802.3ad)とは、複数の物理リンクをまとめて1本の論理リンクとして扱うことの技術です。 物理リンクの本数分の帯域を増やすことができる他、複数本の物理リンクが切断されてしまっても残りのリンクで通信を継続できるため、耐障害性も向上します。

CiscoではEtherCahnnelと呼ばれています。

構成

link_aggregation

上記のようにファイルサーバーとスイッチ間を2本のLANケーブルで接続します。 ファイルサーバー側のLANポート2つと、スイッチ側のLANポート2つを、それぞれ接続します。

設定

ファイルサーバー側

Netplanを使用して設定を行います。 enp0s31f6とenp8s0の2つのポートをまとめたbond0というdeviceを作成します。 modeは、IEEE802.3ad準拠で通信できるよう"802.3ad"を設定しています。

$ sudo vi /etc/netplan/01-netcfg.yaml
# This file describes the …

Continue reading

自宅SAN(Storage Area Network)の構築

Posted on Sat 29 December 2018 in JP • Tagged with サーバー管理

自宅SANの構築

仮想サーバーを立ててライブマイグレーションをさせたい場合や、ディスクを一台のサーバーに集約させたい場合などに、SANを構築すると便利です。 ファイルベースのアクセスとなるNASとは違い、SANはブロックデバイスの形でネットワーク内に共有されます。 そのため、オーバーヘッドが小さいのに加えて、更にファイバーチャネルを使用して高速なネットワークを作成することもできます。

今回は、自宅にSANを構築したので、その手順をまとめます。

構成

HomeSAN

ストレージを公開する側をターゲット、ストレージを使う側をイニシエータといいます。 ターゲットとイニシエータには、QLogicのQLE2560のHBA (Host Bus Adapter)をPCIeで刺しています。 このボードは型が古いため運が良ければ一枚1,000円程度でヤフオクで取得できます。

それぞれのHBAはファイバーケーブルで接続します。ケーブルにはシンクルモードとマルチモードの違いがある他、コネクタ形状には、SCとLCという違いがあります。 HBAに刺さっているSFPトランシーバーが対応しているものを使用する必要があります。

私の場合は、LC - マルチモードのケーブルを使用しています。

ターゲットとイニシエータには、Ubuntu 17.10をインストールしてあります。

ターゲット側のセットアップ

ターゲットモードを有効にする

QLE2560のボードを接続すると、自動でqla2xxxドライバーが読み込まれるはずです。 qla2xxxはデフォルトでイニシィエータモードで動作するので、ターゲット側ではターゲットモードで動作するように設定を変更します。 qla2xxx向けの設定ファイルを新規で作成します。

$ sudo …

Continue reading

CentOS7で固定IPアドレスの設定を行う

Posted on Sat 18 August 2018 in JP • Tagged with サーバー管理

固定IPアドレス設定

CentOS 7.5.1804 での固定IPアドレスを設定するコマンドです。

# nmcli connection modify eth0 ipv4.addresses [割り当てたいIPアドレス] ipv4.gateway [GatewayのIPアドレス] ipv4.dns [参照するDNSサーバのIPアドレス] ipv4.method manual connection.autoconnect yes

2番目と3番目のオプションは、それぞれ短縮可能です。

  • connection -> c
  • modify -> m

ipv4.methodにmanualを設定しているのは、DHCPではなく固定でIPアドレスを割り当てるためです。 connection.autoconnect yesで起動時にNICが立ち上がるように設定しています。

実行例

# nmcli connection modify eth0 ipv4.addresses 192.168.1 …

Continue reading

2008年と2015年に組んだ省電力サーバーのベンチマーク比較

Posted on Mon 25 May 2015 in JP • Tagged with サーバー管理

はじめに

サーバーを新しく組んだので、ベンチマークの比較をしてみます。
比較対象サーバーの構成の比較は下記のとおりです。

2008年 2015年
CPU Intel Atom330 AMD Athlon5350
メモリ DDR2-800 2GB DDR3-1600 16GB

ベンチマークソフトはunixbenchを使用します。

Atom330とAthlon5350のスペック比較

Atom330 Athlon5350
周波数 1.6GHz 2.05GHz
L1 cache 64 KB (code) / 48 KB (data) 128 KB (code) / 128 KB
(data)
L2 cache 1024KB 2048KB
TDP 8W 25W
実Core数 2 …

Continue reading

だれでも組める! 省電力かつ実用的な自宅サーバー 2015年版

Posted on Sat 25 April 2015 in JP • Tagged with サーバー管理

なぜ自宅サーバーか?

「自宅サーバーではなく、VPSを利用すれば安くサーバーを使えるのでは?」と思われる方も多いかと思います。
たしかに、VPSをレンタルすれば安い費用でサーバーを利用でき、さらに「初期投資が不必要」「サーバーの電気代がかからない」というメリットがあります。
しかし、自分はファイルサーバーにも使用したいのでファイルを手元に置いておける自宅サーバーを使用することにします。

どんなサーバーを組むのか?

どんなサーバーを組むのかによって、重視するポイントが変わってきます。
自分は下のような用途でサーバーを使用します。

  • Webサーバー
  • ビルドサーバー
  • ファイルサーバ

ビルドサーバー用途からなるべくCPU性能がいい方がいいし、メモリーも多い方がいい。
また、ファイルサーバにも使うのでディスク容量もたくさん欲しい。自宅にサーバーを置くので電気代はあまりかからない方がいい。
...と、要は性能はなるべく高く、かつ電気代はなるべく安くとないものねだりになってしまいした。
というわけで今回は、通常のデスクトップPCよりは低消費電力かつ、サーバーの用途に支障をきたさない程度のサーバーの構成を考えてみたいと思います。

PCパーツの選択

サーバーを建てるには、以下のパーツを用意する必要があります。

  • CPU
  • マザーボード
  • メモリー
  • HDDまたはSSD
  • 電源
  • PCケース

自分は、電源とPCケースは持ってるもの使用するので、ここではCPU、メモリーとHDD(SSD)を選んで行きます。

CPU

今現在、デスクトップ向けで低消費電力かつそこそこの性能のCPUは、IntelのCelenron J1900やPentium …


Continue reading