Categories
HowTo's VSCP

Monitor CPU temp of a Raspberry Pi #rpi #vscp #iot

The CPU temperature of a Raspberry Pi can be checked with

  cat /sys/class/thermal/thermal_zone0/temp

what you get is the CPU temperature in degrees Celsius times 1000. A typical output would therefore be

  44388

which is 44.388 degrees Celsius.

If we want to react on this temperature or collect it or diagram we need to send it to the VSCP daemon.  There is many ways to do this but the probably easiest way is to send it to the VSCP daemon over the TCP/IP interface. If you like MQTT more or websocket or a REST interface you can choose any of them instead as they all are supported by the VSCP daemon.

On a Raspberry Pi we usually have Python so we do this with a Python script for simplicity.  We can add this python script to cron and as we will see later get the CPU temperature every minute.

The script by the way is general. It can send any temperature times 1000 expressed in degrees Celsius and stored in a file to the VSCP daemon. It is possible to have the conversion as an input parameter but we skip that in this case.

The script is easy and looks like this

You use it like this

./send_pi_cpu_temp.py 192.168.1.6 admin secret –

First remember to make it executable (chmod a+x send_pi_cpu_temp.py ).

The parameters are.

  • IP address to server (192.168.1.9) where VSCP daemon resides.
  • User name for TCP/IP connection, obviously you should use anther user than the admin user in most cases.
  • Passsword for TCP/IP connection.
  • GUID to use for the temperature event. This is an optional parameter and if not given “-” wil be used which is the same as a GUID with all zeros and mans that the event will have the GUID of the interface. It is better to give an explicit GUID but this works for now.

So issuing this and watching it in VSCP Works

now we can add this to a cron script to get the temperature sent to the VSCP daemon every minute.

We add a script send_cpu_temp to /etc/cron.d looking like this

* * * * * root cd /root;./send_pi_cpu_temp.py 192.168.1.6 admin secret 00:00:00:00:00:00:00:00:00:00:00:00:00:01:00:02

Note that a GUID has been assigned here for the sensor. The

00:00:00:00:00:00:00:00:00:00:00:00:xx:xx:xx:xx

can be used for lab usage and I put a id for some hardware in byte 2/3 in this case 00:01 and index in byte 0/1 ( 00:02). We could have used the MAC address or the IP address  of the Raspberry Pi as a base for this or a privately assigned GUID series. You can read more about the GUID’s here.

Thats it. You can now alarm yourself when the temperature reach critical levels or just diagram the data or collect it in a database.

A note
VSCP base measurements on the SI system.  So a measurement has a base unit that is standardized and well specified. For convenience you can often use other units also. As an example, for temperature, the base unit (0) is Kelvin. But you can send the temperature data as degrees Celsius (unit=1) or degrees Fahrenheit (unit=2) also. The important thing is that it will always be well specified.

The format of the data is also well specified. In VSCP there is no questions raised about big/little endian or decimal point formats and such things. The number can come in many formats (string/integer/float…) but they are all well specified and have a clear conversion path between each other.

Well why? you may ask. What can we gain from this?

The thing is that as soon as we have the data in a common format routines for handling one type of measurement will work equally well for another type of measurements. Write once use many times.  You can even see this in the above sample. Only the unit and the class type will have a new meaning if we wanted to send a sound level measurement instead of a temperature measurement to the VSCP daemon.

In this case all VSCP Level I is used. That means max. 8 bytes of data.  Even the smallest device out there can handle this. It’s both practical and economical.

And all this is true for turning on/off things etc also of course.

Categories
VSCP

First and second Swedish donations on the same day

We got a donation from Anders Forsgren today and later a donation from Jonas Hedman. First Swedish donations ever. And this on a day when the mountain of work left to do felt higher than usual.

Thanks a lot guys!

Categories
General HowTo's

#Python script to read #1-wire sensors and more Python scripts #VSCP #IoT

The most important mission with a m2m/IoT/whatever framework like VSCP is to make the world simpler for the end-user. Yes for the “end-user”, NOT for the developer.  That said it is of course good if things are as easy as possible for the developer to.

If you are new to VSCP the system is always overwhelming. It is a big system with many possibilities, but the event is central, VSCP is after all an event based system, and when your data is on the VSCP standardized event format you can present it, store it, react on it or calculate on it in a standardized way. Any solution you come up with that handles events will become a reusable component. For you and for others if you share your work. For instance. If you make a software that diagram measurement value and your intention is to show temperature changes this same piece of software will be useful for someone else to display concentration variations in a fluid of a process industry by just changing the description of the diagram labels.

