Relative Content

Author Archive for Ubiquitous Sensing

WeMos (c3) Home IoT Server

いよいよWiFiManagerを組み込み、理想のIoT-Cloud-Mobile Study Kit (IoT実験キット)の形ができた。 今回の実験はWeMosにhttpサーバを立ち上げて、ブラウザーから接続 を待機;接続するとBMP280センサー情報を返送する。 つまり、スマートフォンまたはPCから直接接続して利用する。この場合ローカル環境の利用に限られ、出かける時でも利用するため、クラウド(例えばTinyWebDB API)が必要だ。 WiFiManagerを組み込みだ、Home IoT Server。 /* * */ #include <Wire.h> #include <Adafruit_BMP280.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 0 // GPIO0 Adafruit_SSD1306 OLED(OLED_RESET); #define BMP_SCK 13 #define BMP_MISO 12 #define BMP_MOSI 11 #define BMP_CS 10 Adafruit_BMP280 bmp; // I2C //Adafruit_BMP280 bmp(BMP_CS); // hardware SPI //Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK); […]

IoT Kit 製作

材料 ESP8266( WeMos D1 Mini) 1.3 Inch OLED BMP280 (BMP180) ワーヤ 最初はBMP180の利用予定してた。しかしBMP280安いから、こちらにしました。 BMP180は5Vで動作するが、BMP280は5Vで動作しない(発熱)の場合はあり、3.3Vへ繋げ変えると安定する。 結線 最初のデザインはESP8266( WeMos D1 Mini)+ OLED + BMP180の間、I2C接続だけで完成する。 しかしBMP280安いから、BMP280にしましたが。このまま結線の問題点は、BMP280は5Vで動作しないの場合はあります。     BMP280の電源は3.3Vへ繋げ変えると安定する。 Add NeoPixel

TinyWebDB API IoT Test App

IoT test アプリと連携を試み システム構成 IoTデバイスから、TinyWebDB API を通して、クラウドに温度と気圧のデータが送信、そしてLEDのOn/Offデータを受信する。 このアプリは、クラウドの温度と気圧のデータが受信、そしてLEDのOn/Offデータを送信する機能を持つ。 実験方法 モバイルからTinyWebDB APIに接続する手順: App Inventor でTinyWebDBを利用するアプリを作成 TinyWebDBのURLは、http://tinydb.mlと設定 アプリは、TinyWebDBクラウドの温度、気圧のデータ読み込みを確認 On/Offボタン操作で、TinyWebDBクラウドに書き込みを確認 On/Offボタン操作で、IoT-Cloud-Mobile実験セットのLEDの点灯、消灯を確認   IoT test Appを作る MIT App Inventor で IoT test Appができたので、紹介する。 デザイナー画面 デザイナー画面では、LEDのOn/Offボタンと、温度と気圧のデータが表示する領域がある。 プログラムのブロック プログラムのブロックは次のようになる。 実機画面 このアプリにより、IoTデバイスの温度、気圧のデータ表示ができ、そしてIoTデバイスに備えたLEDのOn/Offもできた。

ESP9266 Send IoT data to TinyWebDB

IoTデータの送受信実験 IoT-Cloud-Mobile実験セットを用意 Arduinoを利用して、実験スケッチを書き込み WiFi接続の設定 OLED画面から、装置のIP, 現在の温度、気圧を確認 温度、気圧のデータは、TinyWebDB クラウドに記録することを確認     手順 WeMos (1) Blink WeMos (7) I2C OLED SSD1306 (Adafruit) WeMos (b3) BMP280 I2C WeMos (c2) WiFiManager WeMos (d2) Home Automation

TinyWebDB API@RPi

実験用だけなら、現在次のサーバを利用してください。 http://tinydb.ml/ 運用して、データ収集、蓄積を考えるなら、独自のTinyWebDBクラウドの構築する方がいいでしょう。 ちなみに、次は天気センサーの記録専用サーバです。 http://weather.uc4.net/ VPSサーバでTinyWebDBサービス 簡単なテキストベースのTinyWebDBサービスを構築 LinuxサーバでApache virtual hostを作る  .htaccessを許可 (set AllowOverride to All) 下記のGithub ファイルをvirture host ルートにclone. https://github.com/edu2web/tinywebdb-php Raspberry PiでTinyWebDBサービス Raspberry Pi(ラズベリー パイ)は、ARMプロセッサを搭載したシングルボードコンピューター。イギリスのラズベリーパイ財団によって開発されている。学校で基本的なコンピュータ科学の教育を促進することを意図している。 図 4.5 Raspberry Pi Raspberry Piセットアップ Raspberry PiはDebianというOSを利用する。予めシステム入れたメディアを購入する、またはOSのファイルをダウンロードし、メディアにセットアップする。 LAMP(ランプ)とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語である。動的なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのソフトウェア群である。 それからRaspberry PiにLAMP環境構築してください。 Web サービスの構築 簡単なテキストベースのTinyWebDBサービスを構築 Raspberry PiサーバでApache起動を確認する  .htaccessを許可 (set AllowOverride to All) 下記のGithub ファイルを html ルートにclone. https://github.com/edu2web/tinywebdb-php

WeMos (d2) Home Automation

