Wednesday, September 21, 2016

Project: Build an Arduino BLE-Enabled Indoor Air Quality Monitor via All About Circuits

I am very interested in projects which help me gain a better understanding of the world around me and monitoring my environment is certainly one of the more important tasks in that regard. I have been thinking about projects like this as builds for school-based maker groups so that they could monitor their own surroundings and perhaps find areas that need improvement, long before research projects through more official channels could even be mounted.

I would consider this an intermediate to advanced project with lots of components to be managed and coded for. I love the inclusion of Bluetooth LE (or any other wireless system) so that data can be read and monitored even at some distance. For me, all IoT devices need some way of sharing their data easily in real-time and Bluetooth is just one way to accomplish that. This would also allow for the creation of a dashboard to monitor data, in realtime, in some central, public, location, which would greatly help to make the data known to a wide variety and number of people.

This project is well documented and should prove to be an excellent source of new skills and knowledge for anyone who attempts it.

Build an Arduino BLE-Enabled Indoor Air Quality Monitor via All About Circuits

Build an Arduino BLE-Enabled Indoor Air Quality Monitor via All About Circuits

Like most folks, I sometimes wonder about the quality of the air I breathe. Naturally, I turned to the possibility of a project designed to measure the quality of the air in my own home.

Indoor air quality is not a simple concept to quantify. I assumed that too much CO2 (Carbon Dioxide) didn’t seem like a good idea. Furthermore, large concentrations of VOCs (volatile organic compounds) didn’t sound too pleasant either. So, I reasoned that these would be some important measures to have available.

IAQCore

After further investigation, I found only a few ICs available to build such a project around. I settled on the iAQ-Core module from AMS.
As I read more about measuring indoor air quality, I began to appreciate the complexity of the issue. The volatility of many compounds (the degree to which they vaporize into the air) depends, in part, on the temperature. Also, relative humidity can be a factor for some compounds. Thus, I decided to add temperature and relative humidity sensors to the project.

Of course, I wanted to use a microcomputer with a display to read sensor output. As an additional feature, I decided to include BLE connectivity to allow remote monitoring.

Read the entire article on All About Circuits

Air quality schematic

Get Arduino Parts and Books Here

Arduino/Genuino 101 via eBay

Arduino Boards and Components via Amazon Arduino Boards and Components via eBay

Sunday, September 18, 2016

Project: Victorian Ticket Dispenser via Hackster.io

Here is an old school project — using no electronics — but still a cool build in many ways. I suppose you could add some electronic bells and whistles to make it even cooler, but it is a great idea and a great build for when you want something retro, interesting and cool!

Victorian ticket machine

Victorian Ticket Dispenser

I was asked by my wife to create a "contraption" to help sell tickets [all proceeds to charity] for her book launch at the local independent bookseller. Since the novel is set in 1880 New York, I wanted to create a Victorian feel and opted for a true, gear-clanking coin mech over a electronic version. I Borrowed/stole heavily from this piece for the guts of the device. The overall feel had to be Victorian and inform the users about the launch. I had a great time doing this and learned a lot about gearing, brass and a method for affixing paper to wood that I will be employing from now on.

Friday, September 16, 2016

Help Create Maker Faire LA 2017! – Kick-off Meeting: Thu, September 22, 2016 @ 7pm

Help Create Maker Faire LA 2017! – Kick-off Meeting: Thu, September 22, 2016 @ 7pm

Help Create Maker Faire LA 2017! 

Please join Hackerspace LA for a meeting for all individuals and organizations interested in forming the leadership team for Maker Faire Los Angeles 2017! 

What is Maker Faire?

Maker Faire is a gathering of fascinating, curious people who enjoy learning and who love sharing what they can do. It’s a venue for makers to show examples of their work and interact with others about it. Many makers say they have no other place to share what they do. DIY (Do-It-Yourself) is often invisible in our communities, taking place in shops, garages and on kitchen tables. It’s typically out of the spotlight of traditional art or science or craft events. Maker Faire makes visible these projects and ideas that we don’t encounter every day

Time/Location

