WeMos (3) 1602 LCD 表示

OSが付いてないので、GUIの実現は難しい。

簡単に文字が表示できるデバイス1602 LCDを使う。

/*
 * 1602 LCD Sample
 * 
 * 1602LCD ---- WeMos
 *  GND    ---- GND
 *  VCC    ---- 5V
 *  VE     ---- Variable resistor
 *  RS     ---- D1(GPIO5)
 *  R/W    ---- GND
 *  Enable ---- D2(GPIO4)
 *  DB0    ---- N.C
 *  DB1    ---- N.C
 *  DB2    ---- N.C
 *  DB3    ---- N.C
 *  DB4    ---- D0(GPIO16)
 *  DB5    ---- D5(GPIO14)
 *  DB6    ---- D6(GPIO12)
 *  DB7    ---- D7(GPIO13)
 * 
 */
#include "SPI.h"
#include <LiquidCrystal.h>
  
/* LiquidCrystal(rs, enable, d4, d5, d6, d7)  */
LiquidCrystal lcd(5, 4, 16, 14, 12, 13); 
 
void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}

これてhello, world!と一秒ことにインクリメント数字が表示される。

WeMos (2) 3色LED表示

3色LEDをつないて、順次点滅する。

 

#define LEDR 12
#define LEDG 13
#define LEDB 14

void setup() 
{
  pinMode(LEDR, OUTPUT);
  pinMode(LEDG, OUTPUT);
  pinMode(LEDB, OUTPUT);
}

void loop() 
{
  digitalWrite(LEDR, HIGH);
  delay(1000);
  digitalWrite(LEDG, HIGH);
  delay(1000);
  digitalWrite(LEDB, HIGH);
  delay(1000);
  digitalWrite(LEDR, LOW);
  delay(1000);
  digitalWrite(LEDG, LOW);
  delay(1000);
  digitalWrite(LEDB, LOW);
  delay(1000);
}

 

WeMos (1) Setup & Blink

About WeMos

WeMosはESP8266モジュールを利用した、Arduino互換ボード。

WeMosには「D1 Mini」と「D1 R2」の2種類がある。使い方が同じ。

Macbook Air で実験する。

 

Technical specs

Microcontroller ESP-8266EX
Operating Voltage 3.3V
Digital I/O Pins 11
Analog Input Pins 1
Clock Speed 80MHz/160MHz
FLash 4M bytes
Length 34.2mm
Width 25.6mm
Weight 10g

Setup Arduino IDE

Arduino IDEがまたインストールしてないの場合、つかうPCにより、下記の何れを参考にArduino IDEのインストールする。

AddOn

Arduino-IDEを使ってWeMosにスケッチを書き込むには、こ ち らを参考にESP8266用のAddOnを追加する必要がある。

  1.  [Arduino]-[環境設定]に、[ボードマネージャーURL]を追加
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
  2. ボードマネージャーに、ESP8266を検索して追加

インストールは、結構大量のファイルをダウンロードするので、ココは時間が掛かる。

Blink

動作確認のため、まずLちか(Blink)をする。

ボードから、WeMosには「D1 Mini & D1 R2」を選択する。

通信ポートは、デバイスマネージャーから見えた、CH340に割り当てた通信ポート(COM3など)も設定して下さい。

(LEDはGPIO 5 に接続)の場合のスケッチ。

WeMosの内蔵LEDを利用する場合、プリグラムは次のように

#define ESP8266_LED BUILTIN_LED

void setup() 
{
  pinMode(ESP8266_LED, OUTPUT);
}

void loop() 
{
  digitalWrite(ESP8266_LED, HIGH);
  delay(500);
  digitalWrite(ESP8266_LED, LOW);
  delay(500);
}

参考

  1. http://www.esp8266learning.com/
  2. https://www.baldengineer.com/esp8266-5-reasons-to-use-one.html

About ESP8266 IoT Study Kit

ESP8266 IoT Study Kitとは

ESP8266 IoT Study Kitは、(ESP8266 WeMos D1 Mini + OLED + BMP280)の組み合わせで構成されたIoT勉強用キット。