VSCP events have a class and a type that specify what the event describes. This is typically a “measurement” or “info” or “control”. Samples are

Class=10, Type=6 – The event describes a temperature.
Class=30, Type=5 – Turn on “something”.

You can read all about them here

The measurement events are standardized around the SI units.  So you will see all standardized units there but also some derived ones. If/when need arise more will follow. They all have a unit and a value.

For the unit there is the standardized unit, for example for temperature “degrees Kelvin” is used. But user want to work with Celsius or Fahrenheit so they are also available. Without going into details the end result is a unit of information (the VSCP event)  that specify the measurement value fully and this information unit is usable by both low end and high end systems.

Why is this important you say.

First of all there will not be mistakes like sending a Mars sond past Mars because one developer thought the values where inches and another centimetres. Secondly you only need to write code once for each layer. An event, a measurement, a type of measurement and so on. If you think about it this is exactly what the web and web browsers is all about. A common format for the hypertext.

So to the point. To benefit from the above you have to translate world data into VSCP events.

In this sample a DS2490 one-wire adapter read an outside temperature and an inside temperature and send the sensor values to a VSCP daemon as VSCP events for further processing. A simple Python script is used which is added to the crontab on a Raspberry Pi to report the temperature every minute.  ne wire id’s can be directly translated into a valid VSCP GUID (just as an Ethernet MAC etc can) so this is also taken care of in the script.

When the sensor values is sent to the daemon it can be collected or presented in a standardized way or another system can react on the data and as in this case turn on a heater when the temperature is to low or alarm via an SMS when the outside temperature is going below zero.

You can find more Python code here.

Salvo Musumeci started work to do VSCP Python bindings to the VSCP helper library but it appears that this project has stalled.  I hope he or someone else will complete this project as it would benefit a lot.

 

Categories
VSCP

#VSCP in Swedish #IoT #m2m

start | VSCP Specification

http://www.akehedman.se/wordpress/?p=22252

 

Categories
Sponsoring

Sponsoring #VSCP #IoT #m2m

We today got a  EUR 50 donation from Gediminas Simanskis, Vilnius, Lithuania to the project.  Thank you Gediminas!

Besides the money, which is  very much-needed to keep this project going, with servers and all other stuff that needs to be held active, the belief in the project, from an other human being far away, which a contribution like this is a proof of, is worth thousand and thousands  times more than the actual money.  So this is big.

I thank you Gediminas, and all other people around the world, that decided to support the project. I send this thank you  from the deepest rooms of my heart. You will never be forgotten and for me your unselfish action is the proof that there actually is good in the world after all.

Ake Hedman
Maintainer of the free and open VSCP project.

Categories
VSCP

The people behind #VSCP #IoT #m2m

start | VSCP Specification

Good people. Join us U2.

http://www.vscp.org/wiki/doku.php/who_why_where/the_vscp_team

 

Categories
VSCP

Autumn games #VSCP #IoT #m2m

img_20141220_180137

Categories
VSCP

Sponsoring #VSCP #IoT #m2m

We today got a  EUR 50 donation from Henk Hofstra, Alkmaar, Holland to the project.  Thank you Henk!

Besides the money, which is  very much-needed to keep this project going, with servers and all other stuff that need to be held active, the belief in the project, from an other human being far away, which a contribution like this is a proof of, is worth thousand and thousands  times more than the actual money.  So this is big.

I thank you Henk, and all other people around the world, that decided to support the project. I do this  from the deepest rooms of my heart. You will never be forgotten and for me your unselfish action is the proof that there actually is good in the world after all.

Ake Hedman
Maintainer of the free and open VSCP project.

 

Categories
Sponsoring

Sponsoring #VSCP #IoT #m2m

We today got a  EUR 50 donation from Dinesh Guleria, New Dehli, India to the project.  Thank you Dinesh!

Besides the money, which is  very much-needed to keep this project going with servers and all other stuff that need to be held active, the belief in the project, from an other human being far away, which a contribution like this is a proof of, is worth thousand and thousands  times more than the actual money.  So this is big.

I thank you Dinesh, and all other people around the world, that decided to support the project. I do this  from the deepest rooms of my heart. You will never be forgotten and for me your unselfish action is the proof that there actually is good in the world after all.

Ake Hedman
Maintainer of the free and open VSCP project.

Categories
VSCP

TODO’s of #VSCP #IoT #m2m

floorplan_button_example

For people who want to keep track of the TODO’s of VSCP (OR help out by taking on one of the points)  the (ever-growing) list is here.