Thursday, September 22, 2016 at 7PM 
Marvin Braude San Fernando Valley Constituent Service Center
6262 Van Nuys Blvd. Van Nuys, CA
3rd floor conference room
RSVP Here

We will discuss the Maker Faire Los Angeles Draft Plan and how it might be developed into our final plan. As a guide, we’ll be working from the Maker Faire Playbook. Please review these PDF documents before the meeting.

Maker Faire Los Angeles Draft Plan 
Maker Faire Play Book

Please join with Hackerspace LA in creating this amazing Maker/STEAM/Creativity event right here in our own backyard!

Jorge Cornejo, Producer - hackerspacela@gmail.com
Douglas E. Welch, Co-Producer - douglas@hackerspacela.org

Thursday, September 15, 2016

My Project: Travel time bot with Google Maps API and Python - Part 1 - Finding the Data [Programming]

My son will be starting university in just under a week at a school where my wife is also a professor. This means they are going to be carpooling on many days. Since the school is about 60 miles from our house, it is important to keep tabs on the driving time as here in Los Angeles, these times can change dramatically over the course of the day. This need to track driving time gave me an excuse to dive back into programming — which I was never that fond of anyway — despite my 30+ years working in computer support and consulting.

Here is a step by step story of the project and where it stands today.

Get the Data

The first step, of course, is to figure out where I can get the real-time routing and drive time data. I immediately thought about Google Maps and found the Google Maps API pages.

Google maps api

It is free to sign up for a developer account, which gives you an API key for each request you make to the Google Maps API servers. For me, my usage of the API is well below the number of free API requests per day, so there is no cost to run my program and gather the data — even if I were to request it about once per minute throughout the day. If you re going to develop high-usage commercial application, you’d have to sign up for one of Google API payment plants, based on the number of requests you make.

The specific Google Maps API I am using is the Directions API, which allows you to calculate directions between locations and returns a JSON-encoded file with a wide variety of information. They provide a basic example URL to get you started and then there are a host of options you can fine tune for your specific needs.

https://maps.googleapis.com/maps/api/directions/json?origin=Disneyland&destination=Universal+Studios+Hollywood4&key=YOUR_API_KEY

After a bit of trial and error, I came up with an appropriate URL that I could request manually and see the results returned.

https://maps.googleapis.com/maps/api/directions/json?origin=34.178026,-118.4528837&destination=34.057835,-117.8217123&departure_time=now&key=YOUR_API_KEY

This URL returns this JSON file...