TinyWebDB-APIを利用した、Home Automationの例。 ハードウェア “IoT-Cloud-Mobile Study Kit”を利用 TinyWebDBサーバ 今まで、いくつ実験サーバは建てたが、現在生きてるサーバは、次のサーバになります。 http://tinydb.ml/ http://tinywebdb.cf 参考に今まで実験に使ったのサーバリスト: http://tinydb.ml/api/ http://tinydb.work/api/ http://tinywebdb.cf/api/ データ送信 下記のは操作中、数分起き温度、気圧センサーのデータをTinyWebDB-APIテストサーバ(http://tinydb.ml/)へ送信する。 送信したデータは、http://tinydb.ml/で確認できる。 データ受信 スマートフォンからLED On/Off の指令は受信すると、ESP8266内蔵LEDは点/滅可能になった。   ソースコード // Sample Arduino Json Web Client // Downloads and parse http://jsonplaceholder.typicode.com/users/1 // // Copyright Benoit Blanchon 2014-2017 // MIT License // // Arduino JSON library // https://bblanchon.github.io/ArduinoJson/ // If you like this […]

WeMos (c2) WiFiManager

WeMos のWiFiが、前回のようにSSIDとPASSWORDをコードに書き込む方法の他に、オンライン変更できるような方法もある。 WiFiManager というライブラリを使うと簡単にできる https://github.com/tzapu/WiFiManager このソースを参考に試してみる。 まず、ライブラリマネージャーから、WiFiManagerを検索して、インストールする。 ライブラリを使える状態にすると,下記のサンプルで、接続するだけで上のユースケースが満たされて大変便利だ…。標準でWebUIもついてる。 #include <ESP8266WiFi.h> //https://github.com/esp8266/Arduino //needed for library #include <DNSServer.h> #include <ESP8266WebServer.h> #include “WiFiManager.h” //https://github.com/tzapu/WiFiManager void configModeCallback (WiFiManager *myWiFiManager) { Serial.println(“Entered config mode”); Serial.println(WiFi.softAPIP()); //if you used auto generated SSID, print it Serial.println(myWiFiManager->getConfigPortalSSID()); } void setup() { // put your setup code here, to run once: Serial.begin(115200); //WiFiManager //Local intialization. […]

WeMos (b3) BMP280 I2C

ライブラリの追加 “Adafruit Unified Sensor”ライブラリの追加 センサーをライブラリ追加 BMP280センサーを利用する ライブラリからBMP280を検索して、追加してください 測定プログラム /*************************************************************************** This is a library for the BMP280 humidity, temperature & pressure sensor Designed specifically to work with the Adafruit BMEP280 Breakout —-> http://www.adafruit.com/products/2651 These sensors use I2C or SPI to communicate, 2 or 4 pins are required to interface. Adafruit invests time and resources providing this […]

WeMos (7) I2C OLED SSD1306 (Adafruit)

仕様 [0.96 インチ 4Pin IIC I2C ブルー OLED ディスプレイ モジュール Arduino対応]を使ってみる。 主な仕様は次のようになっています。 I2C通信 ディスプレイコントローラ: SSD1306 解像度: 128×64 電圧: 3.3V-5V ライブラリ 次の2つライブラリが必要 Adafruit_GFX Adafruit_SSD1306 こちらを参考にして、すんなりできた。下記の2つライブラリもSSD1306対応だ。 ThingPulseのライブラリ(SSD1306, SH1106対応) U8g2ライブラリ(多数OLED対応) 結線 I2Cの場合、デフォルトはSDA、SCLはD1、D2。 サンプルコード デフォルトはSDA、SCLはD1、D2。変更する場合、 Wire.begin(4,5); // OLED:SDA,SCL 行を変更して対応できるらしい。 #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define OLED_RESET 0 // GPIO0 Adafruit_SSD1306 OLED(OLED_RESET); void setup() { // Wire.begin(4,5); // OLED:SDA,SCL OLED.begin(); OLED.clearDisplay(); //Add stuff […]

WeMos (1) Blink

Setup Arduino IDE Arduino IDEがまたインストールしてないの場合、つかうPCにより、下記の何れを参考にArduino IDEのインストールする。 Setup Arduino IDE for Raspberry Pi Setup Arduino IDE for Ubuntu Setup Arduino IDE for Macbook Setup Arduino IDE for Windows AddOn Arduino-IDEを使ってWeMosにスケッチを書き込むには、こ ち らを参考にESP8266用のAddOnを追加する必要がある。  [Arduino]-[環境設定]に、[ボードマネージャーURL]を追加 http://arduino.esp8266.com/stable/package_esp8266com_index.json ボードマネージャーに、ESP8266を検索して追加 インストールは、結構大量のファイルをダウンロードするので、ココは時間が掛かる。 Blink 動作確認のため、まずLちか(Blink)をする。 ボードから、WeMosには「D1 Mini & D1 R2」を選択する。 通信ポートは、デバイスマネージャーから見えた、CH340に割り当てた通信ポート(COM3など)も設定して下さい。 MacOSの場合、次のように設定する。 (LEDはGPIO 5 に接続)の場合のスケッチ。 WeMosの内蔵LEDを利用する場合、プログラムは次のように   #define ESP8266_LED BUILTIN_LED void setup() { […]