Monthly Archives: February 2017

Temperature, Humidity and Barometric Pressure Monitoring with Raspberry Pi

Brief notes on hooking up sensors for temperature, humidity and barometric sensors. These notes are kind of an outline of what I used and went through to get the sensors up an running. There are plenty of other detailed notes out there on the web, this might help fill in some blanks. Plus I figured, I took all these notes down and they might as well be published to do some more good.

Raspberry Pi Pinout

Model B IO Pins

DHT22 / AM2302

https://www.adafruit.com/products/385?&main_page=product_info&products_id=385

https://www.adafruit.com/products/393?&main_page=product_info&products_id=393

I followed this example to get the DHT22 sensor up and running all the way to executing the example code

https://learn.adafruit.com/downloads/pdf/dht-humidity-sensing-on-raspberry-pi-with-gdocs-logging.pdf

Raspberry Pi Weather Dashboard

I put all if this together to make a dashboard page for the sensors.

http://erick.mynetgear.com

 

 

morse-1 code

Cron Driven Morse Code Time Sounder

My goal was to make a new hourly chime,something with a bit of intelligence to it than just the same tone every hour. It was actually one of those random things that runs through your head when laying in bed trying to get in a mood to sleep.

A bit of history

Typically I have been using a preexisting system sound on a Linux PC to annunciate that it is the top of the hour. This helps to keep track of how long I am on the computer, time to take a break maybe. It also makes me away of the time, in case I am in the zone with coding or whatnot and need to be aware of how time flies. Once you have this, you kind of look for it, even when you are in the room doing something other than computer work.

Up to now this is what I typically had in my crontab…

00 09-23 * * * aplay /usr/share/sounds/fLight__2.0/stereo/Message.wav

I restrict the hours down, just so the thing doesn’t wake me at night if I forget to turn off the PC.

Festival

Years ago I used Festival, the text to speech program and made it annunciate the time. This works OK as long as you are at the PC. If you are away from it a bit, you don’t always pick up what the machine generated voice is saying. Morse Code has an advantage over voice, in that the tones are easy to pick up, even when faint. I have a ham license and have experienced this first hand. So that was my line of thinking with using Morse to give me the time at the top of the hour. It would be easy to not only know that it is the top of the hour but, I can tell what hour it is easily with Morse code. Plus it seemed like a fun twist. I have even thought of putting something like this on my Pi which runs 24/7 in my office. In our living room we have a bird clock, that has different bird sounds for each hour and that has been pretty useful at times, so that got me going on this whole hourly chime adventure years ago.

I was initially inclined to make my own tones but, a brief search found Stephen C. Phillips site and his Morse Code Translator. Using it I was able to create a more code “hour” sound file from 0-23, that plays the correct sounding for every hour.

It is possible to take any sound files and label them 0-23.wav and get other types of sounds to chime at the top of the hour. Birds songs, train whistles, nature sounds, the possibilities are endless.

How it works

Using the Morse Code Translator, I was able to create a series of Morse Code translations from 0-23, in WAV file format. The WAV files get put in a directory, morse-code-audio under my home folder and the following script gets called in place of the line shown above in my crontab….

#!/bin/bash

sounddir=/home/erick/morse-code-audio

# Grab the Hours off of the date.

hour=$(date +"%H")

#Call the correct file based off of the hour
 aplay $sounddir/$hour.wav

WAV Files for the Morse Code Time Sounder

I put the 0-23.wav files online, as a tar.gz.

morse-code-audio.tar

Compression, Signal Processing, Information Theory and Cryptography

