Balloon Environmental Sensing

It’s easy to do environmental sensing at ground level. But how about up in the air over our heads? If we could somehow reach it inexpensively and safely, can we directly explore what lies above, perhaps making our own discoveries?

One of my projects for Dinacon 2019 will create a party-balloon platform for inexpensive aerial environmental sensing. Everyday balloons offer a number of advantages. They are readily available and very safe to fly. They don’t cost much or require any licensing, training or piloting skills. Balloons don’t use any fuel or batteries, yet they can stay aloft for days at a time, silently. When tethered, it’s easy to control their height and position in space and they’re quite environmentally friendly. Balloon lofting is perfect for children’s science programs, hacker workshops, citizen science research, digital naturalism, technology art, and low-cost indoor or industrial monitoring.

My initial ballooning prototype will explore a variety of sensors to see what kind of aerial data is interesting. For motion we will use an accelerometer, gyroscope and GPS unit to tell us where our sensing station is and measure how it is moving in space. We will also get airborne data on temperature, pressure and humidity since we know these vary interestingly with altitude. Many more sensors are available to be tried. UV sensing, air quality, dust levels, light, carbon dioxide, and wind are all on our list. I’ll be using Pycom’s Pysense and Pytrack shields, augmented by Grove sensors.

There are many platforms for obtaining and transmitting sensor data. For this project I’m experimenting with the remarkable FiPy module from Pycom. It has a ton to offer! There’s plenty of I/O to support our sensors, an ESP32 processor running my favorite MicroPython development environment, and no less than FIVE radio options, all onboard. The FiPy can communicate locally using WiFi and Bluetooth, or long-range with LoRa, SigFox and mobile LTE (Cat-M/NB-IoT). This means a single hardware platform can easily travel between different countries and environments, using the best communications method for the job at hand. So far the FiPy has been very easy to set up and use. I’ve needed to do a bit of updating the sample code for non-European frequencies and radio frameworks. With those set, I’ve been successful in transmitting on all five protocols. There’s even a cloud platform Pybytes to manage incoming data and remotely update devices in the field. And Pybytes is just one option. The FiPy module will communicate with Things Network for LoRa, Cayenne for data display, AWS, Azure, Watson, and many other IoT platforms.

Pycom’s FiPy module with Wi-Fi, Sigfox, LoraWAN, Bluetooth and Cellular radios.

Looking forward to building this at the second annual Dinacon digital naturalism conference, a month-long hackathon where biologists, technologists and artists gather in the jungle to use our skills together far from the comfort of our labs. As a node-leader for the conference I’m also planning to run a 4-in-4 fast prototyping workshop, and perhaps plant a rust garden. Those projects to be covered in upcoming posts.

The Trouble With Time Zones

The Problem with Time & Timezones

Maybe you’ve struggled with coding for time zones, local calendars or historical time changes. Or perhaps you’ve wondered why a software developer went pale when you asked them to add local time calculations to an app and wondered why?

In this classic review, Tom Scott explains how a seemingly simple measurement calculation becomes a “twisty-turny thing” that takes software developers down a path to madness.

MicroPython Examples for XBee

I’ve been writing hands-on examples for using MicroPython on XBee radios. MicroPython is an open-source programming language based on Python 3, modified to fit on small devices, and optimized for microcontrollers. By using MicroPython, an easy-to-learn scripting and programming language, you can rapidly prototype intelligent behaviors at the edges of your network. Cryptic sensor readings can be transformed into useful data, excess transmissions can be intelligently filtered out, and modern sensors and actuators can be employed directly. Here’s the examples thus far:

Text Message-Controlled Robot

Here’s a fun project I created for Digi International a while back. I just wrote up for them as an Instructable so that anyone can make their own. All materials, steps, diagrams and necessary code are included in the instructions. You can get started right away.

The Digi XBee3 Cellular SMS ActivityBot is an educational robot that can be controlled with text messages from any cell phone, anywhere in the world. The ActivityBot, made by Digi’s friends at Parallax Inc. is designed for first-time robot-builders and is widely used in technology and engineering education.

SMS text messages sent to the robot can command it to drive forward, back, or the left or right. It has a built in roaming mode where it becomes self-driving, using two “whisker” sensors to detect obstacles to the right or left. The ActivityBot uses the Digi XBee3 Cellular module to report back what it’s sensing in real time. For example, any time one of the “whisker” sensors is triggered, that event is immediately reported back to the cell phone as a text. (Of course, only robots should text and drive.) You can see all of these behaviors in the video below, then build your own using these complete instructions.

Sun Set Clock

Technology separates us from nature, but does it need to? I used some of my stay at the Digital Naturalism Conference in Thailand to prototype a clock that determines local time of day from sunlight to promote a natural sense of timekeeping.

