head

2017年5月26日金曜日

esp32, TFT ILI9341 display テスト編



SPI通信の、TFT ILI9341 ディスプレイを
esp32 で試してみました。


#  thanks /参考のページ
https://github.com/MartyMacGyver/ESP32_Adafruit_ILI9341

LIB:
https://github.com/adafruit/Adafruit_ILI9341

https://github.com/adafruit/Adafruit-GFX-Library


# 動画



# 配線

[ ILI9341 ] - [ esp32 ]
CS - 22
DC - 21
MOSI - 23
CLK - 19
RST - 18
MISO - 25
LED - 3V3
VCC - 3V3
GND - GND

*) 以前のesp8266版 、TFT側配 線参考にしています。
http://knaka0209.blogspot.jp/2017/02/esp-wroom-02-43.html

# まとめ
 以前より、表示は速くなった気がします。


==== Update :2017/05/26=====
NTP時計、追加してみました。
表示間隔が短いと、少しチラつく見え方となり。。
調整したいと思います。



#



# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288




2017年5月25日木曜日

esp32, BME280 読み込み編, ESP-IDF

先人さまの情報を参考に、esp32 のBME280 / I2Cセンサ 読み込み機能
をテストしたいと思います。



#  thanks /参考のページ
https://github.com/yanbe/bme280-esp-idf-i2c

# 配線


基板の都合で、I2C ピンの定義変えています。
SDA : #21
SCL : #22

結線 / BME 基板 左から、(秋月さんの BME280モジュール)
BME280 - esp32
1 - VDD
2 - GND
3
4 - SDA
5 - VDD
6 - SCL

*1) この場合、I2C スレーブアドレスは : 0x77 らしいです。
*2) BME280配線は、以前のブログ参考にしています。
LCDで 気温/湿度/気圧/時刻の表示。AQM0802+BME280:
http://knaka0209.blogspot.jp/2016/06/LCD-BME280-1.html

# Log




# おまけ/ BME280 +BLE発信
BLE発信⇒ wifi転送機能で、クラウド側に登録してみました。
*) 温度/ 湿度/ 気圧 hPa



# 関連
 esp32, 複数の BLE beacon + WIFI Bridge の設置 (ESP-IDF)
http://knaka0209.blogspot.jp/2017/04/esp32-10-advBridge.html



# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288






2017年5月24日水曜日

esp32, UART テスト編 (UART2)

esp32 の3系統あるらしき、UART を使ってみようと思います。
*) 今回は、UART2 のみ使用しています。

#
example / uart_echoを参考にしています。
TX入力信号を、ループバック する動作らしいです。

*) 入力コードが、 RXに出力されます。

ドライバ書込み後、 #16 #17 に、 FTDI  UARTアダプタ接続
して、動作確認しています。


# 配線



esp32  FTDI 
#16(TX)  RX
#17(RX)      TX
#18(RTS)  CTS
#19(CTS)  RTS

# code

/* Uart Events Example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "nvs_flash.h"
#include "driver/uart.h"
#include "freertos/queue.h"
#include "esp_log.h"
#include "soc/uart_struct.h"
/**
* This is a example exaple which echos any data it receives on UART1 back to the sender, with hardware flow control
* turned on. It does not use UART driver event queue.
*
* - port: UART1
* - rx buffer: on
* - tx buffer: off
* - flow control: on
* - event queue: off
* - pin assignment: txd(io4), rxd(io5), rts(18), cts(19)
*/
//#define ECHO_TEST_TXD (4)
//#define ECHO_TEST_RXD (5)
#define ECHO_TEST_TXD (16)
#define ECHO_TEST_RXD (17)
#define ECHO_TEST_RTS (18)
#define ECHO_TEST_CTS (19)
#define BUF_SIZE (1024)
//an example of echo test with hardware flow control on UART1
static void echo_task()
{
// const int uart_num = UART_NUM_1;
const int uart_num = UART_NUM_2;
uart_config_t uart_config = {
.baud_rate = 115200,
.data_bits = UART_DATA_8_BITS,
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_CTS_RTS,
.rx_flow_ctrl_thresh = 122,
};
//Configure UART1 parameters
uart_param_config(uart_num, &uart_config);
//Set UART1 pins(TX: IO4, RX: I05, RTS: IO18, CTS: IO19)
uart_set_pin(uart_num, ECHO_TEST_TXD, ECHO_TEST_RXD, ECHO_TEST_RTS, ECHO_TEST_CTS);
//Install UART driver (we don't need an event queue here)
//In this example we don't even use a buffer for sending data.
uart_driver_install(uart_num, BUF_SIZE * 2, 0, 0, NULL, 0);
uint8_t* data = (uint8_t*) malloc(BUF_SIZE);
while(1) {
//Read data from UART
int len = uart_read_bytes(uart_num, data, BUF_SIZE, 20 / portTICK_RATE_MS);
//Write data back to UART
uart_write_bytes(uart_num, (const char*) data, len);
}
}
void app_main()
{
//A uart read/write example without event queue;
xTaskCreate(echo_task, "uart_echo_task", 1024, NULL, 10, NULL);
}


# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288


2017年5月20日土曜日

RN4020 BLE, esp32 WIFI Bridge 接続編




RN4020 BLEを使った、前回と同様のBLE デバイス間通信試してみたいと思います。

以前開発した、esp32 WIFI bridge機能(クラウド転送)
に対応修正してみました。



# 概要
RN4020 : Advertising 送信
esp32 : BLE Central で、 adv受信 ⇒wifi 起動/ クラウド転送。





# 動画




