ESP32 MicroPython開発環境セットアップしてLチカまで

前回の記事「ESP-IDFをMacにセットアップしてESP32-DevKitCでLチカ」に続いてESP32ネタで、今回はMicroPythonによる開発手順を確認してみます。

開発環境のセットアップ手順は、MicroPython port to the ESP32に従って進めています。

この手順は、MicroPythonのファームウェアをソースからビルドしてESP32開発ボードに転送するものになります。MicroPythonファームウェアはESP32用のバイナリも配布されているので簡単に試したい方はバイナリ版 Firmware for ESP32 boards を利用したほうが良さそうです。

Toolchainのセットアップ

Toolchainのセットアップは前回のESP-IDFの記事「Toolchainのセットアップ」と同じです。

ESP32 toolchain for macOS を
https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz からダウンロードして、以下のようにファイルをespディレクトリに展開します。

$ mkdir -p ~/esp
$ cd ~/esp
$ tar -xzf ~/Downloads/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz

参考: Setting up the toolchain and ESP-IDF

“ESP32 MicroPython開発環境セットアップしてLチカまで” の続きを読む

ESP-IDFをMacにセットアップしてESP32-DevKitCでLチカ

会社のテックWebマガジン コピペテック の電子工作ネタ用にESP32について調べています。

まずはHello Worldとして、ESP32用の開発環境ESP-IDFをMacにセットアップし、ESP32開発用ボード ESP32-DevKitCでLチカしてみました。

開発ボードは秋月電子通商で購入した「ESP32-DevKitC ESP-WROOM-32 開発ボード」で試しています。

ESP32の開発環境は、主にArduino IDEとESP-IDFがあり、
Arduino IDEの方が使い勝手が良いように思いますが、Arduinoと比べてESP32のメリットであるMicroPythonによる開発をするためにはESP-IDFをベースとした環境が必要になります。
そこでまずはESP-IDFによる開発手順も確認してみたので、それをまとめてみました。

(その後調べてわかったことですが、ESP32用のMicroPythonファームウェアはバイナリでも配布されているので、こちらの Firmware for ESP32 boards を使ったほうが簡単にセットアップでます。参考: ESP32でMicroPythonを試す!簡単ですぐできました!)

ESP-IDFを利用するために必要なもの

Get Started > What You Need にESP-IDFを利用した開発環境で必要となるものがまとめられています。

  1. PC
  2. Toolchain
  3. ESP-IDF
  4. テキストエディタ
  5. ESP32ボード本体とUSBケーブル

Toolchainは、ESP32用のアプリケーションのビルドツールです。
ESP-IDFは、ESP32用の基本APIとToolchainを使用するためのスクリプトを提供する開発フレームワークになります。

“ESP-IDFをMacにセットアップしてESP32-DevKitCでLチカ” の続きを読む

Azure Face APIで顔を識別する手順をcurlで追う

会社のテックWebマガジン コピペテック で、micro:bitと組み合わせた入室管理アプリケーションの記事を公開予定です。
紹介しているのは、人感センサー(焦電赤外線センサー)でオフィスの入出を検知してmicro:bitからiPhoneにコマンドを送って写真を撮り、IFTTT経由でWebhookを叩いて、Microsoft AzureのFace APIで誰が来たか識別し、Slackにお知らせするというシステムです。

このシステムでは、人の検出と、新しく来た人の登録するところでAzure Face APIを利用していますが、この手順について調べた内容についてせっかくなのでまとめて置きたいと思います。

手元の画像でFace APIについてちょろっと試すには、サイトのトップページでも試すことができます。まずは、ここで遊んで精度を確認してみるのも良いかもしれません。

AzureにFace APIリソースを追加

Face APIを利用するには、Azureポータルで「Face API」リソースを作成して、APIキーを取得します。

Azure ポータルにサインインして、画面の左のメニューから、[すべてのサービス] > [AI + MACHINE LEARNING]から[Cognitive Service]を選択します。

Cognitive Servicesのページに切り替わるので、左上の[追加]ボタンまたは[Congnitive Serviesの作成]ボタンをクリックします。

AI + Machine Learningのページで、Cognitive Servicesの[さらに表示]をクリックします。


“Azure Face APIで顔を識別する手順をcurlで追う” の続きを読む

MS Teams のbot開発の始め方

Get started on the Microsoft Teams platform with Node.jsを参考に、MS Teams用のbot作成に必要な手順のみを確認したメモになります。

概要

MS TeamsのBotは、Botの他にTabなどを含むアプリケーションとして定義し、アプリケーションをMS Teamsにデプロイすることで利用可能になります。
また、MS Teamsのbotは、MS Bot frameworkに登録し、それをアプリケーションのmanifestに指定する必要があります。

Botのホストはどこでも可能で、エンドポイントはBot frameworkのBotの設定で指定します。
Botの認証は、Bot frameworkで発行したパスワードにより行います。

(Bot Frameworkは、Azure Bot Serviceに移行されました。以下の記事のBot Frameworkの記述はAzure Bot Serviceに置き換えて参照ください)

事前準備

Office 365のテナントを用意する

Office 365 Developer Programに登録すると1年間利用可能な開発用のオフィス365テナントを入手できます。

“MS Teams のbot開発の始め方” の続きを読む

Symfony 3 DoctrineMigrationsBundleの使い方

この記事では、DoctrineMigrationsBundleのセットアップ手順と、マイグレーションの作成・適用手順についてまとめてみました。

Symfonyは、デフォルトではマイグレーション機構が含まれていません。
また、doctrine:schema:update --forceコマンドを使ってデータベースにスキーマを反映することができますが、デフォルトではProduction環境で利用できないためマイグレーションを導入したほうが無難です。