{
   "geocoded_waypoints" : [
      {
         "geocoder_status" : "OK",
         "place_id" : "EjE1OTE0LTU5MTggQ2Vkcm9zIEF2ZSwgU2hlcm1hbiBPYWtzLCBDQSA5MTQxMSwgVVNB",
         "types" : [ "street_address" ]
      },
      {
         "geocoder_status" : "OK",
         "place_id" : "ChIJLVP1K64uw4ARc3vu78f00B0",
         "types" : [ "street_address" ]
      }
   ],
   "routes" : [
      {
         "bounds" : {
            "northeast" : {
               "lat" : 34.1794199,
               "lng" : -117.8012388
            },
            "southwest" : {
               "lat" : 34.0452654,
               "lng" : -118.453076
            }
         },
         "copyrights" : "Map data ©2016 Google",
         "legs" : [
            {
               "distance" : {
                  "text" : "46.2 mi",
                  "value" : 74333
               },
               "duration" : {
                  "text" : "54 mins",
                  "value" : 3251
               },
               "duration_in_traffic" : {
                  "text" : "58 mins",
                  "value" : 3455
               },
               "end_address" : "9 Olive Lane Walk, Pomona, CA 91768, USA",
               "end_location" : {
                  "lat" : 34.0577836,
                  "lng" : -117.8221829
               },
               "start_address" : "5914-5918 Cedros Ave, Sherman Oaks, CA 91411, USA",
               "start_location" : {
                  "lat" : 34.1780256,
                  "lng" : -118.4530714
               },

[… more information snipped…]

So far, so good. 

No I needed to figure out how to get the data out of this raw JSON file and into a form I could use it. The fact is, the API returns a lot more data than I really need, so I am only pulling out 2 pieces of information that are important to me. 

Navigating JSON Data Structures

Of course, now that I have the raw JSON data — which is a series of dicts, keys and values — I had to figure out the structure of the data and which pieces I needed. This was one of the more difficult learning parts for me. I understood that the JSOn file was a nested database of data, but figuring out how to get an individual pieces of data took me some time. Once I figured it out, though, it opened the door to any API that returns data in JSON format — a huge leap in my programming knowledge.

Visualizing JSON Data

Looking at a JSON file, especially a large one, and trying to discern the structure of the data can be a bit difficult. Levels of indentation aren’t always lear and nested curly braces always give me a headache. (LAUGH) Thankfully I searched out a web page that would allow me to view the data in a more database-like fashion, clearly showing how each piece of data was nested in the file.

JSONViewer.stack.hu allows you to either load a JSON file by URL or copy and paste a JSON file into the viewer. You can then click the Viewer Tab to see the data in its hierarchical format — expanding and collapsing nodes as needed.

Jsonviewer

Finding the Data I Needed

After a short while poking around in the Google Maps API JSON file, I found the 2 pieces of information I was most interested in — the summary or route of travel and the duration_in_traffic field.

Gmaps json expanded

This information would allow me to tell my wife and son which route was suggested by Google Maps (which can change based on traffic, road work and incidents) and the travel time in both text format and seconds. I did some basic checking with the interactive version of Google Maps to make sure the travel times were similar and saw that the duration field was a bit optimistic in its estimates. The duration_in_traffic field seemed to present a more realistic estimate, especially based on our heavy traffic here in Los Angeles.

Ok, so now I had the data I needed, how was I going to manipulate and use this data to make something useful?

In Part 2 of this series, I’ll dive into my Python program and discuss how I learned to process JSON data in Python, how I learned enough Python to do this and more and show off my working, if extremely basic, program. 

Sample Screen Output from Python program
[DEW-Mini:~/Downloads/py] dewelch% python cpp2.py

Via CA-134 E and I-210 E
Duration: 58 Minutes
0 Hours and 58 Minutes

Congratulations! You've fired the cpp event
[DEW-Mini:~/Downloads/py] dewelch% 

In future parts, I’ll discuss how I presented the data via screen, text, email and voice and how I got the code running on an Arduino Yun in preparation for creating a passive information device that will visually show the current travel time via graphical icons, colored lights and more!

Tuesday, September 13, 2016

Project: Flickering Flame Lighting Effects with Arduino for Halloween and more!

Halloween is rapidly approaching, so I went looking for Halloween specific projects I could make and share with my fellow makers at Hackerspace LA.

Here are a couple of links, and a video, for creating realistic flickering flame effects using a few LEDS and an Arduino micro controller. I am thinking of putting together a couple of these for our jack-o-lanterns this year.

Realistic Flickering Flame Effect with Arduino and LED's by TheArduinoGuy 

Flickering led

In this project we will use 3 LED's and an Arduino to create a realistic fire effect that could be used in a diorama, model railway or a fake fireplace in your home or put one inside a frosted glass jar or tube and no-one would know it wasn't a real candle inside. This is a really simple project suited to beginners.

Check out the entire project

Here’s a video, too.

…and a large collection of similar projects from How To Do Tip.com...

Flame effects projects

Learn more about Arduino

Arduino Boards and Components via Amazon

Arduino Boards and Components via eBay

Wednesday, August 31, 2016

Project: Simple Arduino-Controlled, No-Pump Plant Watering via Make

Now here is a project I could really use here in my own greenhouse. It’s basic setup is great, but it also allows a lot of room for expansion and improvement, so it is a great learning project, too. I think it is always important to start with a simple project and experience some success so you are more inclined to fiddle with it and improve it in the future.

For me, I could see adding additional sensors for multiple pots, a solenoid value for controlling water from a hosepipe, alerts, alarms and more. What could you do with this project? Let me know in the comments!

NoPump 2

Simple Arduino-Controlled, No-Pump Plant Watering

I love this simple and clever design. It basically uses a microcontroller-powered servo motor to pinch a watering hose on/off on a gravity-fed plant watering system. No pump required. To control the system, the Norwegian maker, Eirik, used a SparkFun Arduino-compatible RedBoard. To tell when the plants are thirsty, he uses a $5 SparkFun Moisture Sensor.

Read the entire article

Build your own projects with these Arduino parts and more!


Arduino Boards and Components via Amazon

Arduino Boards and Components via eBay


Sunday, August 28, 2016

Software: Arduino IDE (Integrated Development Environment) Recently Updated to 1.6.11

On August 17, 2016, Arduino.cc upgraded their IDE (Integrated Development Environment) to version 1.6.11

Arduino ide

If you are working with Arduino microcontrolllers (or the host of Arduino compatible systems) you should check out the new software. There are no big feature additions in this version, but a lot of bug fixes and tweaks.

Here are some of the fixes made:

ARDUINO 1.6.11 - 2016.08.17

  • [ide]
  • Fixed a serious bug that prevented some 3rd party boards, installed through external index.json URL, to work correctly.
  • Fixed a bug in boards manager that, in some rare circumstances, could lead to remove bundled  tools when uninstalling a previously installed AVR core
  • builder: fixed regression about inclusion of files in subfolders of the sketch  (see https://github.com/arduino/Arduino/issues/5186 for details)
  • avrdude: reverted to version 6.0.1, until all discovered regressions are solved  (see https://github.com/arduino/Arduino/issues?q=is%3Aissue+is%3Aopen+label%3A%22Component%3A+Avrdude+6.3%22 for details)

Get the latest version of the Arduino IDE here

Learn more about Arduino with this books

Arduino Boards and Components via Amazon

Arduino Boards and Components via eBay

Thursday, August 25, 2016

Project: #InventforGood Bat Vision

What a great, creative project for kids of all ages and a prototype for something that could be very useful. This project uses the LittleBits interlocking electronics kit, but it would be easily recreated using standard Arduino parts. It looks like even the code could be re-used, too. I have an ultrasonic sensor I picked up cheap and some other parts from an Arduino Start Kit. I think I might put this together just for the shear fun of it! See links for parts below.

Bat vision 1

Bat vision 2 

#InventforGood Bat Vision

This device can detect the obstacles on your way using echolocation method just like bats do. It's like you have your own bat-friend who can accompany you wherever you go and tell you if there is something on your way that you cannot see.

It is a useful tool for blind people and for people working in the conditions of very low or no visibility. Of course, it can also be used for playing fun games.
The voice alert will turn on once you appear within a dangerous distance from the obstacle ahead.

It is based on the Arduino Bit. It drives the ultrasonic sensor and keeps measuring the distance from the objects ahead. The buzz alert indicates that the distance from the object is within 50 cm.

Discovered via the Adafruit Blog

Parts that can be used to recreate this project

LittleBits Kits at Amazon.com

LittleBits Kits at eBay.com

Amazon | eBay

Hc sr04

HC-SR04 Ultrasonic Module at eBay

Elegoo 37-in-1 Sensor Module Kit for Arduino UNO R3, MEGA, NANO

More Arduino Boards and Parts on Amazon

More Arduino Boards and Parts on eBay

Tuesday, August 23, 2016

Noted: Incredibly Useful, and Free, Guide to Fasteners for all the Makers in your life via Make Magazine

Incredibly Useful, and Free, Guide to Fasteners via Make Magazine

Wow! I know that I am always overwhelmed and confused when I go to the hardware store to try and find the proper hardware for a home repair or project. These free guides from Bolt Depot might just be the answer to my Maker prayers. I know I am going to be spending some time in the very near future downloading and perusing all of them.


The 28-page guide covers the anatomy of bolts and screws, different head types, drive types, thread count and pitch, and how to measure diameter and length. The majority of the document is full-size “lay-over” reproductions of common (and not so common) fasteners so that you can size the bolts you have by eye-balling them on over the guide. Being more of a visual than a numbers person, I find these lay-over guides extremely helpful. Every page of the guidebook also has a scale accuracy ruler so that you can check to make sure that you properly printed the page for accurate bolt identification.
Read the entire article at Make Magazine

Download the guides directly from Bolt Depot