Instructables

Introducing Climaduino - The Arduino-Based Thermostat You Control From Your Phone!

Featured
IMG_3261.PNG
IMG_6268.jpeg

Update:
I am currently working on the next generation Climaduino. It adds the ability to control all functions of a Central AC/Furnace. The Climaduinos run on the Arduino Yún and communicate over a WiFi network to the controller. I intend to eventually write a follow-up Instructable and will link it here. I will also try to make the controller easier to setup by writing a setup script to automate the process.

Not everyone lives somewhere with central air, or is willing to pay for a Nest or similar "smart" thermostat. The Climaduino is a DIY Arduino-based thermostat designed to control a wall unit A/C. I incorporated both temperature and humidity sensors in order to optimize comfort and reduce energy usage. I then developed a Raspberry Pi-based web interface to control the Climaduino from my phone.

This is still a work in progress, but is definitely functional. I am posting this instructable so others can both build their own smart thermostats, and hopefully build on this project with their Climaduino improvements.

Here are the features so far:

Climaduino thermostat

  • Arduino-based
  • temperature and humidity sensors
  • Relay to control A/C
  • LCD Display
  • Buttons to control temperature
  • Controls both temperature and humidity
  • Settings stored in EEPROM and survive power failures
  • Short cycle protection for efficiency and compressor protection

Climaduino Controller

  • Raspberry Pi-based
  • Wifi-enabled
  • Mobile-optimized web interface to control Climaduino settings
  • Historical temperature and humidity graphs
  • Programmable temperature and humidity changes


Why did I want to build this? Mainly because it was fun to do and I've always been very interested in climate control. (I know that sounds weird, but it's true.) It's also because humidity is a huge issue in my area, South Florida. I designed the Climaduino Thermostat to take this into account. The A/C will stay on just a little bit longer when it's humid to wring more moisture out of the air. I also added a humidity control mode. It can save a significant amount of power and prevent coming home to a mold-infested house. Humidity control mode ignores temperature and only runs the A/C when things get too humid. It's useful when going out of town or when the house is empty (of people and pets).

Obligatory warning
If you perform any of the steps in this instructable, you assume all risk for the outcome. Working with high voltage can be extremely dangerous. Improperly altering your A/C unit could lead it to malfunction or completely break. Please be careful.

Electrical Safety: Safety and Health for Electrical Trades Student Manual

 
Remove these adsRemove these ads by Signing Up
1-40 of 48Next »
lzu1 year ago
Very cool!!!
I thought of something very similar. Obviously using my open source java library control. Actually there is still no web interface (you can just control Arduino from network) but it works very well with Raspberry. If you are interested check it at www.ardulink.org
bbustin (author)  lzu1 year ago
Izu, that looks very intriguing. It is an extremely cool project that I would love to experiment with at some point. Thanks for letting me know about it.
lzu bbustin1 year ago
Thank you. Give me a feedback when you'll try it.
BryanS51 month ago

Bbustin I have fixed some code up to work on arduino mega

I was also going to add code for a heater relay instead of JUST AC

at least how I read it is that you only have AC toggle otherwise I would assume you need 2x relay outputs and also a setup for heat rather than Just cold :D Some of us live in a cold climate and want efficient heating rather than cooling :D or actually I planned on both

BryanS5 BryanS51 month ago

I also updated code to work with RGB lcd from adafruit and give feedback via colors based on wether the climaduino was heating or cooling

Now to figure out how to get code inserted for it to my heating / cooling using a 2nd relay :D

LeeJ1 BryanS58 days ago

Could you share the code for heater only? Or give me a hint on what to change? I am going to use this to run a pellet stove in Oregon, so I won't need any of the cooling function

BryanS51 month ago

apt-get install libpango1.0-dev libxml2-dev
For people getting problems with python-rrdtool setup

I would love to use this to control a Trane Electric Furnace and AC Compressor combo. Any thoughts or advice before I dive in?

This looks brilliant - exactly what I want to do. The only addition I need is hot water control. Do you think the arduino is capable of controlling that as well?

Thanks, Duncan

afalzon11 months ago
hi,
i am stuck @ step six - setup the controller unit.

i Run:
pi@raspberrypi ~/climaduino $ python manage.py syncdb
And Get:

Traceback (most recent call last):
File "manage.py", line 8, in
from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

any thoughts?
afalzon afalzon11 months ago
I just realised that django was not installing it says i don't have enough space. :(

