Tuesday, January 7, 2014

Arduino LM35 termometer

In my previous post I described how to measure temperature with DS18B20 sensor. In this post I will show an alternative with LM35.


The source code with comments looks like this:
And the circuit like this (image borrowed from other interesting blog)

Additional explanation can be found in Arduino blog.
 

Arduino ds18b20 termometer


Waterproof DS18B20 Digital temperature sensor + extras

Recently I bought DS18B20 senson in waterproof sonda like that.
The purpose of it is to be able to measure water temerature in aquarium.
In broader scope I'd like to build in future a remote aquarium management kit with Arduino and Raspberry Pi, that would measure water parameters, record them and expose online, as well as manage light, feading, etc. remotely.

How to use DS18B20?

First you need to install 3rd party library of Dallas Temperature.
Download the zip from GitHub and extract in Arduino lib folder -
libraries can be installed as described here.
So i got:

~/sketchbook/libraries/DallasTemperature/DallasTemperature.cpp
~/sketchbook/libraries/DallasTemperature/DallasTemperature.h

I restart Arduino IDE and save program source:
Now lets connect circuit

The pullup resistor in most of tutorials is 4.7 KOhm but any from 2k to 5k should work. I tested my circuit with 4.9kOhm.

Sunday, December 29, 2013

GitLab SSH

GitLab HELP instructions on how to connect GitLab with SSH seems not to be 100% complete.
What it mentions is:

SSH Keys

SSH key allows you to establish a secure connection between your computer and GitLab
To generate a new SSH key just open your terminal and use code below. 

ssh-keygen -t rsa -C "user@example.com"
# Creates a new ssh key using the provided email
# Generating public/private rsa key pair...
 
Next just use code below to dump your public key and add to GitLab SSH Keys 

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
 
When I tried this and uploaded public RSA key to my GitLab profile i still got error when trying 'git push':

Agent admitted failure to sign using the key.
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

So i read somewhere that missing part is to execute:

ssh-add ~/.ssh/id_rsa

Now SSH connection works fine.

Sunday, December 22, 2013

Raspbmc home media center

Most of recent TV sets are already packed with bunch of hi-tech stuff that change the way we perceive watching TV. In the past we were bound to a range of channels, even though having satelite at home gave us quite a wide rande of it - counted in hundreds. The Internet added completely new possibilities. Almost every TV available today  has internet connectivity. We do not any longer have to stick to what is beeing broadcasted but we choose ourselves what to watch and when.

What if you have an old TV without RJ45 socket or WiFi? Do you have to buy special subscription or decoders to access a large entertainment centers?
No, you can have it all for free with Raspberry Pi.

All you need to do is download Raspbmc Linux image and put it on SD card, which you then insert to Raspberry Pi.
Then you plug Raspberry Pi to internet - Raspbmc has DHCP configured by default so it will boot and start setup automatically after you tun it on.
Then you also plug it to TV with HDMI cable and watch things happen.


Now..hm... I don't have a keyboard, how to steer my new media centre?
XBMC offers a few possibilities of remote control.
I found Yatse on my Andorid smart phone the easiest way.

You can then add audio and video plugins that allow you to watch or listen to various media channels, search through Youtube or Vimeo and many, many others...

Still don't forget you have a small computer on board so you can do other stuff with it, program, setup webserver, etc. If you'd like to connect to it even for such a prosaic thing as uploading some files, you can access it through SSH.

Here's a good tutorial how to do it.

E.g. to upload file to /tmp folder on Pi:
scp file.mp4 pi@192.168.1.105:/tmp

The default pi password is raspberry

If you want you can configure WiFi on Raspbmc like this.

You can also play with XBMC and try extending it with new features. Have a look at development tutorials here.

If you'd like to have access to media channels in your local language, like me in Polish, you'd probably find some plugins for your language in the web. I found some for mine.

Have fun !

Wednesday, November 13, 2013

Amazon AWS Change Instance Type

Changing instance type is quick with Amazon AWS CLI tools.
First download tools from http://aws.amazon.com/cli/
Then setup env. variables for easy use of tools:

1. Set EC2_HOME as path to your unzipped archive
2. Add EC2_HOME/bin to your PATH variable
3. Set env. variables with your access key and secret key which you can get from https://console.aws.amazon.com/iam/home?#security_credential
e.g.:
AWS_ACCESS_KEY_ID = AKIAIOSFODNN7EXAMPLEAWS_SECRET_ACCESS_KEY = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Follow the steps here for more guidance.
You can also check how to install it on Ubuntu here.

3. Test it, type from command line:
ec2-describe-instances

You should get response with info about your AWS instances.

Then when you already have instance running, let's say of type m1.small and you want upgrade it to m1.medium follow the below steps (supposing you have instance with ID = i-a57e31dc):

NOTE: After you change type your public DNS of instance will change. You must have EBS boot instance (not instance-store or S3-based AMI).

1. c2-stop-instances i-a57e31dc

2. Optionally, create a snapshot of old instance for future use - see ec2-create-image


3. ec2-modify-instance-attribute --instance-type m1.medium i-a57e31dc

4. ec2-start-instances i-a57e31dc

Friday, November 1, 2013

Rapspberry Pi Webcam

Next trial with RP, this time setting up a webcam over HTTP.

I followed the steps:

1. Connect webcam to USB port, check device is recognized


lsusb
I got:

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 046d:0802 Logitech, Inc. Webcam C200
Bus 001 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter


2. Install Motion



sudo apt-get install motion
3. configure Motion



sudo nano /etc/motion/motion.conf
This is my file:

daemon=on
norm=3
input=8
auto_brightness=on
framerate=2
height=480
width=640
jpeg_filename=motion/%Y%m%d/%v-%H%M%S-%q
noise_tune=on
output_all=off
output_motion=off
output_normal=on
quality=100
snapshot_interval=300
target_dir=/home/pi
text_left=(c) Nestcam
text_right=%d %b %Y\n%k:%M:%S
threshold=500
v4l2_palette=6
videodevice=/dev/video0
webcam_localhost=off
webcam_maxrate=2
webcam_port=8080
wecam_quality=100

sudo nano /etc/default/motion
It should be:

start_motion_daemon=yes

4. Start motion daemon:

sudo /etc/init.d/motion start

Check logfile for any errors:

tail -f /var/log/syslog

If all is fine open in browser http://<your Raspberry Pi IP address>:8080