By using technology to encourage human relationships with nature, I hope to highlight that machines can encourage us to be *more* human and organic rather than slowly making people irrelevant. As a counterpoint to consuming industrialized time we can also obtain time from scratch, regaining control of the very pacing that drives our lives. The Sun Set Clock uses local solar time, therefore noon is when the sun is at apogee at our location. This is how time used to be measured, before telegraphs and transcontinental trains required a move to time zones, where the clock and the sun no longer match. This system isn’t concerned with exactitude–there’s plenty of systems to do that if you need it. Instead this clock can be used to mark the general progress of the day rather than creating anxiety around how every minute is used.

Sun Set Clock in its natural environment

The initial prototype uses light level changes to detect sunrise and sunset, with local noon being the point exactly between these two events. When the clock starts, it makes its best estimate of the time. For example, if it’s dark at startup, the clock assumes that it’s midnight because that’s the best guess you can make without more information. At sunrise, this corrects to 6 am (a higher-quality guess) and then at sunset it will correct to the proper local time (not time zone time but astronomical time at your precise location). All of this works, although it’s still a bit fragile–operating best in full view of the sky on a relatively sunny day. Dark clouds, deep shadows and porch lights can confuse it, so these will need to be addressed in a future version. For now, I’m enjoying what I think of as “some time of my own.” I hope you enjoy it too.

 


Sun Set Clock – Instructions for Use

Read more ›

Island in Thailand – Digital Naturalism Conference

Spent much of June on a jungle island in Thailand, attending a biology-art-hackathon-“un-conference” to build electronics projects that interact with nature. The first-ever Digital Naturalism Conference on Koh Lon island ran for six weeks of arty, ant-licking, bio-mimicking, data logging, fruit roasting, butane soldering fun that pushed my limits and reminded me how outstanding and wildly creative the maker community can be. More will be written about this but special thanks to Andy, Tasneem and Yannick for their extraordinary efforts to create a wilderness community out of thin air and coconut rope.

Here’s some photos I took during my time on Koh Lon with ~100 motivated makers:

Supply boat to Koh Lon

The island appears

The island appears

The Diva, our floating makerspace

Registration booth

Examining insects

Read more ›

LTE-M vs. NB-IoT: Determine the Differences Between Low Bandwidth Protocols

New cellular protocols rolling out in 2017 will provide low power and low cost cellular connectivity for industrial Internet of Things applications. In this new video for Digi International, I explain the LTE-M and NB-IoT low bandwidth protocols by breaking down the differences between the two and sharing some examples of their use in industrial applications.

NASA Puts XBees in Orbit

On Monday, March 6 at 10:20 p.m. Pacific time. NASA released TechEdSat 5 (Technical and Educational Satellite 5) satellite equipped with Digi XBee 802.15.4 modules as part of a test program for wireless communications between satellites and payloads from the International Space Station (ISS). TechEdSat 5 has been collecting data every 10 seconds and transmitting it from these radios via Wi-Fi ground link to monitor aerodynamics, gravity vector and magnetic field (for orbital positioning). As of August 2017, TechEdSat 5 continues to generate data from orbit, greatly exceeding its planned 6-week mission length. The data will be used to design passive de-orbit system for future space station payloads, so that experimental samples can be quickly returned from the ISS without waiting for a cargo mission.

The TechEdSat 5 mission has two goals:

  1. Assisted GPS positioning for orbital determination (including aiming of antennas).
  2. Checking the orbit and orbital decay before modulated Exo-Brake deployment, during full deployment and throughout the remainder of the de-orbital braking process.

The TechEdSat program is used to bring engineering interns up to speed with real spacecraft and space operations. Interns do most of the development and testing work, with everything reviewed by professional staff to guarantee mission reliability and safety.

XBee MicroPython Examples

Introduction

Simple programs can make a big difference! An XBee running small amounts of code can perform some pretty important tasks. Cryptic readings can be transformed into useful data, excess transmissions can be intelligently filtered out, modern sensors and actuators can be employed directly, operational logic can glue inputs and outputs together in an intelligent way.

Here are some useful MicroPython examples that should run within 12KB of RAM, useful even in a small sandboxed implementation. Required parts and a method for simulating limited RAM are noted below.

Examples


Send “Hello World”

This example shows how to send some text data via an XBee in transparent mode.

  1. SETUP: Connect the XBee (configured to factory defaults) as shown in the diagram below:XBee Pyboard Basic_bbXBee Pyboard Basic_schem
  2.  PROGRAM: Load the code sample into your pyboard’s main.py file
  3. RESULTS: Connect a second XBee, also configured to factory defaults, to your computer. Then use a terminal program like XCTU or CoolTerm to receive the text data. Each time you reset the pyboard, it sends “hello world!” one time to your computer. The results will look like this:
    XBee MicroPython Send Text screenshot

Read more ›

Four Trends Transforming IoT in 2016

Software is eating the world and the Internet of Things is no exception. In a new post for IoT NOW, I talk about four “software-minded” trends that I believe hardware vendors will increasingly consider for their equipment designs:

  1. IoT-Now+software-eating-worldOverbuilding for longevity & flexibility
  2. Service models
  3. Data-driven decisions
  4. Systems thinking

Read my post to learn more!

 

 

Top