I will get myself another SD card and try again.

bbustin (author)  afalzon11 months ago
Hi afalzon. Let us know how it works when you get the bigger SD card. Can't wait to have another person running this so we can work together to improve it.
afalzon bbustin11 months ago
Hi bbustin,
I have now tried a 16 gig card and im getting the same issue. any thoughts?
bbustin (author)  afalzon11 months ago
Hi afalzon, try running:
sudo raspi-config

then choose to auto-expand the installation.

If this works, let me know and I'll ad it into the steps to make sure no one else has the same problem.
afalzon bbustin11 months ago

hi bbustin, i had already done that.

i made a new temp folder on my main partition and that fixed that issue. i still cant get it to work though.

i have a feeling the versions of everything have changed since these instructions were written and therefore some things may need different steps

bbustin (author)  afalzon6 months ago

I found the following steps here http://www.raspberrypi.org/forums/viewtopic.php?f=.... Maybe they would help?

cd
mkdir tmp
export TMPDIR=/home/pi/tmp

(I know this response is very late, but I want to put it here to help others as well.)

daniel20786 months ago

I have a quick question, I followed all the steps, the Thermostat with display work fine, I'm able to see readings through the admin on the PI but if I try run the page to view readings I'm getting the following error

'Manager' object has no attribute last()'

I'm not using any virtualenv since I plan to have this eventually running on its own.

Any suggestions ??

Thanks in advance

bbustin (author)  daniel20786 months ago

Hi. I think this is because there are no readings in the database. Try going to http://climaduino.local/admin/settings/reading/. Then click add reading and add some bogus values. The trick will be to see if this updates with the proper readings later.

I'm in the process of making some major changes. It will work with multiple zones over a WiFi network using the Arduino Yún (http://arduino.cc/en/Main/ArduinoBoardYun?from=Products.ArduinoYUN). The newer code will be better about creating default database entries so there is less of a chance the error you are getting will happen.

I tried your suggestion but got same error, I'll try it with the virtualenv instead, perhaps thats the way it works, I'll keep checking if you gonna post a new version, cool project BTW !!

bbustin (author)  daniel20786 months ago

Thanks! Maybe it is because it is missing a setting? If so, try doing the same same thing here:

http://climaduino.local/admin/settings/setting/

Just create a setting and see if that helps. That page you are going to is pulling data from both settings and readings. Maybe the code drops the ball if one is missing...

thanks again , I'll give it a try

bbustin (author)  daniel20786 months ago

Let us know if that works. I think, as long as there is both a setting record and a reading record, that view should work. I'm just really glad someone else is building this out. I'd be glad to help out where I can.

Unfortunately I don't seem to be receiving comment or private message email notifications from Instructables. I'll send you my email in a private message.

IT-Wizard1 year ago
look similar to :
http://www.lucadentella.it/2013/08/07/ambientmonitor/
bbustin (author)  IT-Wizard1 year ago
Hi IT-Wizard. Thanks for sending me that link. There are definitely some similarities between the projects and some significant differences.