ESP8266 WeMos D1 Mini 、OLED と BMP280はI2Cバスで接続する。

関連画像
I2Cでは2ポートだけで通信できる。2本のデータ線を使い、一本SDAをデータ通信(双方向)にもう一本SCLをクロックを送るために使う。それぞれのセンサなどを区別するにはアドレスを設定しておき、それをもとに区別する。
ESP8266 IoT Study Kitに含まれるOLED と BMP280の他に、I2C対応のADC利用して、アナログデータの送受信も可能である。

単体での利用

Arduino ベースの開発、センサー、WiFi通信、OLED表示装置内蔵、単体でで温度、気圧計測、表示できる。

クラウド、スマートフォンと連携

さらにクラウドにデータ蓄積、スマートフォンから制御可能である。

 

 

Arduino UNO (1) Lちか

接続図

ArduinoのGNDとD13の間に赤色LEDとカーボン抵抗330Ωを接続しましょう。

Arduino IDEのインストール

Arduino IDEがまたインストールしてないの場合、普通に、Arduino IDEのインストールする。

以下URLから、ArduinoのウェブサイトからIDEをダウンロードして、インストールする

https://www.arduino.cc/en/Main/Software

CH340のドライバー

UNO互換機を使っている方は、特に何も必要ないが、今まで互換機を使ったことが無い方はWeMosのホームページからCH340のドライバー(CH341SER_MAC.ZIP)をインストールする必要がある。

以下江苏沁恒股份有限公司のHPから
CH341SER.ZIP をダウンロードして解凍し、ファイルが展開されるので setup.exe を実行。

http://www.wch.cn/download/CH341SER_ZIP.html

http://www.wch.cn/download/CH341SER_MAC_ZIP.html

Blink

動作確認のため、まずLちか(Blink)をする。

プログラムを実行してみましょう。接続した赤色LEDが1秒間隔で点滅したら成功です。

// led_blink_sample1

const int led_pin = 13;           // LED connected to digital pin 13

void setup() {
  pinMode( led_pin, OUTPUT );     // sets the digital pin as output
}

void loop() {
  digitalWrite( led_pin, HIGH );  // sets the LED on
  delay( 1000 );                  // waits for a second
  digitalWrite( led_pin, LOW );   // sets the LED off
  delay( 1000 );                  // waits for a second
}

LのLEDをBlink する様子

Arduino 101 (4) LED on/off

Lちか

締めに、App Inventor + IoT: LEDを参考して、Android のアプリから、Lちかをやる。

http://iot.appinventor.mit.edu/#/arduino101/arduinoled

LED接続

LEDをD5に接続してください

Arduinoプログラム

ARDUINO (2) INSTALLのArduinoのプログラムを修正する。

先頭の定義部分に、LED を ENABLEDに、その他全てを
DISABLEDにセットしてください

スクリーンショット 2017-09-04 15.38.13

App Inventorプログラム

Arduino (3) BluetoothのIoT_BaseConnectプログラムに、LED操作する部品とプログラムを追加する。

http://iot.appinventor.mit.edu/assets/resources/edu.mit.appinventor.iot.arduino101.aix

スクリーンショット 2017-09-04 16.47.06

スクリーンショット 2017-09-04 16.58.15

アプリのLED On/Off テスト

 

Arduino 101 (3) Bluetooth

Bluetooth連携する環境のセットアップ

次に、App Inventor + IoT: Basic Bluetooth Connection Setup を参考して、Arduino 101とApp InventorをBluetooth通して連携する環境のセットアップ。

プロジェクト新規作成

http://ai2.appinventor.mit.edu/を開いて、BasicIoTSetupというプロジェクトを新規作成してください。

BluetoothLE extensionをインストールする必要があり、edu.mit.appinventor.ble.aixをダウンロードし、Paletteの底に、Import extensionから、インポートしてください。

スクリーンショット 2017-09-04 15.49.06

画面デザイン

下記の様式を参考して、部品を並べてください。

底のBluetoothLE extensionは、先ほどインポートしたもの。

スクリーンショット 2017-09-04 15.45.10

ブロックエディタ

