【问题标题】:Save sensor data in a Django database将传感器数据保存在 Django 数据库中
【发布时间】:2022-01-15 10:26:08
【问题描述】:

我正在做一个 Django 应用程序,它试图显示从超声波传感器获取的数据。

我想要的是从传感器获取距离并将其保存在它的 Django 表中。 通常这是通过一个表单完成的,但我希望它在每个传感器对象的后端完成。

这是我目前拥有的代码:

超声波传感器.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

模型.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()

【问题讨论】:

    标签: python django django-models sensors


    【解决方案1】:

    如果 Python 文件是 Django 项目的一部分,您可以尝试将模型导入到 Ultrasonicsensor.py 文件中。

    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()
    

    您的新传感器对象已创建!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      • 2013-02-03
      • 1970-01-01
      • 2016-08-09
      • 2018-03-16
      • 2020-09-15
      • 2013-02-28
      相关资源
      最近更新 更多