Category Archives: Onion Omega

Onion Omega2+ (5) Motion Sensor

モーションセンサーに関して、適当なプログラムが見つからないので、下記のURLを参考しながら自作する!
https://docs.onion.io/omega2-docs/gpio-python-module.html
https://github.com/OnionIoT/onion-gpio-sysfs/
まずPython moduleのインストール
opkg update
opkg install python-light pyOnionGpio

プログラムはこちら

#!/usr/local/bin/python
# -*- coding: utf-8 -*-
import time
import onionGpio
from datetime import datetime
# LED GPIO
led_pin = 0
pir_pin = 9
sleeptime = 100000
led_light_up_time = 1
led = onionGpio.OnionGpio(led_pin)
pir = onionGpio.OnionGpio(pir_pin)
led.setOutputDirection(0)
pir.setInputDirection()
while True:
    value = pir.getValue().rstrip()
    if(value == "1"):
        print datetime.now(),
        print "motion_detected"
        led.setValue(1)
        time.sleep(led_light_up_time)
        led.setValue(0)

一応動作して、検出すると、LED点灯。
LEDをブザーに入れ替えると、検出すると、ブザー鳴る。Ctrl-Cで終了する。
しかし問題は、終了タイミングにより、GPIOが使用中のままになり、再度起動すると、異常終了になってしまう。
 

Onion Omega2+ (4) DHT22 Sensor

温度と湿度を測るべく、DHT22 Sensorを導入

ファイルのダウンロード

Onion Omega2 と DHT22情報を検索すると、まず見つかったのは、onionのフォーラム
https://wiki.onion.io/Tutorials/PHP-DHT11-DHT22-Sensor-Examples
こちらからは、次のパッケージをダウンロードすると指示された。
https://community.onion.io/uploads/files/1450434316215-checkhumidity.tar.gz
しかし、下記のエラーでうまくいかない。

./checkHumidity: line 1: syntax error: unexpected “(” (expecting “)”)

こちらの記事は2016-03-16のもの、 ファイルはOmegaに対応する、Omega2に対応してない!こちらは同じ悩みの方ののデスカッションでした。
http://community.onion.io/topic/1390/dht11-22-checkhumidity-syntax-error
流れの中で、次のOmega2に対応するパッケージをダウンロードすると話があった。
https://dl.dropboxusercontent.com/u/11811685/checkHumidity.tar.gz
しかしリンク切れえ、作者に連絡してみたら、新しいリンクアドレスを教えてくれた。

GPIOの選択

GPIOどれか使うもちょっと手間がかかった、どれでもいいではない。(プログラムちゃんと設定してないかも)!
いくつGPIOを試して、GPIO19に落ち着いた。GPIO6は、対応しないみたい;GPIO18とGPIO19は対応するが、DHT22のデータはGPIO18、Vccは3.3に繋ぐとうまくいかない;最後にDHT22のデータはGPIO19、Vccは5.0に繋ぐとうまくいった!

root@Omega-6F83:~/checkHumidity/bin# /root/checkHumidity/bin/checkHumidity 6 DHT22
-255.000000
-255.000000
root@Omega-6F83:~/checkHumidity/bin# /root/checkHumidity/bin/checkHumidity 18 DHT22
0.000000
0.000000
root@Omega-6F83:~/checkHumidity/bin# /root/checkHumidity/bin/checkHumidity 19 DHT22
21.799999
24.500000

 
参考:

  • https://wiki.onion.io/Tutorials/PHP-DHT11-DHT22-Sensor-Examples

Onion Omega2+ (3) Relay-Exp

昨日普通のリレーをブレッドボードで試したが、専用のリレーボードがあると思い出した。

早速つけって見た。
コマンドライン、ローカルWeb管理画面、そしてクラウド管理画面のどちらでも管理できるので便利。

図:ローカルWeb管理画面

リレーをコントロールする
root@Omega-6F83:~# relay-exp 0 on
> Initializing Relay Expansion chip
> Setting RELAY0 to ON
root@Omega-6F83:~# relay-exp 0 off
> Initializing Relay Expansion chip
> Setting RELAY0 to OFF
root@Omega-6F83:~# relay-exp 1 off
> Initializing Relay Expansion chip
> Setting RELAY1 to OFF
root@Omega-6F83:~#

図:コマンドライン管理の様子
ただ、切り替え結果の表示は、当にならないようね。目て確かめる必要。
同期の問題あるかもしれないが、コマンドラインでも状態が適当:

コマンド表示と 実物のLED状態、不一致の場合がある
root@Omega-6F83:~# relay-exp all off
> Initializing Relay Expansion chip
> Setting both RELAYS to OFF
root@Omega-6F83:~# relay-exp read 2
> Initializing Relay Expansion chip
> Reading RELAY2 state: ON
root@Omega-6F83:~# relay-exp read 1
> Initializing Relay Expansion chip
> Reading RELAY1 state: ON

両方ともにOffして、目て見てもOffになったが、
State:On
のまま。
IFTTTでも管理できるので、いつかやってみる。

Onion Omega2+ (2) LED Blink

いきよいで、LED Blinkを試み
まず pythonのインストール。

Python Install

