最近pythonベースで開発ができるdjangoをいじっていますが、IoT開発もやってみました。
今回はM5stickC plusでデータベースへpostしてみました。
アプリフォルダのmodel.pyは下記のように設定しています。
from django.db import models
class Member(models.Model):
id2 = models.FloatField()
x = models.FloatField()
y = models.FloatField()
z = models.FloatField()
xx = models.FloatField()
小数点を使いますのですべてFloatでデータベースを設定しています。
アプリフォルダのurls.pyは下記に設定し、M5stickC Plusのスケッチと設定を合わせていきます。
from django.urls import path
from . import views
app_name = 'アプリ名'
urlpatterns = [
path('receive_json/', views.receive_json, name='receive_json'),
]
M5stickC Plusのスケッチです。本体付属の加速度センサーの値をpostしていきます。
SSIDの設定と上記のreceive_jsonへのリンクを記述します。最後にアプリフォルダのviews.pyです。jsonを受け取るとデータベースに保存していきます。
またデータベースからグラフを作成して画像にて保存していきます。このままだと403エラーになってしまうのでセキュリティを一部無効にします。
※プロジェクトフォルダのsetup.pyを修正していきます。
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
また、グラフ画像を保存するディレクトリを設定します。こちらはviews.pyフォルダと紐づけていきます。
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / "/home/ubuntu/project/media_local"
なれればPHPとSQLで開発するより楽かなあ…