Uncompressed the 24 WAV files in the tar file are a total of 348K , it is interesting just how compressible single frequency tones are. All of them compress down to a 2.8K tar.gz. I had to check twice, I thought I was missing a bunch of files. But it stands to reason when one thinks of a single frequency turned on and off slowly, has very little bandwidth. Provided the keying is shaped in a way so that it is not a pure sine wave modulated by a square wave, the pulses have to be shaped the corners rounded off to get the bandwidth below 100Hz. Thinking of Fourier transform, a tone left on from infinity has a bandwidth of zero. A digital signal, pulse shaped, on and off keying at 20WPM code is going to have a real narrow bandwidth, therefore highly compressible. The opposite extreme, white noise, would not be compressed down at all by gzip or any of the fancier types of compression. White noise is random, equally distributed across the spectrum, hence incompressible. But it makes for a hell of an encryption key for that very reason. The worlds of signal processing and cryptography do come together in interesting ways!

Resources

Stephen C Phillips has an excellent website and blog that covers a lot of technical topics among with the Morse Code Translator is an example. He also covers Python code and the Raspberry Pi for example.

http://blog.scphillips.com/

The featured image is from this site and it is an interesting read…

https://www.raspberrypi.org/learning/morse-code-virtual-radio/worksheet/

24 Hour Digital Clock Gets a Better Timebase

The last post on this clock built out of 7400 series TTL chips gave a bit of back story on it and the initial troubleshooting of it’s timebase drift and noise issues that caused extraneous counts to occur. Now that the noise is figured out and solved, it is time to do something better than a plain crystal with a trimmer 7400 ( NAND Gate ) oscillator for a timebase.

Driving the clock with an OCXO

The goal was to allow the clock to be driven by an oven controlled crystal oscillator (OCXO), which would surpass the performance of the oscillator on the board. The on board oscillator can be easily pulled off it’s frequency and slaved to an external source. By using a 7414 Schmitt Trigger Hex Inverter, it is possible to take the low level sine wave output from the OCXO and convert it into a digital signal capable of entraining the on-board oscillator. By using an external master, I can pull the master OCXO off if I need it to calibrate anything else, meanwhile the clock keeps running off of it’s board oscillator. Most of the time the OCXO is not being used and can just remain with the clock.

7414-Schmitt-Trigger-on-breadboard
7414 Schmitt Trigger Hex Inverter on Breadboard

The hookup is pretty simple, I breadboarded it and found out the biasing one of the inputs of the 7414 mid range using a pair of 33K Ohm resistors in series from +5V power to ground with the input to an inverter stage on the 7414 in the middle at 2.5V, feeding in the OCXO signal, capacitively coupled  and then feeding the output of that stage into another inverter on the 7414 for a buffer, I was able to get a clean square wave at 10MHz. This I coupled to the board oscillator using a 370 Ohm resistor. The resistor is more or less a protection in case I touched it to something that I shouldn’t and I don’t want too much current to be able to flow in either direction. I also temporarily drove an LED via a 370 Ohm resistor off of the same output as a check that I was actually getting output, the LED is lit at half the brightness when it is excited by a square wave.

Initial testing with the breadboard shows that the clock now tracks time very well as compared to another clock I have that is synced to the WWV 60KHz signal.

OCXO to 7414 to TTL Clock
OCXO to 7414 to TTL Clock: Signal path is via yellow clip leads.

 

Previous post in this series

Miscanthus giganteus

I recently saw a stand of Miscanthus giganteus at Cutler Gardens in Binghamton,NY. It is an impressive grass standing at 10-11 feet tall. I am thinking of ordering some rhizomes to grow some. It would make a nice natural privacy fence. It sure looks cool too, even when it dies off it still stands nice and tall. I imagine the snow will eventually knock it over in the winter. When I saw it, I looked it up on the little pamphlets available at the gardens and of course on Wikipedia. https://en.wikipedia.org/wiki/Miscanthus_giganteus
Who would have know that it can be actually used as a biofuel! What an interesting plant and it is a so called C4 plant as well just like corn, it can more efficiency convert water and CO2, via photosynthesis into plant material, giving it an edge in creating biomass.

I found a place to order the rhizomes too…

http://www.mapleriverfarms.com/index.php