メモリが限られているので、python-lightがいいらしい。
root@Omega-6F83:~# opkg update
root@Omega-6F83:~# opkg install python-light
Installing python-light (2.7.13-4) to root…
Downloading http://repo.onion.io/omega2/packages/packages/python-light_2.7.13-4_mipsel_24kc.ipk
Installing python-base (2.7.13-4) to root…
Downloading http://repo.onion.io/omega2/packages/packages/python-base_2.7.13-4_mipsel_24kc.ipk
Installing libffi (3.2.1-2) to root…
Downloading http://repo.onion.io/omega2/packages/packages/libffi_3.2.1-2_mipsel_24kc.ipk
Installing libbz2 (1.0.6-2) to root…
Downloading http://repo.onion.io/omega2/packages/base/libbz2_1.0.6-2_mipsel_24kc.ipk
Configuring python-base.
Configuring libffi.
Configuring libbz2.
Configuring python-light.
root@Omega-6F83:~#

Onion GPIO Python Module

GPIOを制御するモジュール
root@Omega-6F83:~# opkg install python-light pyOnionGpio
Package python-light (2.7.13-4) installed in root is up to date.
Installing pyOnionGpio (0.1-1) to root…
Downloading http://repo.onion.io/omega2/packages/onion/pyOnionGpio_0.1-1_mipsel_24kc.ipk
Configuring pyOnionGpio.
root@Omega-6F83:~#

 

LED Blink

いよいよLED点滅のプログラム
GPIO1にLEDと抵抗を繋ぐ。

import time
import onionGpio
gpioNum = 1
gpioObj = onionGpio.OnionGpio(gpioNum)
## set to output
status  = gpioObj.setOutputDirection(0)
## alternate the value
loop    = 1
value   = 0
while loop == 1:
    # reverse the value
    if value == 0:
        value = 1
    else:
        value = 0
    # set the new value
    status  = gpioObj.setValue(value)
    print 'GPIO%d set to: %d'%(gpioNum, value)
    time.sleep(1)

一秒ことにLED点滅が確認できた。

参考:

  • https://docs.onion.io/omega2-docs/gpio-python-module.html#gpio-python-module

Onion Omega2+ (1) Introduction

Onion Omega入手の翌日にfirmwareが壊れたらしく、シリアル接続、LAN接続など、firmware復帰に色々手を尽くして、サポートフォーラムにも質問しても、対策しても、再起不能で大失敗して、買ったものはごみ同然でしたが。

Introduction to Omega2 Plus

Onion Omega2が出た!また手を出した。
幸いドックなどは共通なので、本体だけ買えばよい。
Onion2は、2つのバージョンのOmega2が提供される。オリジナルとOmega2 Plusだ。
Omega2は、580MHz CPU、64MB RAM、16MBのストレージがある。
Omega2 Plusはメモリーとストレージが2倍だ(メモリー128MB、ストレージ32MB)。MicroSDスロットも装備されている。
今度は拡張性も重視して、Omega2 Plusは2個も注文した。

Setup

Omegaと同じ、初期状態は、WiFiのAcccessPointとして動くので、最初のセットアップは、まずにOmegaのWiFiに接続して、自分の環境に合うWiFi設定を行う。
OmegaのWiFiに接続パスワードは12345678であり、うまく繋ぎできたら、下記のURLにアクセス。

http://192.168.3.1/
セットアップウェイザード
ログイン情報
username: root
password: onioneer
次はクラウドの接続とソフトウェアのアップデート。
余計なトラブルがいやなので、クラウドの接続は後にする。
ソフトウェアのアップデートは結構ドキドキする。
ステータスバーの進捗を見て、やっと終わったが、
自動的にリブートしない。
しかたなく、手動で電源 Off /On。
黄色LED長い点滅後、やっと点灯状態に。

ブラウザの接続

手動の再起動は成功したかどうかわからないので、iPhoneのFingアプリで探す。
そのらしきもののIPにアクセスすると、つながった。
ここでクラウドの設定をした。

クラウドの接続

クラウドから接続してみた。

Onion Omegaが届いた

5月にKickStater注文したOnion Omegaが、忘れかけたころに、届いた。

Onion Omegaとは、Build Hardware with JavaScript, Python, PHPという、非常に小型のLinuxコンピューター。Wifiを搭載しており、クラウドなどにデータを送ることが出来るのが特徴。

大きさ: 28.2mm x 42mm
CPU: Atheros AR9331 400MHZ MIPS (Wifiを積んでいるSoCです)
RAM: 64MB
Flash: 16MB

WiFi: 802.11b/g/n 150Mbps
GPIO: 18ピン
USB: USB 2.0

入力電圧: 3.3V
消費電力: 0.6W

 

2015-10-26 14.43.34

黄色封筒に、本体、ドック、リレーモジュール、ミニドック(おまけの)、4つ小箱に入ってる。

 2015-12-01 18.14.34

ドックに本体、リレーモジュールを取り付けた様子。

電源を付けて、https://wiki.onion.io/ をみながら、Getting Started.

そこまでWebでWiFi設定、アップグレード画面見れて良かったが、

Flash: 16MBしかないので、USB メモリでRootfsすると、WiKiみながら、作業を開始。まず、USB メモリ認識されない! /dev/sd* 何もない。

https://wiki.onion.io/Tutorials/Using-USB-Storage-as-Rootfs

そのまま置いて、翌日みたら、もうOnion Omegaに繋がらない。サポートに連絡すると、なんかreflash the firmware必要って。困った!

reflash the firmwareできたら、またレポートする!