MQTT Progress

After a weekend of diving into things I should have learned years ago, I’ve made progress. One of the things I’ve always wanted to be able to do, it update graphics realtime from a webpage, and if needed convert text to graphic. Finally did it, ImageMagick and open source project. One of my customers uses ImageMagick to take ID Photos then insert text over the image. They use a script converting camera images. In my case I am taken data, and creating images of text.

The hard part was setting up the server (which is now Windows, since all jobs currently held by Macs are being converted to Windows). And I am still learning MQTT, which is turning out to be very useful and now I GET IT, very easy.

We’ve converted an old Raspberry Pi with connected Arduino, with a connected Weather Shield to all work with MQTT, almost 100%. If you’ve see my other posts you can see the weather station has been around. And now for some odd reason it isn’t sending Wind Speed. I haven’t given up hope. Just need a break from dealing with that equipment.

Also from another post, I have temperature sensors, and weather stations that use 433 mhz scattered all over the property. Now that I’ve learned to properly format MQTT, I can start posting their real time data…. I was using FEEDS in RapidWeaver, but it wasn’t built for what I am doing, so tossed that idea, and now I am using PHP and Python..

Will give more details and instructions when I complete it.

So it begins, I hope!

Back in 2010 I purchased a old Jazzy Select Elite wheelchair base, in hopes of using it as a base for a robot. Using that a old Vex robot parts left over from my kids high school days, and winter. Now might be a good time to start.

Jazzy Select Elite

From what I can gather from images and PDFs online, it appears the normal chair, uses two batteries. One for each of the two powered wheels. Increasing power to one, turns the chair on opposite side, kinda like a tank. Will be fun to control with a computer. Mar Rovers use sensors to calculate the amount of turn, need to figure out how to do something in between..

So, planning now.. Will try to keep world updated.

MQTT – How simple …

Was able to add MQTT server using Mosquitto, as simple as they attempt to make it sound to setup and operate, it isn’t.

Using BREW to installed sounded simple, but never worked as all the instructions I could find. Doing a mix install using Brew and other installers I was able to get it working. You couldn’t just start and stop the service thru Brew you had to Force Quit using Activity Monitor, then use:

/usr/local/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf to restart.

Adding users was confusing but after a few tries I got it working.

mosquitto_passwd -b passwordfile admin mqttadmin1

Monitoring the server was make very easy using MQTT Explorer, thought understanding the data was a bit more of a challenge. Couldn’t tell when of of my devices was online or not, till about the 15th try. The it just showed up and started working.

My first device was a weather station by Pimoroni:

Having purchased the sensors a few years ago from SparkFun. When I finally saw the sweet data appear I was overjoyed.

{
“device”: “nature-weather”,
“pressure”: 951.99,
“temperature”: 25.8,
“humidity”: 42.61,
“wind_direction”: 90,
“light”: 334.98,
“rain”: 0,
“timestamp”: “2022-08-21 15:51:03”,
“wind_speed”: 0
}

My next project is using Red-node to display the data as it is published to my broker (Can’t understand why they don’t just call it a server).

OH a note about Red-Note, don’t attempt to use Safari on a Mac, it doesn’t work. (See Photo Below) Wasted half an hour thinking i needed to install Modulars or something. Tried in chrome and it opened right up. Apple is become a real pain, IMHO.

Nature-Weather and Nature-Cam

Problem with Safari on Right VS Chrome on Left

FlightAware – PiAware

FlightAware was easy to setup and great fun to use. Can track flights flying over your head leaving contrails spoiling your beautiful blue sky. Get the story about a plane and its current flight. Sharing your data with FlightAware gives you free access to their Enterprise plan, well worth it.

Basically you setup a Raspberry Pi, with a ADS receiver which monitors the airwaves for ADS data from flights within range. The area I live in is rather hilly, so at first I wasn’t happy with the units range so I added an external antenna which dramatically increased my systems range. All and all the system cost about $150. You leave it running, then can remotely monitor you PiAware unit over your network through a browser. Plus you can access your data directly from FlightAware’s site, well your data anyway.

Was able to monitor flights in real time.

You can overlay current weather. You can also spend more for better antennas and higher antenna mounting, which would improve your stations reception.

All and all, great fun, nice use of a Raspberry Pi.

UPDATE: After a year of operation the system stopped sending data. Tried a new USB Receiver,  a new Pi, patch cable, nothing worked. Finally changed the power supply, which was on of the nice Raspberry Pi brand ones, with Power LED. That was it, fixed. Unit was getting power, but I guess it wasn’t getting enough. Odd same power supply worked for a year, then just stopped producing enough power. Oh well..

New Weather Station – 1 of 2

[:en]After a long absences I’ve finally be able to return to my technology projects.

The first one I needed to get out of the way is the weather station. Had built one a few years back, but it was destroyed by an ice storm. Therefore I had to built a new one with a more permanent foundation.

 

 

 

 

 

 

 

 

 

 

 

 

 

