Моя SD-карта продолжает сообщать мне, что требуется 6 позиционных аргументов, но было задано 3 [закрыто]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Моя SD-карта продолжает сообщать мне, что требуется 6 позиционных аргументов, но было задано 3 [закрыто]

Сообщение Anonymous »

Я создаю код, который использует Raspberry Pi для измерения температуры, уровня газа, освещенности и движения в данной комнате. Он у меня есть, поэтому он отображается на ЖК-экране, чтобы его можно было просмотреть в любой момент.
Единственное, что я не могу заставить SD-карту прекратить это действие. ошибка, когда говорится, что имеется 6 позиционных аргументов, хотя ожидается три. Я хочу, чтобы данные записывались в файл на SD-карте для просмотра позже, когда код не будет запущен. Почему он это делает и как это исправить?
from machine import I2C, Pin, ADC, SPI
import machine
from pico_i2c_lcd import I2cLcd
import utime
import sdcard
import os
from time import sleep

i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)

I2C_ADDR = i2c.scan()[0]
lcd = I2cLcd(i2c, I2C_ADDR, 2, 16)
lcd.clear()

pir_sensor = Pin(28, Pin.IN)
print("time(s) motion voltage temperature light 3 sec intervals")
n = 0
timeintervals = 9

# Initialize SPI
spi = machine.SPI(0,
baudrate=1000000,
polarity=0,
phase=0,
sck=machine.Pin(18),
mosi=machine.Pin(19),
miso=machine.Pin(16))

# Initialize SD card
cs = machine.Pin(17, machine.Pin.OUT)
sd = sdcard.SDCard(spi, cs)
vfs = os.VfsFat(sd)
os.mount(vfs, "/sd")

while True:
motion = 1 if pir_sensor.value() == 1 else 0

mq2 = ADC(26)
conversion_factor = 3.3 / 65535
mq2_voltage = mq2.read_u16() * conversion_factor

sensor = ADC(4)
reading = sensor.read_u16()
sensor_voltage = reading * (3.3 / 65535)
temperature = 27 - (sensor_voltage - 0.706) / 0.001721
temperature = temperature * 1.8 + 32

ldr = ADC(27)
ldr_value = ldr.read_u16()
RoomLit = 1 if ldr_value < 20000 else 0

print(n, motion, mq2_voltage, temperature, RoomLit)
lcd.putstr("Motion = " + str(motion) + "\n")
lcd.putstr("V = " + str(mq2_voltage)[:5] + "\n")
sleep(3)
lcd.clear()
lcd.putstr("temp = " + str(temperature)[:4] + "deg-F" + "\n")
lcd.putstr("RoomLit = " + str(RoomLit) + "\n")
sleep(3)
lcd.clear()
lcd.putstr("time = " + str(n) + "\n")

# Write data to SD card
try:
with open("/sd/data.txt", "a") as file:
file.write(f"{n}, {motion}, {mq2_voltage}, {temperature}, {RoomLit}\n")
print("Data written to SD card")
except Exception as e:
print("Error writing to SD card:", e)

n = n + timeintervals
sleep(timeintervals)
lcd.clear()



Подробнее здесь: https://stackoverflow.com/questions/792 ... were-given
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»