Runtime errorが解決できない

python

1# 必要なパッケージをインポートします。2import RPi.GPIO as GPIO 3import time, datetime 4import Adafruit_ADS1x15 5import math 6import influxdb 7import time, datetime 8import datetime 9 10# センサーのピンを設定します。11PIN=712 13# InfluxDBに接続するための情報を定義します。14host = 'localhost'15port = 808616user = 'pi'17password = 'XXXXX'18database = 'XXX'19 20# ポンプのピンを設定します。21MOTOR_PIN=1122 23# ポンプを停止します。24GPIO.setup(MOTOR_PIN, GPIO.OUT)25GPIO.output(MOTOR_PIN, GPIO.HIGH)26 27# センサーからデータを読み取ります。28def read_sensor():29 values = [0] * 10030 for i in range(100):31 values[i] = adc.read_adc(0, gain=GAIN)32 return max(values)33 34# ポンプを制御します。35def control_pump(moisture):36 if moisture > 20000:37 GPIO.output(MOTOR_PIN, GPIO.LOW)38 else:39 GPIO.output(MOTOR_PIN, GPIO.HIGH)40 41# InfluxDBにデータを記録します。42def record_data(host, port, user, password, database, time, moisture, motor):43 client = influxdb.InfluxDBClient(host, port, user, password, database)44 now = datetime.datetime.fromtimestamp(time).astimezone(datetime.timezone(datetime.timedelta(hours=9)))45 data = {46 "time": now,47 "moisture": moisture,48 "motor": motor,49 }50 client.write_points([data])51 52# メイン処理53def main():54 # GPIOの設定55 GPIO.setmode(GPIO.BCM)56 57 # センサーの設定58 adc = Adafruit_ADS1x15.ADS1015(busnum=1)59 GAIN = 260 61 # ポンプの設定62 GPIO.setup(MOTOR_PIN, GPIO.OUT)63 GPIO.output(MOTOR_PIN, GPIO.HIGH)64 65 # ループ処理66 while True:67 # センサーからデータを読み取る68 moisture = read_sensor()69 70 # ポンプを制御する71 control_pump(moisture)72 73 # InfluxDBにデータを記録する74 record_data(host, port, user, password, database, time.time(), moisture, GPIO.input(MOTOR_PIN))75 76if __name__ == "__main__":77 main()78

コメントを投稿

0 コメント