Bluetooth and The Internet of Things #Bluetooth #Iot #Arduino #STEM #Programming

Yesterday I posted another item in a series of posts about using Bluetooth features in App Inventor. Bluetooth (together with low power wireless technologies such as Zigbee) are significant technologies that make “The Internet of Things” possible. These low power wireless technologies enable all kinds of devices to communicate with each other and with other devices such as Android phones and tablets.

Today, most Bluetooth devices run Bluetooth version 2.1 up through version 4.2, depending on the device. Bluetooth has undergone considerable enhancements and evolution over the years from providing a short range, lower speed serial data link suited for wireless earphones to providing high speed packet data communications over short distances while using very low power.

Bluetooth continues to evolve with Bluetooth version 5.

Bluetooth 5 adds more improvements including:

  • Up to 4x longer range
  • Faster data rates – on par with WiFi for some applications
  • Lower power

However – and this is important, most Bluetooth version upgrades require new hardware, and this is true for Bluetooth 5. To use version 5 features you will need version 5 compatible hardware – which is not yet generally available on Android phones and tablets.

Continue reading

Part 3: Bluetooth communications with 2 Arduino devices, using App Inventor

Please start with “Part 1: Basic Bluetooth communications using App Inventor” to learn how to configure, set up and program an App Inventor app that communicates over Bluetooth between two Android devices. Then, read “How to connect App Inventor apps to Arduino using Bluetooth” before going through this tutorial!

Then continue with this tutorial.

This tutorial shows how an App Inventor app can communicate with 2 (or more) Arduino boards and Bluetooth devices simultaneously. These instructions assume you are familiar with the code and hardware presented in Part 1 and Part 2 and How to connect App Inventor apps to Arduino using Bluetooth“. This tutorial uses the same Arduino source code as in that tutorial.

A follow up tutorial will show how to simplify some of this code for supporting multiple Bluetooth devices.

Brief Reminder

Bluetooth is a short range, low power, limited speed wireless communications technology. The original Bluetooth technology provided a serial communications link between two paired devices (as compared to an individual data packet sent between up to n devices using the much newer Bluetooth LE – see here and here for information on Bluetooth LE).

Arduino is a microcontroller board for building hardware projects. You can write software for Arduino using a programming language similar to the C++ programming language.

