temperature monitoring system open source all the way! jim owens
TRANSCRIPT
![Page 1: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/1.jpg)
Temperature Monitoring System
Open Source all the way!
Jim Owens
![Page 2: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/2.jpg)
System components
Serial temperature sensor kit pyserial Python serial port extension tsl.py temperature data logger rrdtool logging and graphing application Linux-Apache-PHP cron daemon PHP scripts for recording and reporting
temperature data
![Page 3: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/3.jpg)
Serial Temperature Monitor
![Page 4: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/4.jpg)
Temperature Monitor Features
Provides real-time data via the serial port
Supports up to four sensors (DS18S20)
Accuracy within +/- 0.5 degrees Celsius
Configurable for Fahrenheit or Celsius
No external power required
Sensor placement up 200m from board
![Page 5: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/5.jpg)
Microcontroller: PIC12C509
High-Performance RISC CPU 33 single word instructions All instructions are single cycle (1µs) except for
program branches Operating speed: DC - 4MHz clock input 1024 Byte EPROM Program Memory 41 Byte RAM Data Memory Internal 4MHz RC Oscillator with
programmable calibration In-circuit serial programming
![Page 6: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/6.jpg)
Parts List
Preprogrammed PIC 12C509 microcontroller chip 1N4003 diode 78L05 voltage regulator 100uF electrolytic capacitor n+1 10uF tantalum capacitors 10V n DS1820 sensors n 2.2k pull-up resistors Printed circuit board Female 9-pin or 25-pin D connector
Where n is the number of temperature sensors
![Page 7: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/7.jpg)
Circuit Schematic
![Page 8: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/8.jpg)
pyserial
Encapsulates access to the serial port Class-based interface on all supported platforms Access to the port settings using Python 2.2 Use port numbering or string Support for different bytesizes, stopbits, parity and flow
control with RTS/CTS and/or Xon/Xoff Works with or without receive timeout File-like API with "read" and "write" 100% pure Python. POSIX uses only standard modules
![Page 9: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/9.jpg)
tsl.py
Simple and straightforward; uses pyserial
Logs temps, by sensor, from given serial port
to given path
Ideally, run by init process
Source code: tsl.py
![Page 10: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/10.jpg)
rrdtool
Implements a round-robin database
Creates sophisticated graphs “on the fly”
Very well documented
Provides bindings for Perl, Python, Ruby, etc.
Supported by large development community
Homepage: rrdtool
![Page 11: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/11.jpg)
System functions
tsl.py reads, stores data in tsl.n files (minicom)
On minute, cron script stores current temps in
rrd database, per sensor
Every 5 minutes, cron script creates new
graphs (1, 12, 24 hrs), per sensor
PHP script displays current temps and graphs,
by “room”
![Page 12: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/12.jpg)
Web sites
Temperature Sensor Project
pyserial Overview page
tsl Python source
rrdtool Homepage
![Page 13: Temperature Monitoring System Open Source all the way! Jim Owens](https://reader035.vdocuments.us/reader035/viewer/2022072011/56649e115503460f94afcaa8/html5/thumbnails/13.jpg)
Questions?