Deprecated: Required parameter $query follows optional parameter $post in /var/www/html/wp-content/plugins/elementor-extras/modules/breadcrumbs/widgets/breadcrumbs.php on line 1215
Internet of Things (IoT) - Blocks, Python Functions, Projects | PictoBlox Extension
[PictoBloxExtension]

Internet of Things (IoT)

IoT
Extension Description
Add IoT to your project and control it across the globe.

Introduction

What is IoT?

The Internet of Things is the network of physical objects or “things” embedded with sensors, actuators, and internet connectivity, which enables these objects to collect and exchange data.

A “Thing” in the context of the IoT, is an entity or physical object that has a Unique identifier, which is a unique sequence of characters used to identify or refer to it, combined with an embedded system, and has the ability to transfer data over the internet.

These devices collect useful data and then autonomously flow and share it between other devices.

What is IoT Lifecycle?

Now we know in brief, what is IoT, let’s understand how the IoT ecosystem works in the real world using what is known as an IoT lifecycle.

The IoT life cycle comprises systems for

  1. Collection: Let’s start with the first phase i.e. the collection. For any device or any system to perform any action, first, it needs some data to act on. This data can either be generated from any sensors or any IoT devices about the thing. The data generated can be from any sensor be it temperature sensors, motion sensors, moisture sensors, air quality sensors, light sensors, you name it.
  2. Communication: Next, onto the Communication phase. The data collected from the sensors is then sent to the Internet to some destination with security and reliability. The devices like routers, switches, etc. are used to send data across the destination devices. The destination devices could be
    1. A cloud platform like Google or Alexa
    2. Private data centers like Indian Defence Data Centers
    3. Home networks like Smart-home networks.
  3. Analyzing: In the next phase, that is the Analysis phase, the data we collected needs to be analyzed to create a meaningful format. It could be
    1. Visualizing the data like temperature variation during the day
    2. Building reports to analyze the manufacturing system cause
    3. Setting up events like should you the Air Conditioner ON or OFF depending on the temperature.
  4. Acting: Now that we have the final form of data we need to perform an action according to it. The actions based on the information and data could be
    1. Communicating with another machine- like turning the AC ON or OFF
    2. Sending a notification (SMS, E-mail, or Text)- like notifying that the plants have been watered.
    3. And much more.

Application of IoT

We use IoT in normally all fields of life.

  1. Building and Home Automation
  2. Manufacturing
  3. Medical and Healthcare systems
  4. Environmental monitoring
  5. Energy management
  6. Transportation
  7. Better quality of life for the elderly and whatnot!

What is the Cloud?

In an IoT system, the most important component is the cloud service on which we can store or retrieve data as per the applications. A cloud service is any service made available to users on demand through the internet. Cloud services are designed to provide easy & scalable access to applications, resources, and services. Cloud is the collection of data servers used to provide services like computing, analyzing, networking, etc.

There are a number of cloud service providers out there, like Amazon, Microsoft, Salesforce, Apple, etc. One such cloud service is Adafruit.io which we are going to use.What is Cloud

IoT with Adafruit IO

Adafruit.io is a cloud service – that just means we run it for you and you don’t have to manage it. You can connect to it over the Internet. It’s meant primarily for storing and then retrieving data but it can do a lot more than just that!

PictoBlox supports the IoT applications for Adafruit IO in this extension.

Create an Account in Adafruit IO

Follow the steps:

  1. Go to the website and Sign up: https://accounts.adafruit.com/users/sign_in
  2. Add the details and click on Create Account.
  3. You will be signed in to the account.

From here, you’ll want to learn about two important features of Adafruit IO before proceeding further –  Feeds and Dashboards

Feeds

Feeds are the core of the Adafruit IO system. The feed holds metadata about the data you push to Adafruit IO. This includes settings for whether the data is public or private, what license the stored sensor data falls under, and a general description of the data. The feed also contains the sensor data values that get pushed to Adafruit IO from your device.

You will need to create one feed for each unique source of data you send to the system. For example, if you have a project with one temperature sensor and two humidity sensors, you would need to create three feeds. One feed for the temperature sensor, and one feed for each humidity sensor.

Creating a Feed

