タグ別アーカイブ: IoT

Android Things – UART LOOPBACK

EdisonでAndroid Thingsが使用できるようになりました。
http://akizukidenshi.com/catalog/g/gM-08571/
次にUARTを試しました。
https://github.com/androidthings/sample-uartloopback
通信にはUSB to TTL Serial Cableを使用しました。
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4WXL

UARTも普通に使用できます。

Android Thingsは、1個しかアプリ起動できないようで複数のアプリをインストールするとエラーが出て起動ができなくなりました。
この場合は、アプリをアンインストールします。
adb uninstall パッケージ名
adb uninstall com.example.androidthings.simplepio
次にインストールしたアプリが有効になってデバッグ終了後、電源リセット後もそのアプリが有効になります。
以下参考にさせていただきました。
https://stackoverflow.com/questions/42361277/how-to-reset-default-app-in-android-things-os

Python De IoT

PythonでIoTを構築しようと思います。
XBeeでセンサーからデータを収集します。mqttを使用し、インターネットを介してデータベースへ上げる。

XStick ZB Japanを使用してシリアルでデータを集めます。
http://akizukidenshi.com/catalog/g/gM-09335/
Pythonの開発環境は、Winodws10にAnacondaを使用してインストールしました。
https://www.continuum.io/why-anaconda
IEDは、PyCharmを使用しました。
https://www.jetbrains.com/pycharm/
コマンドラインを使わずデバッグまでできて便利です。

Edison + Grove-Arduino Starter Kit

Jpeg
せっかくEdison Kit for Arduinoを購入したのでさらに手間を省こうと思い、センサ接続を簡単に試せるGrove-Arduinoスターターキットを購入しました。
http://akizukidenshi.com/catalog/g/gK-09167/
Jpeg
・ベースシールド
・RGBバックライトLCD
・Grove-リレーモジュール
・Grove-ブザーモジュール
・Grove-音センサーモジュール
・Grove-タッチセンサーモジュール
・Grove-回転角度モジュール(半固定抵抗)
・Grove-温度センサーモジュール
・Grove-LEDモジュール
・Grove-光センサーモジュール
・Grove-スイッチモジュール
盛りだくさんな内容となっています。JpegJpeg

また、IoTを進めていくうえで以下の本を参考にしていこうと思います。
「Inetl Edisonで始めるIoTプロとタイピング」 翔泳社
http://www.shoeisha.co.jp/book/detail/9784798143392Jpeg

本にあるEdison本体の推奨でパッケージマネージャのリストを更新しました。
echo ‘src/gz all http://repo.opkg.net/edison/repo/all’ >> /etc/opkg/base-feeds.conf
echo ‘src/gz edison http://repo.opkg.net/edison/repo/edison’ >> /etc/opkg/base-feeds.conf
echo ‘src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32’ >> /etc/opkg/base-feeds.conf
echo ‘src/gz mraa-upm http://repo.opkg.net/edison/repo/edison’ >> /etc/opkg/mraa-upm.conf

MySQL ON RENTAL SERVER

IoTのサーバ側の準備をしています。
格安のロリポップのロリポプランを使用しています。
http://lolipop.jp/
今回はデータベースを使ってみます。ロリポップは、MySQLの使用が出来ます。

■テーブルの準備
レンタルサーバにテスト用のテーブルを作成しておきます。プランがロリポプランのためMySQLのデータベースは1個しかあリません。Wordpressに使っているデータベースにテーブルを追加しました。
3列のテーブルを作成し、2行レコードを追加しました。
Id、item、 value
1、 command、0
2、 status、 1

MySQLのドライバは、MySQL-pythonを使用しました。ちなみにMySQL公式のmysql-connector-pythonは使用できませんでした。
以下、データベースの読み込みサンプルです。
################################

#!/usr/bin/python2.7
# coding: UTF-8

import cgi
import os
import MySQLdb

def connect():
return MySQLdb.connect(host=”サーバ名”, db=”データベース名”,
user=”ユーザID”, passwd=”パスワード”, charset=”utf8″)

def get(form):
print “Content-Type: text/html; charset=utf-8”
print
print “<html><body>”

# 一覧表示
conn = connect()
curs = conn.cursor()

sql=”SELECT * FROM roomba_ctrl”
curs.execute(sql)
result = curs.fetchall()
for row in result:
print “<h2>”
print “id=”
print row[0]
print ” : item=”
print row[1].encode(‘utf-8’)
print ” : val=”
print row[2]
print “</h2>”

curs.close()
conn.close()
print “</body></html>”

def err():
print “Content-Type: text/html; charset=utf-8”
print
print “<html><body>”
print “<p>ERROR!!</p>”
print “</body></html>”

def main():
form = cgi.FieldStorage()
if os.getenv(“REQUEST_METHOD”) != “GET”:
err()
else:
get(form)

if __name__ == “__main__”:
main()

################################

以下、サンプルURLです。
http://spineedge.com/CGI/dbget.py

このテーブルにXBee WiFiでDBに読み書きしたいので
spineedge.comのIPアドレスを調べます。pingを投げて確認します。
203.189.109.118
と判明しました。
XCTUで設定&テストを行いました。

テーブルからのGETを行いました。
STATUSが読み出せました。
get

テーブルへのPOSTを行います。
COMMANDが書き込めました。
post

データベースからテーブルを読み出したところCOMMANDのvalに3が設定されているのが確認出来ました。
dbase

これでXBee WiFiでインターネット上のサーバのデータベースの読み書きが出きるようになりました。マイコンを使ったIoTに一歩近づきました。

XBEE Wifi HTTP TEST

Jpeg
IoTの環境構築一環で組込機器のネットワーク接続にXBee Wifiを使用しようと考えています。
まず、XBeeの設定をします。X-CTUを起動してXBeeモジュールと接続します。
WifiのAPの設定は環境に合わせてください。
その他は、以下のようにします。
・Network Type → TCP
・Destination Port → 0x50 (80番ポート:HTTP)
・Source Port → 0x50(80番ポート:HTTP)
・Destination IP Address → 接続先のIP(google.co.jpの場合:74.125.203.94)

X-CTUのターミナル画面から次のようにgoogleにGETリクエストを投げます。
GET /search HTTP/1.1
Host: www.google.co.jp
Connection: close
(1行改行)

googleからの応答が返って来ました。
XCTU
XBee WifiでHTTPリクエストできる準備ができました。

© 2014 Spineedge Corporation.