Symfonyでマイグレーションを実装するには、DoctrineMigrationsBundle (Github: doctrine/DoctrineMigrationsBundle)を導入します。

インストールと設定

composerでパッケージを追加

$ composer require doctrine/doctrine-migrations-bundle "^1.0"

Bundleの読み込みを追加

// app/AppKernel.php
public function registerBundles()
{
    $bundles = array(
        //...
        new Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle(),
    );
}

“Symfony 3 DoctrineMigrationsBundleの使い方” の続きを読む

Facebook SDK for PHP (facebook/graph-sdk) v5.xのインストールと使い方まとめ

PHP用Facebook SDK v5を利用してFacebookアプリを作成する最小限の手順です。
Github: facebook/php-graph-sdk

以前に書いた記事「Facebook PHPをComposerで利用するには」の内容が、古くなっていたので、改めて試してまとめました。

SDKのインストール

Instllationに従い、facebook/graph-sdkをcomposerでインストール

$ composer require facebook/graph-sdk

facebook/graph-sdkが含まれる以下のcomporser.jsonが生成される

// composer.json
{
  "require" : {
    "facebook/graph-sdk": "^5.6"
  }
}

ログインサンプル

php-graph-sdk/facebook_login.mdのサンプルを実装して動作を確認してみます。
“Facebook SDK for PHP (facebook/graph-sdk) v5.xのインストールと使い方まとめ” の続きを読む

Let’s encryptでUbuntu 16.04のApacheをhttps化するには

Let’s encryptとは

無料で使えるSSL認証局で、Internet Security Research Group (ISRG)という団体が提供しています。

ISRGには、Current Sponsors – Let’s Encrypt – Free SSL/TLS Certificatesを見ると、しっかりスポンサーがついているので安心して使えそうです。
SAKURA Internetなど日本の企業もスポンサーも居ます。

証明書の発行とセットアップは、公式に提供されている Certbot コマンドで行います。

証明書の期限は90日で、エージェントが自動更新を行ってくれます。
ということは、AWSのELBのように、Let’s encrypt非対応のミドルウェアを利用している場合は、更新の仕組みを自分で用意する必要があります。

また、さくらのレンタルサーバなどLet’s encryptに対応していてるホスティングサービスの場合、サービスのコントロールパネルで設定が可能でセットアップが簡単にできたりするそうです。

さくらインターネットの「さくらのレンタルサーバ」、コントロールパネル上の簡単操作で無料SSL証明書「Let’s Encrypt」を設定可能に~「Let’s Encrypt」のシルバースポンサーとして参画し、常時SSL化推進に貢献~
提供は、10/17からのようです。

“Let’s encryptでUbuntu 16.04のApacheをhttps化するには” の続きを読む

SymfonyでJS、SCSSをWebpack encoreでビルドするには

Symfonyで、JavascriptやCSSなどフロントエンドのアセットを管理する仕組みとして、以前はAsseticが用意されていましたが、Webpackを利用するWebpack Endoreに置き替わり今時な構成になりました。

Laravelで言うところのElixirにあたります。

Webpack Encoreの利用方法については、公式ドキュメント Managing CSS and JavaScript に一通りの使い方が載っています。
また、Symfonyのでもアプリ symfony/symfony-demo が、Webpack Encoreを使った構成になっているので、こちらのソースを読むほうが解りやすいかもしれません。

この記事では、公式ドキュメントの例、First Example を試してみた手順をまとめいます。
公式ドキュメントでは、nodeのパッケージ管理システムにyarnを使っていますが、私は普段まだnpmを使っているので、npmを利用してパッケージをインストールしています。

プロジェクトの構成

symfony/symfony-demo を参考に、以下のようなディレクトリ構成にします
“SymfonyでJS、SCSSをWebpack encoreでビルドするには” の続きを読む

React x TypeScript x Webpackの開発環境でjQuery (Bootstrap)を使うには

TypeScriptで記述しているReactアプリケーションをWebpackでビルドしている開発環境で、jQueryライブラリをあわせて使う構成について調べたことをまとめてみました。

ここでは、前回の記事 「TypeScript,WebPackを利用したReactJS開発環境セットアップまとめ」で構築したプロジェクトに、jQuery Bootstrapを追加してみます。

jQueryは、TypeScriptのコンパイルはimportで通りますが、そのままでは、jQueryがbundle.jsに含まれません。
jQueryをbundle.jsに含めるためには、ProvidePluginを利用することで解決できます。
また、jQuery本体については、CDNからjsを含めても依存の問題は発生しにくいので、scriptタグで指定してしまうのが良い気もします。

ReactでBootstrapを使いたい場合は、React-Bootstrapを使うほうが筋が良いと思いますが、ここではあえて本家のBoostrapを利用してみます。

パッケージのインストール

jqueryとbootstrap、その型定義をインストールします
また、bootstrapのPopoverはpopper.jsに依存しているのでpopper.jsも追加しておきます

$ npm install --save jquery @types/jquery bootstrap @types/bootstrap popper.js

“React x TypeScript x Webpackの開発環境でjQuery (Bootstrap)を使うには” の続きを読む

React x SCSS x Webpack開発環境セットアップ手順まとめ

スタイルシートをSCSSで、JSはES6で記述するReactJSのアプリケーションを、Webpackでビルドする手順についてまとめてみました。

スタイルシートはバンドルされたJSに含めず、ExtractTextWebpackPluginを利用してファイルを分けるようにしています。

この記事を試したnodeのバージョンは以下の通りです

$ node -v
v6.9.4
$ npm -v
3.10.10

プロジェクトの構成とnpmの初期化

プロジェクトのディレクトリ構成は以下のようにします

“React x SCSS x Webpack開発環境セットアップ手順まとめ” の続きを読む