Posts in BLOG

Dr. Mazlan and FAVORIOT Joins the Global Vision Board (GBV)

May 13th, 2017 Posted by BLOG 0 thoughts on “Dr. Mazlan and FAVORIOT Joins the Global Vision Board (GBV)”

May 12, 2017 – Dr. Mazlan was invited to join the 100 Global Visionaries to Global Vision Board today. FAVORIOT and Smart Cities Innovation Lab (Smart iLab) also signed an MOU for a long-term partnership to collaborate in SMART CITY projects.

 

Dr. Mazlan Abbas_Formal Invitation.jpg

Exclusive Invitation to Global Vision Board (GBV)

 

screenshot_01.jpgGlobal Vision Board (GVB) is an international group of intellectual stakeholders comprising members from cities, academia, industry, SMEs and other organizations in the world.

The role of the Visionaries is to provide on-going expertise on developing the market for smart city products & services, and how these can be used to enable cities to meet the challenges they face. GVB members can be considered as a unique talent pool for the organization and for any potential projects to help new market penetrations, to encourage partnerships at all levels and to promote professional recognition at a global scale.

Create Your First IoT Application by Connecting Arduino to FAVORIOT Platform

May 1st, 2017 Posted by BLOG, IOT PLATFORM 0 thoughts on “Create Your First IoT Application by Connecting Arduino to FAVORIOT Platform”

Check out the COMPLETE Tutorial How to connect an Arduino to FAVORIOT Platform. You can also download a STEP-by-STEP Tutorial –  TUTORIAL – Cytron Uno with FAVORIOT Platform (59 downloads)

arduino-1128227_1920.jpg

Arduino-to-FAVORIOT Tutorial

code to send data to FAVORIOT platform from Arduino

/*
    This sketch sends streams to FAVORIOT Platform using Ethernet shield
*/
#include <SPI.h>
#include <Ethernet.h>

const int ON = 1;    // Constant to indicate that lights are on
const int OFF = 2;  // Constant to indicate that lights are off
const String APIKEY = "YOUR API KEY HERE"; // Replace with your FAVORIOT apikey
const String DEVICE = "YOUR DEVICE HERE"; // Replace with the id_developer of your device

// Enter a MAC address for your controller below.
// Newer Ethernet shields have a MAC address printed on a sticker on the shield
byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

// Your IP Address
IPAddress ip(192,168,1,16);

// api.favoriot.com IP Address
IPAddress server(182,54,199,106);

EthernetClient client; // Initialize the library instance
int ledPin = 5;        // Led pin number
int LDRPin = 7;        // LDR sensor pin number
String lights = "OFF";       // Current status
String newLights = "OFF";    // New status

// The setup routine runs once when you press reset
void setup() {
  pinMode(ledPin, OUTPUT);        // Initialize the digital pin as an output
  Serial.begin(9600);             // Start serial port
  Serial.println(F("Starting"));
  Ethernet.begin(mac,ip);         // Start the Ethernet connection
  delay(2000);                    // Give the Ethernet shield a second to initialize
}