The code used in these examples has been tested with some specific Bluetooth modules connected to Arduino. These include the JY-MCU (Amazon (Prime), Amazon (non-Prime) and also some HC-05 and HC-06 based Bluetooth modules.

Getting Started

  • Read the prior tutorials (Part 1 and Part 2 and How to connect App Inventor apps to Arduino using Bluetooth“)
  • Build two Arduino boards each with an appropriate Bluetooth module as described in the prior tutorial.
  • Compile and load the Arduino software in to each of the Arduino boards.
  • Test and confirm that your basic LED lights flash for the original, single Bluetooth connection case.
  • Then, with two working boards, continue to this tutorial.

User Interface View

The original app supported just one device, so there was just a single “Connect” and “Disconnect” button. This version demonstrates how to connect more than one Bluetooth device so we need separate buttons for each device. Similarly, we must add a second status and data sending item to the screen:

 

Before running this app, be sure to use Android | Settings | Bluetooth to “pair” your Bluetooth devices with Android.

Then, run the app and select Connect to Device 1. This displays a list of available Bluetooth devices in the vicinity. Select your specific Bluetooth device for the connection. Do this for both Bluetooth devices.

Once connected, you can send some simple commands to the Arduino board. Commands are very simple – a single number – to tell the Arduino to do something (this confirms that the Bluetooth link is working). If we enter a single digit 1 and then press Send Numeric 1, the Arduino board will send back 2 bytes of data which will then be displayed on the app screen. If we enter a single digit 4 and then press Send Numeric 1, a value of 4 is transmitted over Bluetooth to the Arduino board, which responds by flashing the externally connected LED.

Because the text box for data entry has its property set to NumbersOnly, a pop up numeric keypad displays when entering data, rather than the usual Android text keyboard.

Video Demonstration this App

I created a short video showing this app in operation. There are two versions of the video – one is standard 2D format and the other is in VR 3D format for viewing on Google Cardboard-like viewers used with smart phones to watch VR videos.

2D (normal) version: https://youtu.be/BU2gIAxbY_o

VR 3D SBS version: https://www.youtube.com/watch?v=UJIggzZgld4

That version is in 3D, for viewing with VR 3D viewers or 3D TVs or monitors.

Continue reading

Facebook and Twitter posts restored for appinventor.pevest.com

Since 1 December, posts made here did not appear on Facebook or Twitter.

The software that transferred posts from this web site to social media stopped working and was no longer supported. The software developer had, in fact, given 9 months warning that the cross posting software would no longer be supported but I missed that announcement 🙂

I have installed and configured new software which appears to be working. The problem affected 4 web sites that I run so it took some time to find a good solution, test it out, and then roll it out to all of the other web sites too.

Now that this is done, I can get back to more interesting projects. I still have some Bluetooth related projects to finish and post here, plus I hope to post an interesting app that exchanges data between apps on different phones using text messages. I have not written that app yet but it looks straight forward – we hope!

Using the Pedometer in MIT App Inventor

The pedometer uses the phones motion sensors (accelerometers) to identify when the phone (or tablet) is being carried by someone that is walking – and uses this to measure the number of steps you take as you walk. When calibrated to the length of your stride, the pedometer provides a way to estimate the distance you have traveled.

The pedometer is so simple to use, I put this example together while eating lunch today.

User Interface

This is a simple program!

To use this app, enter your stride length in meters. For illustration, I set the stride length to 1/2 meter or 0.5, as seen in this screen shot:

Screenshot_20161206-153814

Press the Start measuring steps button to activate the pedometer and then start walking with your phone. You will soon see the Elapsed distance value increase as you move around.

Designer View

Continue reading

Does your device support Bluetooth LE? Here is how to find out.

See Part 0 for a brief introduction to this series and Bluetooth LE plus our past tutorial series on classic Bluetooth for communicating between Android devices, and between an Android device and an Arduino board with external Bluetooth transceiver.

Note – Bluetooth LE was introduced in the Bluetooth 4.0 specification. As of this writing, the latest version of the specification is 4.2. Bluetooth LE introduced capabilities to support very low power, battery operated devices that are designed to operate for weeks to months on a single battery or battery charge

Does Your Device Support Bluetooth LE?

To find out if your smart phone or tablet can work with Bluetooth LE: Go to the Google Play store and install the free app “BLE Checker” on your Android device. The app is simple – it tells you whether your device supports Bluetooth LE or not and that is all it does.

Devices that support Bluetooth LE will support BLE connections between compatible devices. However, this app does not tell you if your device supports a special BLE feature called “advertisements”. You can use Bluetooth LE without the “advertisements” feature but you will not be able to use all BLE features.

Continue reading

Creator of C programming language, Dennis Ritchie, passes away

Dennis Ritchie, the creator of the C programming language and co-developer of the Unix operating system passed away on October 8 at the age of 70, leaving a legacy that casts a very long shadow.

Source: Dennis Ritchie, Father of C and Co-Developer of Unix, Dies | WIRED

Appinventor.pevest.com web site read in 183 countries around the world!

Wow! I just checked the web server data and the server estimate the http://appinventor.pevest.com web site is now read in 183 countries!

Using the United Nation’s count of 241 countries and territories, that means residents of 58 countries and territories have not visited yet!

But that means people in up to 183 countries are learning how to program Android apps using MIT App Inventor!

Using buttons to simulate a bar chart in App Inventor Code

Our prior post showed how to use user interface button components to simulate a column chart.

We can apply the same trick to create a bar chart. In a bar chart, the data is represented as horizontal bars, whereas in the column chart, the data appears in vertical columns.

Implementing the bar chart requires just a few minimal changes to the original column chart app.

User Interface

This screen shows the basic output, with the data represented as horizontal bars in the chart. To simplify, the slider control and column #6 that appeared in the original column chart version, have been removed.

Screenshot_20161011-134517

A new feature has been added, as an example illustration. Since each bar in the chart is actually a button, you can press on the bar. For fun, a Click event handler has been added to bar #1 in the chart. Pressing bar #1 causes the bar to change to a randomly selected color. This feature has been implemented only for bar #1, but if you wish, you can add Click event handlers for the other buttons.

Continue reading

Using buttons to simulate a column chart in App Inventor Code

Clark Hochgraf has a blog post on using button controls as a simple way to draw a column chart. This is a clever idea. I created a sample program to illustrate the idea in a bit more depth, with multiple columns.

User Interface View

Let us look at our sample program’s user interface. The screen displays a colorful column chart – but those columns are actually buttons stretched vertically.

Our demo app displays two kinds of column chart features. The first is that columns 1 through 5 are drawn based on the data values (separated by spaces) entered in the text box, at top, followed by pressing the Draw Chart With Data button.

Screenshot_20161010-162157

The sixth column (labeled imaginatively “6”!) is controlled by the Slider control. Adjust the control to the left, and column 6 becomes shorter; adjust to the right and column 6 becomes taller. That idea was shown in Clark Hochgraf’s example too.

Designer View

We set up our app by creating a horizontal layout, at top, for a label (“Data (5 values):”) and a text box for data entry. Next, we add a button and label it “Draw Chart With Data”.

Continue reading