Follow the steps:

  1. Go to the Feeds tab. Click on New Feed.
  2. Add the name and description and click on Create.
  3. You will find the feed in the list.
  4. You can click on the feed name and visualize the data.

Dashboard

Dashboards allow you to visualize data and control Adafruit IO-connected projects from any modern web browser. Widgets such as charts, sliders, and buttons are available to help you quickly get your IoT project up and running without the need for any custom code.

Creating a Dashboard

Follow the steps:

  1. Go to the dashboard and click on New Dashboard.
  2. Add the Dashboard Name and Description and click on Create.
  3. Open the New Dashboard. Click on the Setting icon in the top right corner and then click on Create New Block.
  4. From the options, click on the line chart.
  5. Select the Temperature Feed and click on Next Step.
  6. Add the Block Title and the Y-Axis Minimum – Maximum value. Click on Create Block.
  7. You will find the block added on the dashboard.
  8. Add a Humidity block as well. Also, add two gauge elements showing the current temperature and humidity value.
  9. Click on the Setting button and Edit Layout to align all the buttons.

IoT with ThingSpeak

ThingSpeak is an IoT analytics platform service that allows you to aggregate, visualize, and analyze live data streams in the cloud. You can send data to ThingSpeak from your devices, create instant visualization of live data, and send alerts.

PictoBlox supports the IoT applications for ThingSpeak in this extension.

Creating a ThingSpeak Account

Follow the steps:

  1. Go to https://thingspeak.com/ and click on create a new account.
  2. Add the details and click Continue.
  3. It will show – Personal Email Detected. Click Continue.
  4. Next, you have to verify your account.
  5. Once verified. Click on Continue. It will ask you to set the password.
  6. Once completed. You will be greeted by your dashboard.

Creating Channel in ThinkSpeak

Collect data in a ThingSpeak channel from a device, from another channel, or from the web.

Follow the steps:

  1. Click on New Channel.
  2. Add Channel information such as name, description, and field names. There can be 8 fields for 1 channel.
  3. Click on Save Channel.
  4. Your channel is created.

API for ThingSpeak

You will need the following data for making code in PictoBlox:

  1. Channel ID: This is the unique ID by which the channel data can be identified.
  2. Read and Write API: These is the unique API keys for performing data read and write operations. You can locate it in the API section of the channel.

Accessing IoT Extension in PictoBlox

Following is the process to add Internet of Things capability to the PictoBlox Project.

  1. Open PictoBlox and create a new file.
  2. Select the coding environment as Block Coding.
  3. Next, click on the Add Extension button and add the Internet of Things extension.
  4. You can find the Internet of Things blocks available in the project.
Read More

PictoBlox Blocks

Turn () video on stage with () % transparency block controls the control the camera feed on the stage.
This block helps move an object step by step in a given direction within a set time
This block facilitates seamless transitions to your preferred scenes. For instance, if you’re currently viewing Scene 1 and wish to switch to Scene 2, simply select Scene 2 from the dropdown menu to enact the transition.
This block is designed to refresh or reload the current scene.
This block code will give an option to control the object as player control like third person or first person. You can then use arrow keys to make your object move in respective direction.
This block of code applies velocity to the player. 
All articles loaded
No more articles to load

Block Coding Examples

All articles loaded
No more articles to load

Python Functions

