2017-05-25 5 views
1

私はラズベリーパイのGPIOに接続し、ブラウザ事から制御する小規模なWebアプリケーションを構築するために探していますし、私はいくつかをみたいので、移動するための方法はよく分かりません可能であれば助言してください。リモートコントロールWebアプリケーション

ちょうど行く概念を得るために、私は、「オフ」「オン」、右または左、アプリ上の唯一のいくつかのボタンを持っていますよ。

私はPHPとHTMLでプログラミングすることができ、いくつかのjavascript、jquery、pythonを実行できます。私はPythonなどのpythonでのサーバ側の書き込みを見てい

はのGPIOを制御するために、いくつかの素晴らしいライブラリを持っており、それはあまりにも難しいことではありません。

私が少し迷っているのはフロントエンドです。

最初に気になるのは、djangoを使用して、Pythonも使用できるようにすることです。

また、これも可能ですが、私は私が使用してJavaScriptとAJAXのようないくつかの何かを行うことができると思うかどうかわかりません。

基本的には、ボタンを押したときにイベントリスナーを使用して、押さえ続けると、gpoiの値が上書きされ、サーバーのPythonスクリプトが常に読み込まれます。このgpoiの値がpythonスクリプトによって取得されると、GPIOがアクティブになり、ボタンを放すとGPIOを無効にするgpioになるデフォルト値になります。これは、ことも可能である場合、可能な場合ので、私はいくつかのアドバイスと、おそらく例のコードをいただければ幸いです

わかりません。

乾杯。

答えて

0

私はあなたがRaspberry PiでDjangoサーバーを実行していると仮定しています。

ファイルへの書き込みは必要ありません。以下のように、投稿の出力を切り替えるビューをいくつか設定することができます。

def turn_on(request, channel): 
    if request.method == "POST": 
     GPIO.output(channel, GPIO.HIGH) 
     return HttpResponse("Turned on!") 

入力状況を取得するには、おそらく少しのJavaScriptが必要です。特定の入力のステータスを取得し、その結果を返すビューを作成します。 ajaxを使用してこのビューを5秒ごとにポーリングし、ページの関連セクションを更新します。このようなもの:

def get_status(request, channel): 
    status = GPIO.input(channel) 
    return HttpResponse("Channel {0} status: {1}".format(channel, status)) 

即時更新のために接続を開いたままにしておきたい場合は、少し面倒です。これが必要な場合は、Django Channelsを見てください。

これは明らかに最小限の例ですが、開始する必要があります。

関連する問題