Relative Content

Yearly Archives: 2020

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 […]