// The loop routine runs over and over again forever
void loop() {
  int val = analogRead(LDRPin);   // Read the value from the sensor
  Serial.println(val);
  if (val > 990) {  // This is the value limit between day or night with our LDR sensor. Maybe you need adjust this value.
    newLights = OFF;             // Now it's night. We have to turn on the LED
    digitalWrite(ledPin, HIGH);   // Turn the LED on (HIGH is the voltage level)
  }
  else {
    newLights = ON;               // Now it's day. We have to turn off the LED
    digitalWrite(ledPin, LOW);    // Turn the LED off by making the voltage LOW
  }
  if (lights != newLights) {        // Check if we have a change in status
    Serial.println(F("Send Stream"));
    lights = newLights;             // Status update and send stream
    sendStream();
  }
  delay(500);
  // If there's incoming data from the net connection, send it out the serial port
  // This is for debugging purposes only
  while (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
      client.stop();
  }
}
// Send stream to FAVORIOT
void sendStream()
{
  String txt = "";          // Text to send
  if ( lights == OFF ) {   // Alarm OFF
     txt = "OFF";
  } else {                  // Alarm ON
     txt = "ON";
  }
  Serial.println(txt);      // For debugging purpose only

  if (client.connect(server, 80)) {   // If there's a successful connection
    Serial.println(F("connected"));
    // Build the data field
    String json = "{\"device_developer_id\":\""+DEVICE+"\",\"data\":{\"Light\":\""+txt+"\"}}";
    // Make a HTTP request
    client.println("POST /v1/streams HTTP/1.1");
    client.println("Host: api.favoriot.com");
    client.println(F("apikey: YOUR API KEY HERE"));
    client.println("Content-Type: application/json");
    client.print("Content-Length: ");
    int thisLength = json.length();
    client.println(thisLength);
    client.println("Connection: close");

    client.println();
    client.println(json);
  }
  else {
    // If you didn't get a connection to the server:
    Serial.println(F("connection failed"));
  }

}




/*
  FAVORIOT Arduino Code for Wi-Fi shield
 */

#include <SPI.h>
#include <WiFi.h>

char ssid[] = "YOUR WI-FI Network SSID"; //  your network SSID (name)
char pass[] = "WI-FI Password";    // your network password (use for WPA, or use as key for WEP)

const String DEVICE = "DEVICE NAME"; // Replace with the id_developer of your device
String txt = "OFF";          // Text to send

int status = WL_IDLE_STATUS;

char server[] = "api.favoriot.com";    //  address for FAVORIOT Platform

WiFiClient client;

void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }
  // check for the presence of the shield:
  // attempt to connect to Wifi network:
  while (status != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    // Connect to WPA/WPA2 network. Change this line if using open or WEP network:
    status = WiFi.begin(ssid, pass);
    // wait 10 seconds for connection:
    delay(10000);
  }
  Serial.println("Connected to wifi");
}

void loop() {

  // Json Data to send to Platform
  String json = "{\"device_developer_id\":\"YOUR DEVICE HERE\",\"data\":{\"light\":\""+txt+"\"}}";
  Serial.println(json);
  if (client.connect(server, 80)) {
    // Make a HTTP request:
    client.println("POST /v1/streams HTTP/1.1");
    client.println("Host: api.favoriot.com");
    client.println(F("apikey: YOUR API KEY HERE"));
    client.println("Content-Type: application/json");
    client.println("cache-control: no-cache");
    client.print("Content-Length: ");
    int thisLength = json.length();
    client.println(thisLength);
    client.println("Connection: close");

    client.println();
    client.println(json);
  }
  // if there are incoming bytes available
  // from the server, read them and print them:
  while (client.available()) {
    char c = client.read();
    Serial.write(c);
  }
  // if the server's disconnected, stop the client:
  if (!client.connected()) {
    client.stop();
  }
  delay(10000);
}

This section provide tutorials on connecting various arduino device to FAVORIOT IoT. This easy tutorial helps you build a system for turning LED ON and OFF based in the light sensor reading (LDR sensor) and send an email alert. For this, a Arduino able to measure the light is used. In this tutorial you will learn how to:

  • Connect an Arduino to FAVORIOT to send data streams using FAVORIOT HTTP REST API.
  • Build an Notification system on FAVORIOT by writing Event Rule to send an email.

Components used

  • 1 x Arduino Uno.
  • 1 x Ethernet Shield.
  • 1 x Breadboard
  • 1 x Light sensor (LDR)
  • 1 x Resistance. Value of 10 KΩ
  • 1 x Resistance. Value of 220Ω
  • 1 x Led

Arduino is programmed to send a data stream to FAVORIOT depending on the intensity of light.

All the data streams sent by Arduino is stored in FAVORIOT platform.