# 追加した部品。
マイクロチップ社/ RN4020 (RN4020使用 BLE モジュール)
*) ※技術基準適合証明番号:201-140392
http://akizukidenshi.com/catalog/g/gK-11102/

arduino (pro mini/ atmenga328P 等)
LM60BIZ アナログ温度センサ

*)その他、電源回路/配線等


# RN4020 コマンド制御
 データシート等を参考に、Advertising 処理を追加。
RN4020 , UART command
*) UART : 9600 baud
### adv Send
SN,D11000011000012
R,1 ( 再起動)
A (adv start)
### 初回のみ
+ //Echo on
SF,1 //設定初期化
SS,40000000 (BatteryService を選択)
SR,00000000 (RN4020 機能変更なし)
view raw RN4020_UART.txt hosted with ❤ by GitHub

# 参考のBETA版
1) 前回のプロトコルから変更、GAP profileで
Device Name: 3 byte
Data-1: 6 byte
Data-2: 6 byte

計: 15byte データ部分。

2) RN4020 - arduino間 UART,
 arduino 側は、softwareSerial で通信しています。
*) 9600 baud

https://github.com/kuc-arc-f/ble_adv_bridge_RN4020



# 基板/ 配線等



RN4020 モジュールは5V投入しています。
資料を見ると、
基板側で、3V3 降圧しているようです。

ATmega328:
 SoftwareSerial : D5/D6
  D5 : RX
  D6 : TX
  A0 : LM60BIZ Analog Sensor

# thingSpeak / 転送値のログ



# まとめ
BLEモジュール側は、今回は予想より消費電流は下がりませんでした。。(約 14mA)
Sleep 設定で、左右ピンの WAKE_SWを操作すると 10 uA( 0.010 mA)以下に下がりそうでしたが。
後日、時間ある時 調査したいと思います。


# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288






2017年5月17日水曜日

esp32, HTTPS で、IFTTT(Maker Webhooks)に接続する, ESP-IDF


esp32で、HTTPS接続での IFTTT連携試したいと思います。

IFTTT を中継し、

SNS連携や IFTTTアプリのpush通知機能を
デバイスから使用する事を目標としています。

*) IFTTT については、詳しくないのですが、
デバイス連携部分を主に、記載しています。



# テストの結果
twitter への、 投稿。




 IFTTT アプリからの、push 通知



# thanks / 参考のページ
example/https_request
https://github.com/espressif/esp-idf/tree/master/examples/protocols/https_request

https://github.com/lucadentella/esp32_ifttt_maker


# 準備
1) Maker Webhooks, 連携するSNS(例: twitter)等を
Connectし、使える状態にしておきます。
2) Maker Webhooks のkey をメモしておく
*) documentationの、Your key is:  XXX あたりのコード。

# this の設定 (連携 元)

IFTTT (top)-> My Applets ->New Appltet(右側リンク)


if this then that みたいな文字でますので
this リンク押します。

次の検索画面で [Maker]とかで検索し
Maker Webhooks を探します。

次 対象のリンクおして、
trigger fields の入力画面出ます。



Enter Name に、trigger Name を入力(ex: test)
create Trigger を押します。

# that の指定。
次の画面で、 that 押し、
連携サービスの検索、仮にtwitterとか指定します。
次action 指定画面、 Post a tweet とか仮に指定し、
action fields で、tweet Textとか編集 
*) "EventName" は,trigger が出力されてました。
create action おします。

次画面で、finish押すと終了。



# 証明設定(pem) server_root_cert.pem
*) https_IFTTT_main.c に説明あり。

# opensslで、maker.ifttt.com:443 から 証明書を取得
openssl s_client -showcerts -connect maker.ifttt.com:443 </dev/null

-----BEGIN CERTIFICATE-----
から、
-----END CERTIFICATE-----
までを、copyし、server_root_cert.pem に保存、
ビルドすると、埋め込まれる形みたいです。



# 参考のBETA版
https://github.com/kuc-arc-f/https_IFTTT

上記の Key, Trigger を設定必要です。
固定値を、送信していますが。センサ値や、デバイス側の電圧値を
送信すれば使えそうです。
実行すると、上記のSNS投稿 等がカンタンにできました。
*) SSL証明はサーバ側は、自動更新される可能性がありそうですが、
対応も後日探したいと思います。


# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288







2017年5月2日火曜日

esp32,複数の BLE beacon + WIFI Bridge の設置 (Deep Sleep版)



前回と同様、esp32 +BLE関係となります。
複数の BLE Beaconからの wifi ブリッジ機能で
Beacon 発信側 のみを Deep Sleep版に修正し、省エネ構成としています。

*) 機器構成面は、前回(スリープなし) と同じです。


# 発信側センサ値等のログ


# 参考の BETA版
https://github.com/kuc-arc-f/ble_adv_bridge_ds

*) 300秒スリープですが、様子みて調整したいと思います。



====Update: 2017/05/02 ====
スリープ解除後の
BLE配信側の消費電力の波形測定しました。
予想以上に消費が大きく、残念な結果に。。なりましたが

アイドル時: 110mA /表示電圧 11mV
最大: 210mA /表示電圧 21mV (スパイク状に瞬間電力が上昇した部分)




*1) センサー等は接続されてない基板です
*2) 電流検出用の抵抗は ,0.1Rです
*3) deep Sleep中は、大幅に消費が下がるの為、記載しておりません。
BLEで消費電力を下げる方法があれば、探したいと思います。



# 関連ページ
esp32,複数の BLE beacon + WIFI Bridge の設置
http://knaka0209.blogspot.jp/2017/04/esp32-10-advBridge.html



# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288



google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social