スクリーンショット 2017-09-04 15.57.02

アプリのBT接続テスト

Arduino 101 (2) Install

Arduino IDEのインストール

まず App Inventor + IoT: Setting Up Your Arduinoを参考して、セットアップを進める。

Arduino IDEのインストール

Arduino IDEがまたインストールしてないの場合、普通に、Arduino IDEのインストールする。

以下URLから、ArduinoのウェブサイトからIDEをダウンロードして、インストールする

https://www.arduino.cc/en/Main/Software

App Inventorと連携するファイル

AIM-for-Things-Arduino101.inoをダウンロードし、解凍して、Arduino IDEで開いてください。

次は、ライブラリを追加する。

“DHT-sensor-library”ライブラリの追加

スクリーンショット 2017-09-04 15.21.34

“Adafruit Unified Sensor”ライブラリの追加

スクリーンショット 2017-09-04 15.24.15

”Grove LCD RGB Backlight”の追加

Grove LCD RGB Backlightをダウンロードして、Sketch > Include Library > Add .ZIP Library順に追加する

“Grove LCD”で検索して、インストールしたことを確認

スクリーンショット 2017-09-04 15.28.01

101ボードの選択

ボード一覧に”Arduino/Genuino 101″あれば選択して、なければ、ボードマネージャを開き、101を検索してください。

“Intel Curie Board by Intel”を見つけ、インストールしてください。

スクリーンショット 2017-09-04 15.33.31

Portの選択

/dev/cu.usbmodem…らしいものを選択する

スクリーンショット 2017-09-04 15.36.06

ここで、右矢印➡️を押して、プログラムをArduinoボードに書き込み、実行してみてください。

Arduino 101 (1) About Arduino 101

App Inventor IoT の発表に伴い、実験しながら体験する予定。

対応機種は今現在Arduino 101とBBC micro:bitしかない。BBC micro:bitについて、あまり聞いたことがない、イギリスの小学校では無料配布らしい。早速Arduino 101を注文から始まる。

Arduino 101

Genuino 101(米国ではArduino 101)は、米国のArduino LLCがインテルと共同で設計した、Intel Curie搭載のマイコンボードです。Arduino Uno R3と同じ形状の基板ですが、BLE(Bluetooth Low Energy)に対応し、3軸加速度センサ・3軸ジャイロセンサを搭載しています。

Arduino 101とApp Inventor連携する環境

Arduino 101とApp Inventor一緒にすると、いろいろIoT実験ができる。

次は3回分けて、Arduino IDEのインストール、Arduino 101とApp InventorをBluetoothで連携する、そしてLちかを行う。

予習参考:

App Inventor + IoT Setup tutorial

Arduino NANO (1) AD8232 Heart Rate Monitor

経緯

IoT材料を探しに、AD8232 Heart Rate Monitor パーツを購入しました。

添付資料は何もないので、ネットで検索したら、結構出ました。

目の動きも検出できる、いろいろできそう。

回路

参考資料は、Arduino NANOを利用するので、そのままの回路を組み立てる予定。成功したら、ESP8266,ESP32に移植するつもり。

The detailed specification of the Arduino Nano board is as follows:

    • Microcontroller ATmega328
    • Operating Voltage (logic level): 5 V
    • Input Voltage (Recommended): 7-12 V
    • Input Voltage (limits): 6-20 V
    • Digital I/O Pins : 14 (of which 6 provide PWM Output)
    • Analog Input Pins: 8
    • DC Current per I/O Pin: 40 mA
    • Flash Memory 32 KB (ATmega328) of which 2 KB used by bootloader
    • SRAM: 2 KB (ATmega328)
    • EEPROM: 1 KB (ATmega328)
  • Clock Speed: 16 MHz
  • Measurements: 0.73″ x 1.70″

Arduino NANOとAD8232をつないて、LCDまたはOLEDで表示するつもりだが、安定した結果は出ないので、部品の問題か、ソフトウェアの問題か、解決に難航。

部品を買い増すして、検証する予定。

スケッチ

参考資料

  1. https://learn.sparkfun.com/tutorials/ad8232-heart-rate-monitor-hookup-guide