私は、ハートビート温度とECGセンサーを使用して患者データを取得し、ラズベリーパイをコントローラーとして使用しているプロジェクトに取り組んでいます。私はリアルタイムでWebページに表示されるセンサーからの値を表示したい、値は数値形式とECGグラフになります。この点で役立つチュートリアルや方法を提案してください。ラズベリーパイから送信されたリアルタイムの値をWebページに表示する方法
答えて
Django Channels(別名Daphne)をご覧ください。
これは、DaphneをWebソケットサーバとして使用して、WebSocketリクエストを処理しますが、Django Python API内で処理します。 Djangoがもたらすすべてのメリット、データベース、テンプレート、Pythonでの簡単なWebSocket実装を手に入れました。数行のJavascriptとHTMLテンプレートがクライアント上でジョブを終了します。 Daphneは、ウェブサーバーとしても動作できます。 Nginx。注:これはプロキシwebsocket接続できるようにNginxをお勧めします。 ApacheやNginxはWebソケット接続自体を扱うことができません(したがってDaphne)。
実際には、JavaScriptを使用してDaphneに接続する簡単なWebページを作成し、最小の遅延でブラウザを更新する必要がなく、一部のソースとの間でデータをクライアントのWebページに転送します。 これは、多くのクライアントからの複数の接続と、複数のクライアントへのメッセージの配信をサポートします。
あなたのワーカープロセス(Daphne内で実行中)は、Raspberry Piハードウェア、外部API、またはシェル機能との通信を処理します。
クライアントでは、PhaserなどのJavascriptゲームエンジンを使用して、websocketのデータに応じてグラフィックスを描画することも、HTML5キャンバスオブジェクトを使用して手動で行うこともできます。また、d3.jsのようなグラフエンジンを使用することもできます。
mkdir django
cd django
django-admin startproject wsproj
cd wsproj
django-admin startapp wsapp
wsproj/wsproj/asgi.py
import os
import re
from channels.asgi import get_channel_layer
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "wsproj.settings")
channel_layer = get_channel_layer()
channel_capacity={
"http.request": 200,
"http.response!*": 10,
re.compile(r"^websocket.send\!.+"): 20,
}
wsproj/wsproj /ルーティング:
は(未テスト)Django Channels
最小加工された例を参照してください。 py
from channels.routing import route
from pgwss.consumers import websocket_receive, websocket_connect, websocket_disconnect
channel_routing = [
route("websocket.receive", websocket_receive, path=r"^/ws"),
route("websocket.connect", websocket_connect, path=r"^/ws"),
route("websocket.disconnect", websocket_disconnect, path=r"^/ws"),
]
wsproj/wsproj/setting.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'wsapp',
'django.contrib.staticfiles',
'channels',
]
CHANNEL_LAYERS = {
"default": {
"BACKEND": "asgi_ipc.IPCChannelLayer",
"ROUTING": "pgserver.routing.channel_routing",
},
}
wsproj/WSAPP/consumers.py
from channels import Group
def websocket_receive(message):
text = message.content.get('text')
print "Client sent %s" % text
temperature = getTemperature()
message.reply_channel.send({"data": "%f" % temperature})
def websocket_disconnect(message):
Group("ws").discard(message.reply_channel)
def websocket_connect(message):
message.reply_channel.send({"accept": True})
Group("ws").add(message.reply_channel)
#Rather than responding to polls from the client in the
#Receive function (pull). You might create a thread
#here to handle messages to the client (push)
wsproj/WSAPP/views.py
from django.template.loader import render_to_string
from django.http import HttpResponse
def counterview(request):
html = render_to_string('ws.html')
response = HttpResponse(html)
return response
wsproj/WSAPP /テンプレート/ WS。html
<!DOCTYPE html>
{% load static %}
<html>
<body>
<div>
<span id="temperature"></span>
</div>
<script type="text/javascript">
csocket = new WebSocket("ws://127.0.0.1/ws");
csocket.onmessage = function(e)
{
var myjson = JSON.parse(e.data);
var temperature = myjson.temperature;
document.getElementById('temperature').innerHTML = temperature;
}
var i = 0;
function msg() {
//Keep sending a poll
csocket.send(i++);
timer = setTimeout(msg, 100);
}
csocket.onopen = function() {
msg();
}
</script>
</body>
</html>
- 1. JavaScriptに値を送信してリダイレクトされたページに表示する方法
- 2. ラズベリーパイからAndroid Appにリアルタイムでビデオストリーミングを送信する
- 3. リアルタイムでWebページ(Rails)上のコンソールからSTDOUTを表示する方法
- 4. Glass Fishを使用したJMSパブリッシュ/サブスクライバ - WebページでMDBに送信されたデータを表示する方法
- 5. iframeから送信されたコンソールのメッセージを非表示にする方法
- 6. ノードによって送信されたオブジェクトの値を表示する方法
- 7. C#アプリケーションからラズベリーパイに端末コマンドを送信する方法
- 8. UIWebViewに表示されたWebページからのデータの取得
- 9. getusermediaで記録されたストリームをサーバーnodejsにリアルタイムで送信する方法
- 10. サービスから送信されたインテントを受信する方法
- 11. WebブラウザにナビゲートされたページのURLを表示する方法VB.NET WPF
- 12. 別のコンピュータから1台のコンピュータから提供されたWebページを表示する方法
- 13. PHPフォームを送信した後、同じページにメッセージを表示する方法
- 14. ラズベリーパイからコードバスにデータを送信したり、その逆に
- 15. ASIHTTPRequest経由でWebブラウザに送信された画像を表示する
- 16. listviewで送受信されたメッセージを一緒に表示する方法
- 17. ラズベリーパイのウェブサイトからウェブサーバーにデータを送信するには?
- 18. SpringブートでコントローラからWebページへの値の送信、またはWebページのコントローラからの値の取得方法は?
- 19. Jspページでリアルタイム/ストリーミンググラフを表示する方法
- 20. サーバーから送信されたイベントをロードする方法
- 21. Mainactivityから値を送信し、別のアクティビティの値を表示
- 22. リダイレクトされたページに顔のメッセージを表示する方法
- 23. Javaアプリケーションから送信されたSMSはアンドロイドデバイスに表示されません
- 24. anglejsアプリケーションから送信されたiOS上にPDF(Blob)を表示する方法
- 25. Webサービスに送信される前にSOAPリクエストを表示する
- 26. BigQueryコンソールでGAE経由で送信されたクエリジョブを表示する方法
- 27. サーバで送信されたFCM Firebase通知を表示する方法
- 28. WebコントローラアクションからAPIコントローラアクションにファイル(IFormFile)を送信する方法?
- 29. Webサーバーからアンドロイドにリクエストを送信する方法は?
- 30. Webアプリケーションでサーバーからクライアントにメッセージを送信する方法