Raspberry Pi A+ Setup

今回は、GUIは使わずCUIで運用するため立ち上げに画面表示が必要なNOOBSは使用しません。
https://www.raspberrypi.org/downloads/

RASBIANを単独でダウンロードします。
インストールの仕方は以下のURLにあります。
https://www.raspberrypi.org/documentation/installation/installing-images/linux.md
LINUXでSDカードの作成を行います。SDカードを作業用PCに差し込みます。 df -h コマンドでSDカードがマウントされたデバイス名を確認します。 /dev/sd*1 *は、アルファベットが入ります。作業フォルダにダウンロードしたOSイメージを解凍します。imgファイル名が「2015-05-05-raspbian-wheezy.im」の時の例です。
sudo dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/sd*
*は、アルファベットが入ります。
SDカードへの書き込みが終わるまでしばらく待ちます。終わったら
Sync コマンドで書き込みを終わらせ、SDカードを安全な取り外しをします。

■ターミナル接続の準備
モニタに繋がず立ち上げるのでターミナル接続の準備をします。
IOが3.3Vで動作するUART-USB変換を準備します。http://akizukidenshi.com/catalog/g/gM-08461/
超小型USBシリアル変換モジュール
P1コネクタの4、6、8、10ピンを使用します。
RasPi P1とUART-USB変換の接続
4PIN    -    5V0                     <-     5V
6PIN    -    GND                   <->  GND
8PIN    ー    UART0_RXD <-    TXD
10PIN    ー    UART0_TXD  ->    RXD
電源5VもUART-USB変換から供給します。ただ、単独起動は問題ありませんがUSB Wifiドングルを繋ぐと電流が足りず、ボードのマイクロUSBから給電しました。
Jpeg

■起動
LANがないと何かと不便なのでUSB Wifiドングルをつけてセットアップしました。Raspberry Pi A+は、USBが1ポートしかないのでそこに接続しました。
http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4PTC
http://www.planex.co.jp/products/gw-usnano2a/

作成したSDカードをRaspberry Pi A+に差し込み、UART-USB変換をPCに差し込み電源を入れます。
ターミナルの通信設定は、通信速度115200bps、データ長さ8ビット、ストップビット1、パリティなしです。
起動後、ユーザ名:pi、パスワード:raspberryでログインします。

sudo iwlist wlan0 scan
自分が接続したいSSIDを見つけます。
今回はWEPで接続すします。Raspberry Piで無線LANを利用するときに必要な情報が書かれているファイルは以下になります。
/etc/network/interfaces
テキストエディタは、nanoが入っているのでこれを使います。
sudo nano /etc/network/interfaces

#####################################
allow-hotplug wlan0
iface wlan0 inet dhcp
wireless-essid 接続先のSSID
wireless-key 接続先のキー
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#####################################

接続先のSSIDには、””ダブルコーテーションはつけません。
接続先のキーには、アスキー設定の場合、s:を先頭につけます。

Jpeg

■接続確認
sudo reboot で再起動してwifi接続の確認します。
ifconfig -a
これでwlan0にIPアドレスが設定されていればOKです。

■システム更新
インターネットにつながったのでシステムの更新します。
sudo apt-get update
sudo apt-get upgrade

いつもし使用しているテキストエディタVIMを入れておきます。
sudo apt-get install -y vim

以上でセットアップ完了です。

Raspberry Pi A+

Jpeg
Raspberry Pi A+です。
http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4N4D
Raspberry Pi2でサーバを構築しているので、クライアント側でもRaspberry Piが使えないかと思いA+を購入しました。思いのほか小さいです。Raspberry Pi2にくらべCPUも非力で、メモリも256MBしかないのでGUIで使用するつもりはありません。CUI運用で画面なしのモバイル機器を検討したいと思います。
Jpeg
Jpeg

Jpeg
http://www.sengoku.co.jp/mod/sgk_cart
/detail.php?code=EEHD-4KZB
Raspberry Pi B+用ブレッドボード接続T型基板キットも購入したのでセンサなども繋いでいきたいと思います。
JpegJpeg

Raspberry Pi2 Auto Login

Raspberry Pi2をホームサーバ&KIOSK端末として使用するための準備をします。
まずは、自動ログインの設定を行います。電源を入れると自動的にログインします。普通にGUIにははいり、 LXTerminalを起動し、以下のように入力します。
$sudo leafpad
テキストエディタが開くので、/etc/inittabを開いていてください。
以下の行を、行頭に#をつけてコメントアウトさせます。 #1:2345:respawn:/sbin/getty 115200 tty1 1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1
次に、以下の行を書き込みます。
1:2345:respawn:/bin/login -f ユーザー名 tty1 /dev/tty1 2>&1
ユーザ名はデフォルトではpiです。
保存し、Raspberry Pi2を再起動させると、自動ログインするようになります。

次にウィンドウシステムまで自動的に入るようにします。
起動時の表示をデスクトップ画面に設定するため、 LXTerminalを起動し、以下のように入力し「raspi-config」を開きます。
$ sudo raspi-config
設定画面が開くので、「3 Enable Boot to DeskTop/Scratch」を選択します。 次の画面が開くので、「DeskTop Log in・・・」の行を選択します。 閉じてRaspberry Pi2を再起動すると、自動でデスクトップ画面まで表示するようになります。

次にKIOSK端末の表示のためのブラウザをインストールします。ブラウザには、Chromeのオープンソース版のChroiumを使用します。
以下の順番でインストールします。
$sudo apt-get update
$sudo apt-get upgrade -y
$sudo apt-get install chromium x11-xserver-utils unclutter

次にスクリーンセーバを無効化し、Chromiumを前画面表示で自動起動します。
$sudo leafpad
でテキストエディタを開き /etc/xdg/lxsession/LXDE/autostartを開きます。
#@xscreensaver -no-splash
スクリーンセーバの行をコメントアウトして以下行を追加します。
@xset s off
@xset -dpms
@xset s noblank
続いて以下行を追加してChromiumを全画面表示します。
@chromium –kiosk –incognito –ignore-certificate-errors –disable-restore-session-state http://www.yahoo.co.jp

今回はテストのためYHOOを開きます。

DPMSとスクリーンセーバを無効化するためもう一つのファイルを編集します。
$sudo leafpad
でテキストエディタを開き /etc/lightdm/lightdm.confを開きます。 省電力モードでディスプレイがOFFしないようにします。
[SeatDefaults]
xserver-command=X -s 0 -dpms

以上で、電源を入れると自動でブラウザが前画面表示になるKIOSK端末の準備が出来ました。

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に一歩近づきました。

© 2014 Spineedge Corporation.