The function creates an object to connect Quarky with Wi-Fi.
Syntax: wifi()
The function reads the analog value of the sensors connected to the specified pin. The function returns the int value between 0 to 4096.
Syntax: readanaloginput(pin = “A1”)
The function is used to control the state of the camera.
Syntax: video(video_state = “on”, transparency = 1)
The function moves its sprite forward the specified amount of steps in the direction it is facing. A step is equal to one-pixel length.
Syntax: move(steps = 10)
The function gives its sprite a speech bubble with the specified text — the speech bubble stays until another speech or thought block is activated, or the stop sign is pressed.
Syntax: say(message = “Hello!”, time = 0)
The function will play the specified sound, pausing its script until the sound has finished playing.
Syntax: playuntildone(sound_name = “Grunt”)
The function checks if its sprite is touching the mouse-pointer, edge, or another sprite. If the sprite is touching the selected object, the block returns true; if it is not, it returns false.
Syntax: istouching(object_name = “_edge_”)
The function is used when the sprite needs to produce a bitmap image of itself which is stamped onto the stage. (Because it is merely a picture of the sprite and not a sprite itself, it cannot be programmed). The function will not draw over sprites. 
Syntax: stamp()
The function sets the specified RGB LED of Quarky (specified with X and Y position of the LED) to the specified RGB color and brightness value.
Syntax: setled(x_position = 1, y_position = 1, color = [0, 0 , 0], brightness = 20)
The function returns the state of the specified push button. If the button is pressed it returns True or else False.
Syntax: readpushbutton(button = “L”)
The function moves the Quarky robot in the specified direction. The direction can be “FORWARD”, “BACKWARD”, “LEFT”, and “RIGHT”.
Syntax: runrobot(direction = “FORWARD”, speed = 100)
The function plays the specified audio on the Quarky speaker. The function does not have any callbacks, so other functions can be executed while this function is running.
Syntax: playsound(audio = “QuarkyIntro”)
This function helps turn the video on/off on the stage with a defined level of transparency.
Syntax: video(video_state = “on”, transparency = 1)
This function helps turn the video on/off on the stage with a defined level of transparency.
Syntax: video(video_state = “on”, transparency = 1)
The function sets a loudness filter threshold to remove the background noise from the audio file which is being analyzed.
Syntax: setthreshold(loudness = 30)
The function initializes the pick and place robot with the specified orientation.
Syntax: initialisepickplace(orientation = “HORIZONTAL”)
The function loads a model saved via model.save().
Syntax: tf.keras.models.load_model(filepath = ‘saved_model.h5’, custom_objects = None, compile = True, options = None)
The function initializes the quadruped robot object in Python and maps the 8 servos to the specified pins.
Syntax: Quadruped(Front Right Hip = 4, Front Left Hip = 1, Front Right Leg = 8, Front Left Leg = 5, Back Right Hip = 3, Back Left Hip = 2, Back Right Leg = 7, Back Left Leg = 6)
The function set the state of the relay connected to the selected pin to High or Low. A high state means that the pin will have 3.3V and for Low, the pin will be 0 V.
Syntax: setrelay(state = 1, pin = “D3”)
The function connects the Quarky or ESP32 to the specified Wi-Fi and password. The block is only available in the Upload Mode when the code is uploaded to Quarky.
Syntax: wifi.connecttowifi(WIFI = “Wi-Fi Name”, PASSWORD = “password”)
The function reports if the Wi-Fi is connected to the Quarky or ESP32 or not. This block is only available in Upload Mode.
Syntax: wifi.iswificonnected()
The function initializes the Mars Rover object in Python and maps the 5 servos to the specified pins.
Syntax: MarsRover(Head = 4, Front Left = 1, Front Right = 7, Back Left = 2, Back Right = 6)
The function initializes the humanoid robot object in Python and maps the 6 servos to the specified pins.
Syntax: Humanoid(Right Hip = 7, Left Hip = 2, Right Foot = 6, Left Foot = 3, Right Hand = 8, Left Hand = 1)
The Quarky Mecanum Robot Drive Motors are initialized by the function, which assigns each motor to a specific port. This allows the robot to be programmed to move the motors in the desired direction.
Syntax: Mecanum(Front Left = 1, Back Left = 2, Back Right = 7, Front Right = 8)
The function initializes the Expansion Board of Quarky for use. Without initialization, the board will not respond to any other functions.
Syntax: initexpansion()
The function returns the arc cosine of a number.
Syntax: math.acos(x)
This function performs the calibration process for a robotic arm by taking in the error angles of each of its three servos (link 1, link 2, and base). It then stores the offset angle for each servo to the memory of the Quarky, ensuring that the robotic arm is functioning correctly at all times.
Syntax: roboticArm.calibrate(Link1 Offset = 0, Link2 Offset = 0, Base Offset = 0)
This function ensures proper sensor alignment for precise line-following control.
Syntax: AdvanceLineFollowing(ir_num = 2)
The function sets the digital state of the specified pin to HIGH or LOW / 0V or 3.3V.
Syntax: setdigitaloutput(pin, state)
The function enables the automatic display of the box on face detection on the stage.
Syntax: enablebox()
All articles loaded
No more articles to load

Python Coding Examples

All articles loaded
No more articles to load
Table of Contents