Raspberry Pi2 model Bを使用してサーバへのデータ転送を行いたいと思っています。しかし、コードがわからず困っています。使用言語はPython2.7です。
具体的な内容は、Arduinoから1分ごとにデータが送られてくるので、受け取ったらサーバへ転送するといったことをやりたいと思っております。目標は24時間稼動です。
ArduinoとはUSBによって接続されています。
以下のコードでできるかなと思ったのですが、うまくいきませんでした。というのもサーバへのデータ転送はできるのですが、7時間ほど稼動させるとデータ転送が行われなくなります。
サーバの所有者に問い合わせた結果、サーバは問題なく動いているといわれました。おそらくPythonのコード、あるいは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()
つい最近同じような質問を見かけましたが。 https://teratail.com/questions/68138 socketのcloseでは解決しなかったということでしょうか。そうであればそのように記載の追記と、あとサーバーとRaspberryPi間の構成(無線か有線か、固定IPアドレスかDHCPでの動的割り当てか、FWやルーターなどはいるか)なども記載して下さい。