Both projects use the DHT22 temperature and humidity sensor (it is also called the AM2302. They also both report temperature and humidity readings using JSON, and have web interfaces that show the current temperature and humidity.

They also differ in many ways. The Climaduino Thermostat uses the readings to turn on or off an A/C. In addition to the temperature and humidity readings, it also reports back the set temperature and humidity in JSON. Rather than the JSON data being directly read by a web browser and the graphing occuring there, it is read by the Climaduino Controller program running on a Raspberry Pi. The data is stored so that historical graphs can be generated. The Controller can communicate back to the Climaduino Thermostat to change set temperature, set humidity, and mode. The web interface is served from the Climaduino Controller on the Raspberry Pi.
Thanks for your replies. I really enjoy all these projects, and I am on my way trying to build my own based on Arduino. As I live in Belgium, our needs are different (more heating than A/C) ;o)
bbustin (author)  IT-Wizard1 year ago
My pleasure. Thanks for the comments and pointing out these other great projects to me. There is code in this project that is there for heating, it's just not finished. I could finish that relatively quickly for you if that would help.
That's very kind of you.
Actually I am working on a HVAC system that can be upgraded with some domotics features (like an electric window shutter).
My project name is Domoduino.
it is based on a Dimondback Arduino compatible board.
It brings Wi-Fi.
- Humidity and Temperature Sensor - DHT11
- 868Mhz module - RFM12B (with some JeeNodes boards)
- a digital PIR (http://www.emartee.com/product/41844/)

I am struggling with the heating wirings. Apparently, here in Belgium, there are many different standards and, at least, two voltages (24v and 240v).
bbustin (author)  IT-Wizard6 months ago

The code for the next generation Climaduino now is set up to control all features of a central AC/furnace. I don't have any steps on how to get that running yet and the code is still being actively worked on at the moment. I'll hopefully have it pretty firmed up in the coming months. I've just started testing it on a Central AC to see if it works properly.

tuerca9 months ago
hello when I install python-rrdtool tells me this error, anyone know how to fix it?

pi@climaduino ~ $ easy_install python-rrdtool
Searching for python-rrdtool
Reading https://pypi.python.org/simple/python-rrdtool/
Best match: python-rrdtool 1.4.7
Downloading https://pypi.python.org/packages/source/p/python-rrdtool/python-rrdtool-1.4.7.tar.gz#md5=7112a594ccd7759d59eaebf061ddacbd
Processing python-rrdtool-1.4.7.tar.gz
Writing /tmp/easy_install-JBfSIB/python-rrdtool-1.4.7/setup.cfg
Running python-rrdtool-1.4.7/setup.py -q bdist_egg --dist-dir /tmp/easy_install-JBfSIB/python-rrdtool-1.4.7/egg-dist-tmp-vqcNSp
checking build system type... armv6l-unknown-linux-gnueabi
checking host system type... armv6l-unknown-linux-gnueabi
checking target system type... armv6l-unknown-linux-gnueabi
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking whether to enable maintainer-specific portions of Makefiles... no

Audit Compilation Environment
checking how to run the C preprocessor... gcc -E
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking whether gcc and cc understand -c and -o together... yes
checking for a sed that does not truncate output... /bin/sed
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking if gcc likes the -Werror flag... yes
checking if gcc likes the -fno-strict-aliasing flag... yes
checking if gcc likes the -Wall flag... yes
checking if gcc likes the -std=gnu99 flag... yes
checking if gcc likes the -pedantic flag... yes
checking if gcc likes the -Wundef flag... yes
checking if gcc likes the -Wshadow flag... yes
checking if gcc likes the -Wpointer-arith flag... yes
checking if gcc likes the -Wcast-align flag... yes
checking if gcc likes the -Wmissing-prototypes flag... yes
checking if gcc likes the -Wmissing-declarations flag... yes
checking if gcc likes the -Wnested-externs flag... yes
checking if gcc likes the -Winline flag... yes
checking if gcc likes the -Wold-style-definition flag... yes
checking if gcc likes the -W flag... yes

Checking for Header Files
checking for ANSI C header files... (cached) yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking libgen.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking features.h usability... yes
checking features.h presence... yes
checking for features.h... yes
checking for sys/stat.h... (cached) yes
checking for sys/types.h... (cached) yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking fp_class.h usability... no
checking fp_class.h presence... no
checking for fp_class.h... no
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking for unistd.h... (cached) yes
checking ieeefp.h usability... no
checking ieeefp.h presence... no
checking for ieeefp.h... no
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking for stdlib.h... (cached) yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking for string.h... (cached) yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking for an ANSI C-conforming const... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h

Test Library Functions
checking for acos... no
checking for acos in -lm... yes
checking for strftime... yes
checking for vprintf... yes
checking for _doprnt... no
checking whether byte ordering is bigendian... no
checking for nl_langinfo... yes
checking for tzset... yes
checking for round... yes
checking for rint... yes
checking for fsync... yes
checking for mbstowcs... yes
checking for opendir... yes
checking for readdir... yes
checking for chdir... yes
checking for chroot... yes
checking for getuid... yes
checking for strerror... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for vasprintf... yes
checking for fpclass... no
checking for class... no
checking for fp_class... no
checking for isnan... yes
checking for memmove... yes
checking for strchr... yes
checking for mktime... yes
checking for getrusage... yes
checking for gettimeofday... yes
checking whether strerror_r is declared... yes
checking for strerror_r... yes
checking whether strerror_r returns char *... yes

Map/Fadvis/Madvise checking
checking for fdatasync... yes
checking for fsync... (cached) yes
checking for socket... yes
checking for getaddrinfo... yes
checking sys/mman.h usability... yes
checking sys/mman.h presence... yes
checking for sys/mman.h... yes
checking for stdlib.h... (cached) yes
checking for unistd.h... (cached) yes
checking for getpagesize... yes
checking for working mmap... yes
checking for mmap... yes
checking for munmap... yes
checking for msync... yes
checking whether madvise is declared... yes
checking for madvise... yes
checking whether posix_fadvise is declared... yes
checking for posix_fadvise... yes

Libintl Processing
checking whether NLS is requested... yes
checking for msgfmt... no
checking for gmsgfmt... :
checking for xgettext... no
checking for msgmerge... no
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking for CFPreferencesCopyAppValue... no
checking for CFLocaleCopyCurrent... no
checking for GNU gettext in libc... yes
checking whether to use NLS... yes
checking where the gettext function comes from... libc

IEEE Math Checks
checking for fpclassify... no
checking for fpclassify with ... yes
checking for isinf... yes
checking whether isfinite is broken... no
checking if IEEE math works out of the box... yes

Resolve Portability Issues
checking tm_gmtoff in struct tm... yes
checking __tm_gmtoff in struct tm... no
checking if msync with MS_ASYNC updates the files mtime... yes
checking for _NL_TIME_WEEK_1STDAY... no
checking for nl_langinfo(_NL_TIME_WEEK_1STDAY) with langinfo.h... yes
checking for opterr... yes
checking for getopt_long... yes
checking if realloc can deal with NULL... yes
checking if ctime_r need special care to act posixly correct... no
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking for cc_r... gcc
checking do we need malloc/malloc.h... nope, works out of the box
checking the type of time_t... checking size of time_t... 4
time_t is 32 bit

Find 3rd-Party Libraries
checking dbi/dbi.h usability... no
checking dbi/dbi.h presence... no
checking for dbi/dbi.h... no
checking tcpd.h usability... no
checking tcpd.h presence... no
checking for tcpd.h... no
checking for cairo_font_options_create in -lcairo... no
checking for pkg-config... pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no cairo-png.pc file around.
You may want to set the PKG_CONFIG_PATH variable to point to its
location.
----------------------------------------------------------------------------

configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of cairo-png. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libcairo and its header files. If
you have not installed cairo-png, you can get it either from its original home on

http://cairographics.org/releases/

You can find also find an archive copy on

http://oss.oetiker.ch/rrdtool/pub/libs

The last tested version of cairo-png is 1.10.2.

LIBS=-lm
LDFLAGS=
CPPFLAGS=

----------------------------------------------------------------------------

checking for cairo_svg_surface_create in -lcairo... no
checking for pkg-config... (cached) pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no cairo-svg.pc file around.
You may want to set the PKG_CONFIG_PATH variable to point to its
location.
----------------------------------------------------------------------------

configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of cairo-svg. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libcairo and its header files. If
you have not installed cairo-svg, you can get it either from its original home on

http://cairographics.org/releases/

You can find also find an archive copy on

http://oss.oetiker.ch/rrdtool/pub/libs

The last tested version of cairo-svg is 1.10.2.

LIBS=-lm
LDFLAGS=
CPPFLAGS=

----------------------------------------------------------------------------

checking for cairo_pdf_surface_create in -lcairo... no
checking for pkg-config... (cached) pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no cairo-pdf.pc file around.
You may want to set the PKG_CONFIG_PATH variable to point to its
location.
----------------------------------------------------------------------------

configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of cairo-pdf. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libcairo and its header files. If
you have not installed cairo-pdf, you can get it either from its original home on

http://cairographics.org/releases/

You can find also find an archive copy on

http://oss.oetiker.ch/rrdtool/pub/libs

The last tested version of cairo-pdf is 1.10.2.

LIBS=-lm
LDFLAGS=
CPPFLAGS=

----------------------------------------------------------------------------

checking for cairo_ps_surface_create in -lcairo... no
checking for pkg-config... (cached) pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no cairo-ps.pc file around.
You may want to set the PKG_CONFIG_PATH variable to point to its
location.
----------------------------------------------------------------------------

configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of cairo-ps. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libcairo and its header files. If
you have not installed cairo-ps, you can get it either from its original home on

http://cairographics.org/releases/

You can find also find an archive copy on

http://oss.oetiker.ch/rrdtool/pub/libs

The last tested version of cairo-ps is 1.10.2.

LIBS=-lm
LDFLAGS=
CPPFLAGS=

----------------------------------------------------------------------------

checking for pango_cairo_context_set_font_options in -lpangocairo-1.0... no
checking for pkg-config... (cached) pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no pangocairo.pc file around.
You may want to set the PKG_CONFIG_PATH variable to point to its
location.
----------------------------------------------------------------------------

configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of pangocairo. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libpangocairo-1.0 and its header files. If
you have not installed pangocairo, you can get it either from its original home on

http://ftp.gnome.org/pub/GNOME/sources/pango/1.28

You can find also find an archive copy on

http://oss.oetiker.ch/rrdtool/pub/libs

The last tested version of pangocairo is 1.28.4.

LIBS=-lm
LDFLAGS=
CPPFLAGS=

----------------------------------------------------------------------------

checking for glib_check_version in -lglib-2.0... no
checking for pkg-config... (cached) pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no glib-2.0.pc file around.
You may want to set the PKG_CONFIG_PATH variable to point to its
location.
----------------------------------------------------------------------------

configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of glib-2.0. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libglib-2.0 and its header files. If
you have not installed glib-2.0, you can get it either from its original home on

ftp://ftp.gtk.org/pub/glib/2.28/

You can find also find an archive copy on

http://oss.oetiker.ch/rrdtool/pub/libs

The last tested version of glib-2.0 is 2.28.7.

LIBS=-lm
LDFLAGS=
CPPFLAGS=

----------------------------------------------------------------------------

checking for xmlParseFile in -lxml2... no
checking for pkg-config... (cached) pkg-config
configure: WARNING:
----------------------------------------------------------------------------
* I found a copy of pkgconfig, but there is no libxml-2.0.pc file around.
You may want to set the PKG_CONFIG_PATH variable to point to its
location.
----------------------------------------------------------------------------

configure: WARNING:
----------------------------------------------------------------------------
* I could not find a working copy of libxml-2.0. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libxml2 and its header files. If
you have not installed libxml-2.0, you can get it either from its original home on

http://xmlsoft.org/downloads.html

You can find also find an archive copy on

http://oss.oetiker.ch/rrdtool/pub/libs

The last tested version of libxml-2.0 is 2.7.8.

LIBS=-lm
LDFLAGS=
CPPFLAGS= -I/usr/include/libxml2

----------------------------------------------------------------------------

configure: error: Please fix the library issues listed above and try again.
Traceback (most recent call last):
File "/home/pi/bin/easy_install", line 9, in
load_entry_point('setuptools==3.2', 'console_scripts', 'easy_install')()
File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 1911, in main

File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 1898, in with_ei_usage

File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 1915, in

File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 358, in run

File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 593, in easy_install

File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 623, in install_item

File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 811, in install_eggs

File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 1017, in build_and_install

File "build/bdist.linux-armv6l/egg/setuptools/command/easy_install.py", line 1002, in run_setup

File "build/bdist.linux-armv6l/egg/setuptools/sandbox.py", line 50, in run_setup
File "build/bdist.linux-armv6l/egg/setuptools/sandbox.py", line 100, in run
File "build/bdist.linux-armv6l/egg/setuptools/sandbox.py", line 52, in
File "setup.py", line 99, in
File "/usr/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "build/bdist.linux-armv6l/egg/setuptools/command/bdist_egg.py", line 185, in run
File "build/bdist.linux-armv6l/egg/setuptools/command/bdist_egg.py", line 171, in call_command
File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "build/bdist.linux-armv6l/egg/setuptools/command/install_lib.py", line 8, in run
File "/usr/lib/python2.7/distutils/command/install_lib.py", line 111, in build
self.run_command('build_ext')
File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 68, in run
File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
self.distribution.run_command(command)
File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 62, in run
File "/usr/lib/python2.7/subprocess.py", line 511, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '/tmp/easy_install-JBfSIB/python-rrdtool-1.4.7/rrdtool-1.4.7/configure' returned non-zero exit status 1
bbustin (author)  tuerca8 months ago

Hi Tuerca,

I apologize for the delay in responding, but for some reason I am not getting email alerts from instructables.

I received that same error when I was trying to install it on my Mac for testing, but did not encounter that problem on the Raspberry Pi when using the Occidentalis v0.2 distribution. Unfortunately there was no easy solution to get it to work on the Mac that I could find.

Were you having this problem on the Raspberry Pi and are you using the Occidentalis v0.2 distribution?

bbustin (author)  bbustin8 months ago

Try installing libcairo2-dev using the following command and let us know if it works... 'sudo apt-get install libcairo2-dev'.

tuerca bbustin8 months ago

Hi, I'm trying to v0.2 occidentalis distribution in Raspberry with 16 GB SD from remote terminal (Putty) PC (windows8) and WinSCP (To transfer programs)

I'll try again and you shall pass a detailed report.

Let's see if we get the solution to the problem.

I think your app has many possibilities.

philchamp789 months ago

Hello. This is great !

I'm trying to make this Climaduino but i would want to know how to have °C instead of °F ?

Thanks for your anwser.

Hi Philchamp78

In line 216 of program arduino change to False for degrees Celsius.

float readingTemp = dht.readTemperature(true); //get temperature reading - true indicates degrees fahrenheight

Can you help me with raspberry pi?

Regards

Hi Tuerca.

Thanks a lot but i found how to do after some research on internet.

The Arduino part is working well but impossible to make working the Raspberry one. I tried and tried again but nothing good...

So i search different other projects or trying to make one by myself.

Regards.

bbustin (author)  philchamp788 months ago

Philchamp78, thanks for posting the solution here. I have not been getting email alerts from Instructables for some reason.

bbustin (author)  bbustin8 months ago

Aside from the rrdtool issue Tuerca was having, what other issues are happening? If I have time, I might be able to do a reinstall from scratch to see where things are breaking. If you have any more information, that will be much appreciated. I really want this project to work for everyone.

tuerca bbustin8 months ago

1 - . 16GB SD card in the " win32diskimager - v0.9 -binary " software install image " Occidentalis_v02.img "

. 2 - Insert SD Raspberry Pi, I connect to my network wired Lan .

. 3 - With "Advanced IP Scanner " I search my IP Raspberry Pi.

4 - . Put my IP in Putty e.g. ( 192.168.1.221 ) port (22) and pulse " Open"

5. -Login: pi

6. -Password : raspberry

7.- started with Python Install Setuptools

https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py wget -O - | sudo python

8.- install rrdtool and found the first problem.

pi @ raspberrypi ~ $ sudo apt- get install rrdtool

Reading package lists ... Done

Building dependency tree

Reading state information ... Done

The Following additional packages will be installed:

ttf- dejavu libdbi1 librrd4 ttf- dejavu -extra

Suggested packages:

librrds -perl

THE FOLLOWING NEW packages will be installed:

libdbi1 ttf- dejavu librrd4 rrdtool ttf- dejavu -extra

0 upgraded , 5 newly installed , 0 to remove and 1 not upgraded .

Need to get 2,591 kB of archives.

After This operation , 8,475 kB of additional disk space will be used.

Do you want to continue [ Y / n] ? And

Err http://mirrordirector.raspbian.org/raspbian/ wheezy / main armhf 1.4.7-1 librrd4

404 Not Found

Err http://mirrordirector.raspbian.org/raspbian/ wheezy / main rrdtool armhf 1.4.7-1

404 Not Found

Get : 1 http://mirrordirector.raspbian.org/raspbian/ wheezy / main ttf- dejavu -extra all 2.33-3 [ 1,759 kB ]

Get 2 http://mirrordirector.raspbian.org/raspbian/ wheezy / main ttf- dejavu all 2.33-3 [ 30.6 kB ]

Get 3 http://mirrordirector.raspbian.org/raspbian/ wheezy / main libdbi1 armhf 0.8.4-6 [ 27.7 kB ]

Fetched 1,818 kB in 1s ( 971 kB / s )

Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/r/rrdtool/librrd4_1.4.7-1_armhf.deb 404 Not Found

Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/r/rrdtool/rrdtool_1.4.7-1_armhf.deb 404 Not Found

E: Unable to fetch some archives , maybe run apt- get update or try with - fix- missing?

--------------------------------------

I will not try anything else until you tell me.

I found in the RRDtool

https://packages.debian.org/search?keywords=rrdtool

What must follow instructions to download and install it correctly?

bbustin (author)  tuerca8 months ago

Hi Tuerca, I think I figured it out. I'm missing a step in my instructions. Try running 'sudo apt-get update' first. It will update the package information that apt has. I'm going to add that step. Please let us know if that works.

tuerca8 months ago
Hi Philchamp78, you too will fall rrdtool install?

Regards.
1-40 of 48Next »