[TITLE]

Introduction

The IoT Hack of the Century will take you on a whirlwind tour in the world of IoT and how it is being used in the modern world of mineral extraction in exotic locations like the Arctic and the wilds of South Africa.

Learning Objectives

In this hack you will be solving the common business problem that companies in the mineral extraction industry face and how IoT solutions from Google are brought to bear.

  1. Provision an IoT Hub
  2. Set up an IoT Edge device
  3. Bring Edge Computing to your solution for scale and resiliency

Challenges

  • Challenge 1: Provision an IoT environment
    • Create an IoT Hub and run tests to ensure it can ingest telemetry
  • Challenge 2: Your First Device
    • Make the connection to your Edge device and see that it is properly provisioned.
  • Challenge 3: Connecting the World
    • Connect your device and make sure it can see all other devices in your team.
  • Challenge 4: Scalable Monitoring of Telemetry
    • Figure out the scale problem in the world of IoT. How do you hand trillions of data points of telemetry?

Prerequisites

  • Your own GCP project with Owner IAM role.
  • An AVNET X231 device
  • gCloud CLI
  • Visual Studio Code

Contributors

  • Gino Filicetti
  • Murat Eken
  • Jane Q. Public
  • Joe T. Muppet

Challenge 1: Provision an IoT environment

This is a template for a single challenge. The italicized text provides hints & examples of what should or should NOT go in each section. You should remove all italicized & sample text and replace with your content.

You can use these two specific blockquote styles to emphasize your text as needed and they will be specially rendered to be more noticeable

Note
Sample informational blockquote

Warning
Sample warning blockquote

Pre-requisites (Optional)

Include any technical pre-requisites needed for this challenge specifically. Typically, it is completion of one or more of the previous challenges if there is a dependency. This section is optional and may be omitted.

Introduction (Optional)

This section should provide an overview of the technologies or tasks that will be needed to complete the this challenge. This includes the technical context for the challenge, as well as any new “lessons” the attendees should learn before completing the challenge.

Optionally, the coach or event host is encouraged to present a mini-lesson (with the provided lectures presentation or maybe a video) to set up the context and introduction to each challenge. A summary of the content of that mini-lesson is a good candidate for this Introduction section

For example:

When setting up an IoT device, it is important to understand how ‘thingamajigs’ work. Thingamajigs are a key part of every IoT device and ensure they are able to communicate properly with edge servers. Thingamajigs require IP addresses to be assigned to them by a server and thus must have unique MAC addresses. In this challenge, you will get hands on with a thingamajig and learn how one is configured.

Description

This section should clearly state the goals of the challenge and any high-level instructions you want the students to follow. You may provide a list of specifications required to meet the goals. If this is more than 2-3 paragraphs, it is likely you are not doing it right.

Note Do NOT use ordered lists as that is an indicator of ‘step-by-step’ instructions. Instead, use bullet lists to list out goals and/or specifications.

Note You may use Markdown sub-headers to organize key sections of your challenge description.

Optionally, you may provide resource files such as a sample application, code snippets, or templates as learning aids for the students. These files are stored in the hack’s resources sub-folder. It is the coach’s responsibility to package these resources and provide them to students in the Google Space’s Files section as per the instructions provided.

Note Do NOT provide direct links to files or folders in the gHacks Github repository from the student guide. Instead, you should refer to the “resources in the Google Space Files section”.

Here is some sample challenge text for the IoT Hack Of The Century:

In this challenge, you will properly configure the thingamajig for your IoT device so that it can communicate with the mother ship.

You can find a sample thingamajig.config file in the Files section of this hack’s Google Space provided by your coach. This is a good starting reference, but you will need to discover how to set exact settings.

Please configure the thingamajig with the following specifications:

  • Use dynamic IP addresses
  • Only trust the following whitelisted servers: “mothership”, “IoTQueenBee”
  • Deny access to “IoTProxyShip”

Success Criteria

Success criteria go here. The success criteria should be a list of checks so a student knows they have completed the challenge successfully. These should be things that can be demonstrated to a coach.

The success criteria should not be a list of instructions.

Success criteria should always start with language like: “Validate XXX…” or “Verify YYY…” or “Show ZZZ…” or “Demonstrate VVV…”

Sample success criteria for the IoT sample challenge:

  • Verify that the IoT device boots properly after its thingamajig is configured.
  • Verify that the thingamajig can connect to the mothership.
  • Demonstrate that the thingamajig will not connect to the IoTProxyShip

Tips

This section is optional and may be omitted.

Add tips and hints here to give students food for thought. Sample IoT tips:

  • IoTDevices can fail from a broken heart if they are not together with their thingamajig. Your device will display a broken heart emoji on its screen if this happens.
  • An IoTDevice can have one or more thingamajigs attached which allow them to connect to multiple networks.

Learning Resources

This is a list of relevant links and online articles that should give the attendees the knowledge needed to complete the challenge.

Think of this list as giving the students a head start on some easy Internet searches. However, try not to include documentation links that are the literal step-by-step answer of the challenge’s scenario.

Note Use descriptive text for each link instead of just URLs.

Sample IoT resource links:

Advanced Challenges (Optional)

If you want, you may provide additional goals to this challenge for folks who are eager.

This section is optional and may be omitted.

Sample IoT advanced challenges:

Too comfortable? Eager to do more? Try these additional challenges!

  • Observe what happens if your IoTDevice is separated from its thingamajig.
  • Configure your IoTDevice to connect to BOTH the mothership and IoTQueenBee at the same time.