Сохраняйте данные датчиков в базе данных Django

Я делаю приложение Django, которое пытается показать данные, полученные с ультразвукового датчика.

Я хочу получить расстояние от датчика и сохранить его в его таблице Django. Обычно это делается с помощью формы, но я хочу, чтобы это делалось в бэкенде для каждого объекта датчика.

Вот код, который у меня есть на данный момент:

Ultrasonicsensor.py

import time
from grove.grove_ultrasonic_ranger import GroveUltrasonicRanger

def main():
# Grove - Ultrasonic Ranger connected to port D16
sensor = GroveUltrasonicRanger(16)
counter = 10

while (counter < 10):
  distance = sensor.get_distance() #This is the distance i want to save for each sensor object
  distance = (float(distance) / 100) 
  print('{:.4f} m'.format(distance))
  if distance < 1:
    print('Cerca')
  elif 1 <= distance <= 1.9:
    print('Medio')
  else:
    print('Lejos')
  time.sleep(1)
  counter = counter + 1

Models.py

class UltrasonicSensor(models.Model):

  name = models.CharField(max_length=50, default="HC-SR04")
  description = models.TextField()
  pin = models.IntegerField()
  distance = models.DecimalField(max_digits=20, decimal_places=4)
  date = models.DateTimeField(auto_now_add=True)

Views.py

class uSensorDetailView(DetailView):
  template_name = 'sensor_detail.html'
  context_object_name = 'sensor'

def get_queryset(self):
    return UltrasonicSensor.objects.all()

Вы можете попробовать импортировать модель в ваш файл Ultrasonicsensor.py, если файл Python является частью вашего проекта Django.

from app_name.models import UltrasonicSensor

И затем создание объекта для каждого датчика по мере его поступления.

new_sensor = UltrasonicSensor()
new_sensor.name = data_here
new_sensor.description = data_here
new_sensor.pin = data_here
new_sensor.distance = data_here

И затем save Объект.

new_sensor.save()

Ваш новый сенсорный объект был создан!

Вернуться на верх