In addition to storing data, the true power of FAVORIOT is to let you build Apps quickly with a simple rule based on if-else logic. In this scenario, we are going to build a Alert App that sends an email to you in case that Arduino detects the lights are ON or OFF.

The connections in Arduino are extremely simple. Refer to the diagram below.

Screenshot of Example Documentation created with Slate

If you are registered in FAVORIOT, you have a default device already created for you. Go to the right platform on https://platform.favoriot.com and see the device panel to see the devices that are present. Basically, you need the device_developer_id that might be something like defaultDevice@myusername. But if you want, you can create a new device and use it in this example.

Apikey

Now, go to your “account setting” which is available on the top right corner in the dropdown and check your Apikey. It’s a big alphanumeric token like:
“98346673a6377ef1fde2357ebdcb0da582b150b00cabcd5a0d83045425407ab4”.
You need this apikey to complete the example.

From Arduino you have to build a HTTP request and send the data.

HTTP request
POST /streams HTTP/1.1
Host: api.favoriot.com
Accept: application/json
Content-Type: application/json
apiKey: YOUR APIKEY HERE
Content-Length: YOUR CONTENT LENGTH HERE
Connection: close
Data

{ { "device_developer_id": "deviceDefault@FAVORIOT", "data": {"light":"ON"} } }

Alright then now your device must be sending streams when you turn on and turn off the lights.

It’s time to see whether you can view the data on the platform and check if we have new streams. Login to you account on https://platform.favoriot.com and go to data stream tab.

Screenshot of Example Documentation created with Slate

You will see data like this in the data stream tab.

Screenshot of Example Documentation created with Slate

Great! Now as we are receiving data on our platform let’s send an email whenever new data comes. Go to the Rules tab below the data stream tab.

When inside the Rule tab click on Add New Rule button. A form will appear and fill in the details as described:

FieldDetails
Rule NameShort name for rule (.e.g: Light_rule)
DescriptionDescribe what the rule does (.e.g.: sends email when light turn on or off)
Device NameSelect from the dropdown on which you want to create the rule
Data Field for devicethis is optional field and decribe to which data inside the device you are associating the rule.
RuleDescribe the rule here (see more information below)
Thenselect what to do from dropdown (email or sms. More alert channel coming soon.)
Toenter the email or sms here (based in your previous selection in previous step).
Messageenter the short message you want to be attache with alert.

The rule should be described as follows:

(stream.Light === "ON") || (stream.Light === "OFF")

The syntax should be followed while describing the rule. stream. prefix (adding stream.is required) is followed the data field sent by device which is light in this case (the data sent by the device is temperature then you will write stream.temperature). You can multiple rule using || (OR) && (AND) logical operators.

Now, whenever the data comes to the platform the rule will be triggered and alert will be sent.

Congratulations! you have just created an IoT project from scratch. Now go ahead and let your imagination run wild. Show us what great things you can build.

If you are having trouble with connecting your device to our platform please contact us at support@favoriot.com.

FAVORIOT offered a very affordable pricing plan as shown below:

The Beginner Plan is very suitable for University students who have been assigned or chose IoT project as their Final Year Project. A single device such as Raspberry Pi or Arduino that collects from several connected sensors can stream to the IoT platform. A simple dashboard is provided to visualize the measurements. This plan is also suitable for an individual developer or hobbyist that would like to familiarize with IoT platform, conduct self-learning or participate in IoT Hackathons. At RM 8.33 (or less than USD 2.00) per month, you can become the next Generation-IoT and on your way to be one of the rare talents in the job market today!

The Startup Plan is perfect for Freelancers or SMEs or Startups to provide IoT solution for a medium size project up to 150 devices. In fact, they can also create multiple projects or applications but limited to the total number of 150 devices.

The Business Plan is great for developing big commercial IoT project. It can support up to 300 devices for many smart applications.

However, if a company requires connecting thousands of devices, they may contact/email their customized requirements to sales@favoriot.com

screenshot_02.png

CLICK HERE to Subscribe/Request for Quotation.

