以下のプログラムコードを使用してサーバへデータ転送するようにしていますが、必ず7時間ほどでプログラムが起動しているにも関わらずデータ転送が行われなくなります。
Raspberry Piがスリープモードに入ってしまったためかと思い、スリープモードの設定の解除もしましたが、結果は同じでした。
プログラム側に問題があるのか、それともRaspberry Piの設定に問題があるのかわからない状態です。ちなみにRaspberry PiはRaspberry Pi2 Model Bを使用しています。
転送されなくなった後すぐにサーバを確認しましたがサーバは問題なく稼動していたので、Raspberry Piのプログラムか設定に問題があるのではと考えています。
Python
1# _*_ coding: utf-8 _*_ 2 3import serial 4import datetime 5import socket 6 7 8def main(): 9 i = 0 10 ser = serial.Serial("/dev/ttyACM0") #Arduinoが接続されているCOMポートを指定 Arduinoからは1分ごとにデータが転送される 11 12 host = "xxx.xx.xx..xx" #サーバのホスト名 13 port = "xxxx" #ポート番号 14 15 while True : 16 17 todaydetail = datetime.datetime.today() 18 line = ser.readline() 19 line = line.rstrip() 20 21 22 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 23 client.connect((host, port)) 24 client.send(todaydetail.strftime("%Y %m %d, %H:%M") + "," + line) 25 26 27 28 29 30 31 32 33 34 35#_________________________________________________ 36if __name__ == '__main()__': 37 main()
データはArduinoからUSB接続によって1分ごとに取得し、受け取ったデータをサーバに転送するようにしています。
このコードでは7時間ほど稼動させることに成功していますが、それ以降はサーバへデータ転送されない状態となりました。