読者です 読者をやめる 読者になる 読者になる

温度ロガーつづき

移転しました。

昨日作った温度ロガーをUSBコネクタ一つに接続するだけで動作するようにして、1時間ごととか定期的に温度を取得するようにして、それをグラフにプロットして、FTPにアップロードするようにしてみた。python + gnuplot.py + pyserial + pycronをwindows上で使って。


windows XPへのインストール手順は、python-2.6.msi -> numpy.exe -> pyserial.exe -> gnuplot.zip extract -> gnuplot.py.zip exract -> to the environment variable PATH, the phrase is added 'c:\python26\;c:\gnuplot\binary\' -> c:\gnuplot-py\python setup.py install -> pycron install みたいな。(メモ)


from serial import Serial
import time
import Gnuplot
from ftplib import FTP


def main():
    #serial port open to com
    com = Serial(
        port=11,
        baudrate=300,
        bytesize=8,
        parity='N',
        stopbits=1,
        timeout=1,
        xonxoff=0,
        rtscts=0,
        writeTimeout=None,
        dsrdtr=None)

    #print com.portstr
    #transmit a charactor to AVR
    com.write('q')


    f = open('temprec.txt', 'a')

    dat = time.strftime('%Y%m%d%H%M%S') +" " + str(int(com.readline())/1000.) + "\r\n"
    f.write(dat)
    f.close()
    com.close()

    g = Gnuplot.Gnuplot(debug=1)
    g.title('Temperature')
    g.ylabel('Temperature (degC)')
    g.xlabel('Date and time')
    g('set timefmt "%Y%m%d%H%M%S"')
    g('set xdata time')
    g('set pointsize 1')
    g.plot(Gnuplot.File('temprec.txt', using='1:2', title='', with_='lp pt 6'))
    g.hardcopy('temp.png', terminal='png')


    #upload

    ftp = FTP('abc.net')
    ftp.login()
    ftp.cwd('./boo')
    ftp.storbinary('STOR temp.png', open('temp.png', 'rb'))
    ftp.storlines('STOR temprec.txt', open('temprec.txt', 'r'))
    ftp.quit()



main()