I like the PC version that runs off a USB memory stick in an old laptop.
Reading the DS18B20 temperature chip is made simple on the Raspberry Pi.
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?Plotting_DS18S20_Temperature_Readings_Using_SVG
It would be nice if the RPi could be made to start up logging on Reboot.
How do you get the readings off the Pi?
Use a Cron job to poll the DS1820 every minute and log to a file.
Maybe limit the size of the file by appending the date in a structured way.
temp_DS_YYYYMMDD.log
I had an idea of storing the samples in a simple function call in a file ending in .js and putting this file in the web server folder.
A remote webpage could include these, and is covered in my Guestbook idea is great for a simple experiment.
It is possible to run a web server on the ESP01 devices and use it to poll the DS18B20 temperature chip.
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?Function_Calls
wget can be used to get a web page.
curses can also be used.
sudo busybox httpd -p 0.0.0.0:8086 -h /home/pi/www
I changed the hostname of my raspberry pi to patrickpi
http://patrickpi:8086/
http://patrickpi.local:8086/
The Broadband router, I have has a useful frontpage
http://192.168.1.254/
cron -A super-simple way to run scripts on boot
https://learn.pimoroni.com/article/running-scripts-at-boot
crontab -e Add:
@reboot python /home/pi/Pimoroni/blinkt/examples/rainbow.py &
A way to start a web server
A Way to start a web server when the RPi boots:-
A way to start a web server using rc.local
# Howevery this already has two web servers you can use. # * busybox httpd # * python -m httpd.server 8080 & # # To get it to boot on power up set up /etc/rc.local # # scp pi@patrickpi:/etc/rc.local rc.local.txt # #================================================= #!/bin/sh -e # owned by root # chmod 755 /etc/rc.local #!/usr/bin/ env python # # You could start a webserver using:- # python -m http.server 8080 &
# log last boot time for debug purposes date > /home/pi/rclocal.txt
# log env to file for debug purposes /usr/bin/env >> /home/pi/rclocal.txt
python dhr.py
sudo nano /lib/systemd/system/dhr.service
sudo systemctl start dhr.service
sudo systemctl stop dhr.service
sudo systemctl enable dhr.service
sudo systemctl disable dhr.service
sudo nano /lib/systemd/system/dhr.service
[Unit] Description=dhrPythonScript. After=network.target
[Service] ExecStart=/usr/bin/python3 /home/pi/dhr.py Restart=always User=pi
[Install] WantedBy=multi-user.target
This will start a webserver. this can be very useful for getting files off the Raspberry Pi.
python -m http.server 8080 --directory /home/pi
sudo nano /home/ip/dhr.py
import http.server import socketserver
PORT = 8080 DIRECTORY = "/home/pi"
class Handler( http.server.SimpleHTTPRequestHandler ): def __init__(self, *args, **kwargs): super().__init__(*args, directory=DIRECTORY, **kwargs)
# Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler ) as httpd: print("serving at port", PORT) httpd.serve_forever()
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?Plotting_DS18S20_Temperature_Readings_Using_SVG
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?Function_Calls
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?ESP01
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?Esp8226
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?Arduino_Based_Logger_And_SVG_Graph
I had an idea of storing the samples in a simple function call in a file ending in .js and putting this file in the web server folder.
A remote webpage could include these, and is covered in my Guestbook idea is great for a simple experiment.
A long time ago, in 2012, before the Raspberry Pi I brought one of these:-
http://www.phaedrusltd.com/index.html -
http://www.phaedrusltd.com/acatalog/Netiom_Produtcs.html
Netiom Web enabled boards. Standard Netiom Ref: Netiom-std Netiom is a stand-alone network aware Input / Output module which can be controlled over most networks including the Internet. It can be accessed from the Internet over a standard ADSL or other always on connection making remote monitoring and control a cost effective option.
You could upload a web page of your own design and read the state of switches and analogue inputs.
I uploaded this file so I could include it into my web pages and read the values.
http://www.dougrice.plus.com/dev/js2_new.cgi
ioF( "%31,analogue,%01,%02,%03,%04,"); %99
ioF( "%31,digital1,%05,%06,%07,%08,"); %99
ioF( "%31,digital2,%27,%28,%29,%30,"); %99
ioF( "%31,counts,%11,%12,%13,%14,"); %99
ioF( "%31,digital3,%41,%42,%43,%44,%47,%48,%49,%50,%51,%52,%53,%54,%55,%56,"); %99
ioF( "%31,serial,%00,%12,%13,%14"); %99
http://www.dougrice.plus.com/dev/netiom.svg included the file and try and plot them:-
< script language = "JavaScript" type = "text/javascript" src = "_http://192.168.1.22/js2.cgi" > < / script >
I do not think it was possible to get it to poll the inputs and store in a file until the unit was polled.
Using a Raspberry Pi, this can now be done.
The WiFi enabled ESP01 chips can also do this.
Somewhere you need a process that polls the sensors on a timer tick and stores the measurements.
This should happen when the user is not logged in with their laptop or smart phone.
You could use a CRON job on a RPi to poll the NETIOM board to read the state of the pins.
An Arduino could also be used and log the data to an SD Card.
http://ccgi.dougrice.plus.com/cgi-bin/wiki.pl?Arduino_Based_Logger_And_SVG_Graph
The Netiom could remotely read and set outputs but did not seem to support a regular timer tick.
At the time I was using Microchip PIC's in assembler.
http://www.dougrice.plus.com/rt004/sr3/Logger.html - A not very successful attempt to measure the performance of a solar powered light.
Some ideas. It is not that simple, but the Raspberry Pi and Arduino boards make it much simpler.