LoginSignup
0
1

More than 3 years have passed since last update.

【WebIOPi】スマホでサーボモーターを制御!④

Last updated at Posted at 2021-04-03

スマホでサーボモータを制御!

今回は、スマホでサーボモータを制御するシリーズの第4回目です。

Raspberry Piを用いて簡単にIoTを作成できるライブラリ、WebIOPiを使用し、スマホからサーボモーターを制御します。

今回は、WebIOPiを使用してサーバーを起動します。WebIOPiでのサーバー起動は、非常に簡単に行えます!

これまでの記事は以下を参考にしてください。
1. WebIOPiのインストール
2. HTML/CSSファイルの作成
3. JavaScriptファイルの作成
4. Pythonスクリプトの作成

スクリプトの登録

これまで作成したHTMLファイルとPythonファイルをWebIOPiに登録します。

Raspberry Piのターミナルで以下のコマンドを打ちます。

sudo nano /etc/webiopi/config

すると、nanoというテキストエディタでconfigファイルが立ち上がります。

その[SCRIPTS][HTTP]部分を編集します。

...

[SCRIPTS]
# Load custom scripts syntax :
# name = sourcefile
#   each sourcefile may have setup, loop and destroy functions and macros
# myscript = /home/pi/myweb/examples/scripts/macros/script.py
myscript = /home/pi/myproject/pyfile.py     # <----ここに、自分のPythonファイルのパスを記述

#------------------------------------------------------------------------#

[HTTP]
# HTTP Server configuration
enabled = true
port = 8000

# File containing sha256(base64("user:password"))
# Use webiopi-passwd command to generate it
passwd-file = /etc/webiopi/passwd

# Change login prompt message
prompt = "WebIOPi"

# Use doc-root to change default HTML and resource files location
doc-root = /home/pi/myweb/examples/scripts/macros     # <----ここに自分のHTMLファイルのパスを記述
# Use welcome-file to change the default "Welcome" file
welcome-file = controller.html               # <----ここに自分のHTMLファイル名を記述

#------------------------------------------------------------------------#
...

注意点として、doc-rootにはHTMLファイル名を記述しないことです。

a.htmlというファイルが/home/pi/a/a.htmlにあれば、

doc-root = /home/pi/a
welcom-file = a.html

とします。

終了したらテキストエディタを閉じます。nanoの場合は、ctrl+Octrl+Xです。

サーバー起動

いよいよサーバーの起動です。
Raspberry Piのターミナルで以下のコマンドを実行します。

sudo pigpiod    # すでに実行されていればメッセージが表示される。

sudo systemctl start webiopi    # webiopiの起動

以下のコマンドを打つと、webiopiがactiveであることが確認できます。

sudo systemctl status webiopi

終了は、以下のコマンドで行います。

sudo systemctl stop webiopi

アクセス

sudo systemctl start webiopiを行ったのち、WebブラウザでRaspberry PiのIPアドレス:8000へアクセスすると、作成したWebページが表示されていると思います。

また、スライダを動かすと、サーボモーターが動作すると思います。

デバッグ

WebIOPiをデバッグ実行する場合は、以下のコマンドを打ちます。

sudo webiopi -c /etc/webiopi/config -d

終了は、ctrl+cctrl+zで終了します。

いきなりctrl+zで終了したり、正しく終了していない場合、

OSError: [Errno 98] Address already in use

というエラーが表示されます。

その際は、プロセスをkillする必要があります。

ps ax | grep webiopi

でプロセスを確認します。

pi@raspberrypi:~ $ ps ax | grep webiopi
 2462 pts/0    T      0:00 sudo webiopi -c /etc/webiopi/config -d
 2463 pts/0    T      0:00 /bin/sh /usr/bin/webiopi -c /etc/webiopi/config -d
 2464 pts/0    Tl     0:02 python3 -m webiopi -c /etc/webiopi/config -d

この場合、sudo webiopi -c /etc/webiopi/config -dというプロセス(2462)を強制killします。
強制killは、-9をつけます。

sudo kill -9 2462

そして再度sudo webiopi -c /etc/webiopi/configを実行します。

最後に

サーバーを立てるのは、面倒な作業ですが、WebIOPiを利用すると非常に簡単に立てることができます。

今回は、サーボモーターについてでしたが、IoTを作成する上で、他の機器にも応用することができると思います。

WebIOPiを利用して、オリジナルのIoT機器を作成してみてください!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1