これは箇条書きなどの中で改行するために使われているようです。なってこれも一つの改行としてレンダリングされます。Codeに定義された制御コードが入力されます(記号は英語キーボードの位置に準拠するようです)。以下に一覧があります。空白文字の一覧は以下にあります。相当するものとのこと。相当するそうですが、入力する方法は見つかりませんでした。)プログラミング言語によって、これらが改行扱いされるかは異なるようです。場合によっては、これらが改行として扱われることを想定していないコードにおいて脆弱性を引き起こす原因になることもあるとか。使って描画するライブラリを公開していました。これを改造してパネル2枚を連結した128x32に描画してみました。www.youtube.com使っているのは以前の記事とおなじパネル2枚とESP32です。LEDディスプレイモジュール192×96mmneocat.hatenablog.comこのパネルは裏面のコネクタに同一形状でINPUTとOUTPUTが付いており、付属のコネクターでデイジーチェーン接続することができるようになっています。OUTPUTにはシフトレジスタの出力が繋がっており、INPUTから入ったデータが32bit分遅れて出て行くようになっているので、ライブラリからは同じインターフェイスで単に横幅が128ピクセルあるかのように扱うことができます。改造したライブラリは128x32ブランチにあります。関数の実装をいじれば、縦に並べて64x64にするといったことも可能でしょう。転送するデータ量が増えるため、タイマー割り込みの頻度を少し遅くしてあります。これにより暗めの表示をするとちらついて見えることがあります。枚数を増やすこともできるはずですが、よりちらついてしまいそうです。LEDマトリクスパネルに128x32で描画してみたTweet広告を非表示にするもっと読むコメントを書く2018-07-16スマートコンセントをクラウドを使わずLANから制御してみたTweet最近のIoTブームでクラウドから制御できるコンセント(スマートプラグとかスマートコンセント)が安価に入手できるようになりました。Home、IFTTTに対応しており、音声制御や自動化が可能になっています。それだけでも便利なのですが、LANに閉じて使いたいときもあるよね、ということで、クラウドに繋がらない状態でも制御できないかやってみました。(何となく第三者のシステムから家庭内の機器を制御できる状態にしておきたくないとか、クラウドサービスが停止したら使えなくなるのがいやだという理由ですが。)使ったもの今回買ったのはこのHyletonという所の二つの製品。Amazonのタイムセールで一番安かったので。プラグ4つ後者の方は、USB電源2つ同時のON/OFFも制御することが可能です。セットアップセットアップはSmartHomeというアプリを使って行い、Bluetooth経由で接続先のWi-Fi(2.4GHzのみ)の情報、およびクラウドやLANから制御するための暗号キーがコンセントに設定されます。いうクラウドサービスを利用しているようです。常時クラウドにMQTTで接続しているものの、LAN内からも制御を受け付けており、スマホアプリも同一LANにある(UDPポート6666番のブロードキャストを見ることで検出可能)場合はLAN内で直接通信をしているようです。Tuyaを利用しているデバイスは、有志が開発したNode.jsでLANから制御するためのNode.jsのライブラリがありますので、これを使ってLAN内から制御してみることにしました。この方法であれば、インターネットとの通信が遮断された環境や、MQTTがブロックされた状態であっても、制御が可能になります(ただし設定時は(少なくとも同一のSSID/パスワードで)インターネット接続可能なWi-Fiは必要ですが。)github.comセットアップする際、スマホから設定されるキーを取得してやる必要があります。いうHTTPSプロキシを使ってスマホの通信内容を解析してキーを取り出しました。Charlesのセットアップとスマートフォンに独自CA証明書を信頼させる手順は以下が詳しく参考になります。このiPhone・Androidの手順を踏めばOKです。便利HTTPS通信の内容が取得できるようになったことを確認の上で、スマホアプリから設定操作をやり直すと、キーが取得できます。OFFとコマンドを実行することでコンセントのON/OFFができます。飛ばして高速化も可能です(以下参照)。すべての電源をOFFなどとコマンドを叩くことでLANから制御が可能です。使えば、Siriから制御することも可能です。LEDマトリクスパネルを制御ArduinoTweetESP32を使って、Amazonで安価に売られている64x32ピクセルのLEDマトリクスに色々表示できるようにしてみました。あとは適宜ブレッドボードなど。Xの充電状況を測ってみるTweetBluetooth接続ができるUSB電圧・電流テスター「UM24C」を買ってみました。公式のAndroid端末やWindows用のソフトを使って値を読み出すことができます。自作のプログラムからこれを読み出してみました。カラーLCDがついていてなかなか派手ですが見やすい。上下に左右2つのボタンがついていて、これで操作します。操作HELP表示(英語)つき。これ単体で電圧や電流変化のグラフを見ることもできたりして、なかなか高機能です。入手方法Amazonでも購入できます。慣れてる人ならAliExpressで購入した方が安く買えます。選べますが、そちらはBluetooth通信機能がありませんのでご注意を。購入から1週間くらいで届きました。上位版?のUM25Cというのも出ているようですね。Type-Cボートがついているらしい。読み出してみるUSB電源につないだ状態でBluetoothデバイスを表示させてみると、普通のSPP(シリアルボートプロファイル)として見えます。Windowsマシンでは、UM24Cを追加すると、PINを聞かれ、「1234」を入力すれば接続できます。COMボートが2つ追加され、どちらか一方に接続して利用します。Instrumentsの計測プラットフォーム(NI-VISA)が丸っと入るため、かなり巨大です。)に接続してもデータが読めず。以下の手順で接続できました。接続できるようになりました。あとは、適当なプログラムでこのポートを開き、「0xf0」の1バイトを送信すると、130バイトほどのレスポンスが返ってきます。いうターミナル接続ソフトです。A...他にも電流積算値や抵抗値など、画面上に出ているものは大体そのまま全て並んでいることがわかります。」「0xf4」で積算値グループの切り替えやクリアができたりします。プログラムでロギングしてみるRubyでログを記録するプログラムを書いてみました。1endこれを実行すると1秒ごとにJSON形式で計測値が出力されます。Xの充電中の電流などを計測してみました。使って取得することができます。trueこれを定期的に記録して、UM24Cで測った計測値と合わせてグラフ化してみました。以下が残り5%の状態から100%までの、2時間半の充電中の状況です。単位が入り混じってしまっていますが、92-93%くらいまで充電されたところで充電電流がカクッと減る様子などがみて取れます。2700mAhと結構ぴったり一致しました。Xの最大容量は2800mAhですが、使っているうちに僅かに劣化したようです。いえ充電中も電源はONなので、iPhoneの消費と誤差がたまたま相殺したのでしょうかね。AMG8833、いわゆるGrid-EYEを使ってみました。www.switch-science.com上記の説明の通り、60度の四角錐の測定エリア(2次元)を8x8に分割した64個のピクセルについて、0〜80°Cの温度が得られます。時間分解能は10fpsです。I2Cで読み出してみました。SDA)の線で繋ぐだけで動作します。ESP8266の場合、ArduinoのWireライブラリはデフォルトでSDAにGPIO4、SCLにGPIO5を使用するため、この通りにしておくとスムーズです。(これ以外のピンでもピン番号さえ指定すれば動作します。)ESP8266はこちらのブレークアウトボードを使いました。ESP-WROOM-02-搭載mikroBUS-R-対応ブレークアウトボード-Ver-2基盤は以前別の目的でFusionPCBで作ったものを流用しています。GPIO13にはステータス確認用のLEDがついています。AMG8833が取得した10fpsの結果をリアルタイムに手軽に可視化して見るため、WebSocketでブラウザにデータを流して表示してみることにします。ESP8266上にWebサーバ/WebSocketサーバを乗せて、そこにWebブラウザで接続すれば見られるようにしましょう。AMG8833に対応したArduino用のライブラリはいくつか公開されていますが、今回はAdafruitが公開しているものを使いました。Libraryを検索してインストールします。いうライブラリも入れておきます。これは名前の通りWebSocketのサーバ/クライアント実装です。IDEで書き込みます。AMG8833に関連するのは以下の部分です。0x68はこのセンサのI2Cアドレスです(0x68と0x69を基盤上のジャンパで選択可能。Adafruitのライブラリではデフォルトが0x69になっていました。amg.readPixels(pixels);ESP8266を起動すると、指定したWi-Fiに接続し(接続中は1秒間隔でLEDが点滅し、接続成功すると3秒間隔の点滅になります)、Webサーバが起動します。」のように接続すると、以下のように8x8のグリッドにリアルタイムの出力値が表示されます(なお自分の方に向けたときに鏡像になるよう、左右反転して表示させています)。近距離なら人の形が識別できそう。センサから2mくらい離れたところで手を振ってみたところ。10fpsだと結構動きもわかります。暖房をつけている状態で部屋全体が入るくらいの距離にしてみると、天井近くの方が床付近よりも2〜3°Cくらい暖かいことがわかったりします。ここで見ているのは空気の温度ではなく、壁の温度だと思います。Request作成ページを開くコマンドを作りました。ghprとするだけでOK(なおブラウザを開くopenコマンドはMacの前提です)。Request先のブランチを推定する処理です。等として固定値を入れておくと良いでしょう。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。