Check out the COMPLETE Tutorial How to connect an Arduino to FAVORIOT Platform. You can also download a STEP-by-STEP Tutorial –  TUTORIAL – Cytron Uno with FAVORIOT Platform (59 downloads)

Full documentation and technical tutorial – HERE.

A Review on UNITEN’s ICTReC’17

April 5th, 2017 Posted by BLOG 0 thoughts on “A Review on UNITEN’s ICTReC’17”

IMG_7726 2.JPG

Virtual Dance Communicator Demo at UNITEN’s ICTReC’17

The College of Computer Science and Information Technology (CSIT), UNITEN organized the 3rd Information and Communication Technology 2017 (ICTReC ’17) competition. The event was held at the College of CSIT on the 4th of April, and I’m honored to be one of the judges that came from the industry.

The primary objective of the event is to provide academics and researchers a convenient platform to establish their identity and promote their innovative ideas.

In general, the goals of the competition are as following:

  1. To recognize excellence in innovative technologies and design.
  2. To provide a platform for academics and researchers to introduce their ideas, exhibit and share their work.
  3. To foster, nurture and encourage their participation in science, technology, and innovation.
  4. To create an avenue to establish business networking partnership and opportunities with institutions.

Tuan Haji Fazil Ibrahim, CIO of TNB gave an Opening Speech and officiated the event. Four (4) judges are divided into two groups and were give the task to evaluate 20 projects.

 

IMG_7720.JPG

Dr. Mazlan with CIO TNB, UNITEN’s Management, and Judges

Overall, I felt that it’s a good initiative by CSIT, UNITEN to organize an event that will spur the innovativeness and competitiveness spirit among the students and researchers. Of course, there is always a place for improvements, and I hope these comments are taken into consideration by UNITEN and the participants to improve their projects.

  1. Improvements in their Poster contents – If the poster is the only way for them to communicate with the audience, they must really take serious note of the contents and the story line. Fonts, graphics, colors and charts played a critical role in conveying the right message.
  2. Clarify the Problem Statement – Most researchers tend to start with their solution and objective before even talking about their problem statement. And the worst part if they did not even describe their problem statement at all! This is the biggest mistake in any project presentation. A simple scenario about the problem statement or “pain points” with a brief explanation about the limitation of the current solutions will help to tell a better story to the listeners.
  3. Don’t jump into the technical details too early – The researchers need to understand that this is the first time the judges see their projects. Don’t expect them to know every terminology, technical details, algorithm because some of them are from the industry – unlike the researchers who have done the same work for years. Take the first 5 minutes to explain the scenario, problem statement, the terminology and how it applies to the real situation.
  4. The Demo is the “Eye-Opener” – Demonstrate if possible. Let the showcase be the prove of the results. What you have done and what you intend to do are two different things.
  5. Combining FYP and Postgraduate Research Might Not Be Fair – Judges will have difficulty judging the various stages of project development. Some of them are at concept/idea stage, mid-stage, the final stage of progress with different levels of “novelty.”
  6. Customer Validation – It’s critical for any projects to get validated or “buy-in” from the customer. Otherwise, it’s more theoretical work rather than practical, and we might be investing our time and money for the wrong reasons.

However, I can see several interesting projects that have potential to be commercialized. Some are quite ready, but others have still a long way to go.

About the Author

Dr. Mazlan Abbas is currently the Co-Founder and CEO of FAVORIOT Sdn Bhd. He is an IOT Evangelist and a Thought Leader. He received an award as 50 Most Impactful Smart Cities Leaders by World CSR 2017. He is ranked No. 20th Thought Leader in IOT by 2014 Onalytics Report – “The Internet of Things – Top 100 Thought Leaders”, ranked Top 10 in IoT Top 100 Influencers by Postscapes 2016/2017, ranked Top 100 in Smart Cities Top Experts by Agilience Authority Index May 2016. You can reach him on LinkedIn or Twitter. Check all his presentation slides HERE.

Copyright © 2025 All rights reserved