Attempted to make the system completely wireless but somehow no matter what I tried it would be limited in one way or another. So I ended up using a Raspberry Pi that has a UPS board attached to network using a POE adapter. So the Pi gets its power from the network, although the Pi connects to the network wirelessly. And since we had to run one wire, we ended up pulling a 12 volt dc wire also, this allows the addition of more ‘features’ to the pole.

As you can see there are 4 solar panels, 2 – 6 volt and 2 – 12 volt. At this point they are only being used for a string WS 2801 RGB LEDs powered through solar chargers. Sort of controlled Christmas lights. I am attempting to make the LEDs controllable from web site.

The Weather Station consists of an Arduino with a Sparkfun Weather board and sensor array, with a lightning detector attached. A Raspberry Pi connects to the Arduino and a Relay modular.  Currently everything is crammed into a plastic project box mounted on the pole. Will clean it up once new boxes come in.

My neighbors have a hill behind their house, the hill top is about 300 feet away and the hill is maybe 50 feet high. My plan is to add another weather pole on top of the hill, to see how that affects wind and temperature.

 

 [:de]After a long absences I’ve finally be able to return to my technology projects.

The first one I needed to get out of the way was the weather station. Had one, but it was destroyed by an ice storm a couple of years ago. Therefore we rebuilt a new one with a more permanent foundation.

 

 

 

 

 

 

 

 

 

 

 

 

 

We attempted to make the system completely wireless but somehow no matter what we tried it would limit us one way or another. So we ended up using a Raspberry Pi that had a UPS board attached network using a POE adapter. And since we had to run one wire, we ended up pulling a 12 volt dc wire also, this allows us to add more ‘features’ to the pole.

As you can see there are 4 solar panels, 2 – 6 volt and 2 – 12 volt. At this point they are only being used for a string WS 2801 RGB LEDs powered through solar chargers. We are also attempting to make the LEDs controllable from web site.

The station consists of an Arduino with a Sparkfun Weather station and lightning detector attached. A Raspberry Pi connects to the Arduino and a Relay modular.  Currently everything is crammed into a plastic project box mounted on the pole. Will clean it up once new boxes come in.

 

 

 [:]

WeMos D1 Mini

Being that they were ordered from China, I ordered a few items from WeMos. OLED Display Shield, Temperature Sensor, Relay and Button shields. All were cheap and using Arduino fairly easy to program just took awhile to get to USA (say a month to the day) [Not complaining, just stating, pay a little more get from USA seller MUCH faster].

IMG_8734

We were able to create a web server, that reads and displays Temperature (T), control a relay over the web (R) and have it display its IP number (within our subnet). HOWEVER, you can’t read temperature and control relay, in the same ‘stack’. So more parts are on order to deal with that minor complication.

IMG_8736The biggest issue was getting the OLED display to work. Seems there was an issue with one of the libraries;

http://stackoverflow.com/questions/36768562/wemos-oled-sparkfun-print-text-does-not-display

Just a matter of deleting two lines of code, and it worked. Course that took two days to find.

Being a true believer in scattering projects over over the place, wireless would be great. But as always, there is the matter of POWER. If I have to run power, I can run an ethernet cable.

Outdoor Sensor Array


How many sensors can we plug into one Arduino and setup outdoors? This is how many I was able to cram into one Project Box.

The system uses a ESP8266 Wifi / Arduino Card with a screw terminal Shield. — I attempted to run it all with two 12 volt solar panels with a solar charger. Didn’t have enough juice, so ended up just plugging into outlet located outside.

Hardware

Screenshot 2016-03-06 12.32.51

 

Raspberry Pi and Cron

After two days of attempting to get Cron to execute tasks (in this case shell scripts) on a Raspberry PI, I finally got it working.

I must have read at least three dozen sites and all my Raspberry Pi books in my attempts, nothing work..

Here are some of the suggestions I found.

This one states it will edit the users cron file:

pi@raspberry ~ $ crontab -e

This one states it will display all the users schedule cron tasks:

pi@raspberry ~ $ crontab -l

I did find these useful:

pi@raspberry ~ $ /etc/init.d/cron stop

pi@raspberry ~ $ /etc/init.d/cron start

pi@raspberry ~ $  /etc/init.d/cron restart

But none triggered my script to run, then in my notes, from a past project I found:

pi@raspberry ~ $  sudo nano /etc/crontab 

This allowed me to edit the system cron task list..

———————————————–

# /etc/crontab: system-wide crontab

# Unlike any other crontab you don’t have to run the `crontab’

# command to install the new version when you edit this file

# and files in /etc/cron.d. These files also have username fields,

# that none of the other crontabs do.

SHELL=/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command

17 *    * * *   root    cd / && run-parts –report /etc/cron.hourly

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts –repo$

47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts –repo$

52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts –repo$

10 * * * * pi cd /home/pi && ./jabberfix.sh

#

———————————————–

The last task, which runs at 10 minutes after the hour, for user pi, fixes my jabber connection.

Honestly, I have no clue what the other tasks are doing. More research! But I am very happy I now know how to add my own tasks to cron.

Enjoy

~David