Posts

Showing posts from 2018

Sensors for Embedded & IoT Applications

Image
In Electronics, the basic definition of a sensor is a device or a module that senses a physical parameter in the environment and converts the measured parameter into information that is usually understandable by a processor or a micro-controller. The electronic sensors we use with respected to Embedded Systems and IoT convert the physical parameter into electrical voltage or a digital logic level(which is same as voltage but only allowing 2 levels i.e. 0 and Vcc). It is very important to understand that as we human beings have senses that help us obtain information and process it, the micro-controller or processor can obtain such physical information through these electronic sensors.  So knowing and understanding these sensors is very important if we want to build an application or a smart device using IoT. Our device or application via the sensors can obtain all sorts of information from the real world like temperature, pressure, concentration of variety of gases, infrared s...

Whats going on in the World...

Image
This post is just a collection of some of the interesting videos showcasing the latest trends, technologies, prototypes and projects that are being worked upon and built around the world. Watch these videos, relate them to your work on Embedded Sytems and IoT, get fueled up to build your own innovations and prototypes. Look how the hand of another person can be controlled by the signals sent by the mind of  a person. It's an interesting concept and funny too :).   This is the upcoming smart shopping technology initiated by amazon. Such a concept should be adopted across various outlets and mega shopping centers, even in India. Ponder upon how the home automation, control and monitoring is taking shape in the above video. Look how cool is the new technology that lets you order your favorite and essential items!! Making cool, interactive robots, AI..is no more a thing of future or fiction. These are some of the interesting videos and I hope you can see t...

Understanding the Input and Output in a Microcontroller/IoT based System

Image
As the title suggests, understanding what and how the input and output can be given and obtained from a system respectively is very important. The Microcontroller or IoT based systems do some processing on the input they receive and give us some kind of output. Yes, its that simple!!Obviously, how we give the input and how we get the output is a huge subject. Let us take some basic examples and understand this concept: Blinking LED : This is the basic "Hello World" of Hardware design and Programming. Here, we are just letting the processor process without giving any input. We obtain the output on LED's where we observe their blinking in various forms. So here, we are basically letting our system do the processing based on our application and just observing the output.  Controlling LED via a switch :  Here, we are giving input via a switch and controlling our LED. Thus, input element is the switch, the output element is the LED and the processing is being done by ou...

Smart Power Strip-DIY

Image
I have just completed making a Smart Power strip that features 2 sockets that can be independently controlled by an app as well as can be voice controlled using Alexa. The product also features a multi-colored mini lamp as featured in my earlier  post that can be controlled by app too and also features voice control via Alexa. The module also has 2 master switches that can be used for completely switching off the sockets so if someone wants to use the power strip in a conventional manner without using the "smarter" ways, that option is also present. Unfinished Mess The project basically requires you to have basic electric networks knowledge on how AC supply works and is connected to appliances. For providing IoT ecosystem & app control, we use a microcontroller that controls a relay which controls the switching action of the sockets. The same microcontroller also controls the RGB multi color lamp. The Finished Product Another great feature of this project is t...

Blink External LED connected to Arduino

Image
With reference to the Blinking on-board LED program , let us try blinking a LED externally connected to arduino board at pin 12. The program will be very similar to the previous one. Only change will be the pin number which will be 12 as we are now operating on Pin 12 where external LED is attached. Schematic Brief Run down of the Program: In the set up portion, we will declare pin 12 as output by using pinMode(12,OUTPUT).   In the loop portion, our algorithm will remain same. However, we will have to use the digitalWrite() function on the pin 12 to specify the output on that pin. For high(LED on), digitalWrite(12,HIGH) and for low(LED off), digitalWrite(12,LOW). Please try to write the program yourself by using the information above so that you get into the habit of programming. I have reduced the delay time to mix things a little ;).

Getting Started with Arduino/Iot-Buyer's Guide

Image
As mentioned in the previous articles, Arduino board is a great way to start rapid prototyping and application development. Similarly, ESP8266 is a great standalone chip or a standalone development board to step into the IoT world. Arduino & Assosciated Components:  For starting with Arduino, a basic arduino Uno board and a USB cable to plug the arduino to the PC will be required. However, i don't recommend buying only arduino as you will be very limited with the applications you can develop or the experiments that you can do. Many online sites sell basic Arduino Starter Kits. These kits in my opinion are worth the purchase to start developing applications. You can check one such kit  here . You can also go ahead and search on other sites like Flipkart, ebay etc. Such kits contain various components and pieces like Breadboard, Connecting Wires(M-M,M-F,F-F), Resistors, Capacitors, LED's, Motors, Relays, Switches etc other than the basic Arduino Uno board and its USB cabl...

Using a Breadboard

Image
No matter how far you go into advanced electronics or projects making, you will always require to make circuits, test them, create prototypes involving lots of electrical circuitry, micrcontrollers, modules etc. Yes, the schematics or circuits can always be drawn by hand for understanding but these also need to be implemented practically, in real life. The simplest platform where we can implement our circuits and circuit diagrams is the breadboard. Breadboard It is essential to know that the breadboard basically has 2 sets of lines, the vertical power lines and the horizontal lines. Every row in the horizontal arrangement is at the same potential while every column in the vertical arrangement is at the same potential. The vertical power lines are mostly used for Vcc and Ground Connections. So, if Vcc is attached to one of the columns of the power lines, the entire column behaves as Vcc since the whole column is at same potential. I would suggest every one of you to have good e...

ES File Explorer-A Great File Manager

Image
I hope you are not one of those persons who are satisfied with your default android File Explorer or File Manager. With increasing digitalization, various cloud services coming into play and technologies like IoT, a simple file explorer is rather insufficient to keep a track of everything. ES File Explorer There is one such app for Android called ES File Explorer that hosts many features. It has a nice and clean interface and apart from being a great file manager, it also provides features such as Audio and video casting to a Laptop/Smart TV Connecting to various file hosting services like gdrive Storage Analyzer so that you can see which apps or media is hogging space on your device Has in-built file compression and unzipping facility(Rar and Unzip) It also lets you connect to your laptop/PC with a wireless FTP server It has in-built note editor, audio and video players It can also connect to your own local network servers like Raspberry Pi or any IoT server and many ...

ESP8266-The Gateway to IoT

Image
The ESP8266 is a low-cost Wi-Fi microchip with full TCP/IP stack and microcontroller capability produced by Shanghai-based Chinese manufacturer Espressif Systems. It’s a fantastic piece of add-on or as a standalone hardware that can be used for starting working in IoT domain. It basically comes in multiple forms but the 2 most common forms are : ESP 8266 Wi-Fi  chip : This is a small chip with an in-built microcontroller and Wi-Fi and can be used as a peripheral with existing microcontroller boards, for instance, arduino or as a standalone chip. When used with Arduino or any other microcontroller board, it will grant the board with wireless connectivity using Wi-Fi.  ESP8266(ESP-x) version ESP 8266 Board : This is a complete board quite similar to arduino with different types of pins as well as micro usb port so that it can be attached directly to the computer. It's also a microcontroller unit with Wi-Fi capability. Thus, it can also be used standalone for IoT ...

Raspberry Pi

Image
If you have not heard of this term yet, then be ready to be amazed by this tiny credit card sized computer. Yes, its an entire computer with an operating system as well as HDMI ports, bluetooth and Wi-Fi. You can run different applications, scripts and can even attach your USB Hard drive to provide storage to the Pi. It has a linux based OS as well as a complete GUI if attached to a monitor or TV through HDMI port. The best part of Pi is that it runs on a simple 5 V supply!! You can use any of your mobile charger to simply run a Pi meaning it consumes very less electricity and is highly energy efficient. Raspberry Pi 3 Model B+ Personally, I use the pi 24x7 as a Wireless media server, as my IoT Server and for running some scripts and various other stuff too. It can do a lot of things a normal PC or laptop can do at such a small size and without consuming oodles of power as a laptop or PC. It can also be remotely accessed from either mobile , tablet or a laptop locally as well a...

Blink LED-The First Program on Arduino

Image
Now, with the upload successfully done, lets write the basic "Hello World" Program of electronics world. In electronics, the basic program that's written is testing a LED. Before proceeding with this program, i would suggest a quick read on  GPIO pins of arduino. Fortunately, there's an on-board LED attached to the pin 13 on Arduino board. So in a nutshell, we will be controlling this LED attached to the pin 13 on Arduino. You can find a rough schematic of our little experiment here. This schematic is inbuilt in the arduino board and is just for our understanding. Later on, we can extend this concept to controlling an external LED. I am simply posting the entire code snapshot here as it is a very basic code and is available everywhere. You can also find the blink example in the examples under File Menu. Now, lets go over the different sections of the program. This will also explain the basics of arudino programming and the functions being used. The Setup o...

Internet of Things (IoT)

Image
Internet of things or IoT is a hot topic nowadays. It’s also being hailed as a disruptive technology. Basically, IoT is a system of interrelated computing devices or things that have the ability to communicate with each other over a network without requiring human interaction. These things can be anything, ranging from your fan, light or even your wallet. When these things can communicate with each other or with other things , for instance a mobile, this creates an IoT architecture. There are several IoT architectures. The most common one is discussed below: Here, we have a central cloud or a server, that connects to the things as well as the user. The user can control and monitor through a mobile app or a web based browser. So commands can be sent to the things via the cloud by the user through the app. Similarly, the things can also send status back to the user via the cloud/server. The things could also communicate with each other via server without any app or use control. ...

IoT based Lamp with Voice Control (Alexa)

Image
This is my Lamp prototype/Project made on a ESP based custom board called Octabrix ( This board is made by a startup called iB Hubs). With a simple app, i can control the colors of my lamp including any color that can be provided by a combination of Red, Green and Blue. There's also a provision of switching the lamp off. In addition to this, i have integrated voice control in this project. I can also control the lamp by asking Alexa(Amazon's Voice Assistant) to change it's color or switch it off. Basic Architecture: Here, i have a wifi based ESP8266 board called Octabrix that connects to the router at my home and then to the Blynk Cloud Server. The mobile App created on Blynk platform also connects to the Blynk Cloud Server. Thus, having common blynk server, i can send commands using the app to my hardware device(Octabrix). Voice Control integration through Alexa is obtained by using another cloud service called IFTTT. In-depth details regarding the project wil...

Microcontroller GPIO

Image
A general-purpose input/output (GPIO) is a digital signal pin on an integrated circuit or electronic circuit board(In our case, a microcontroller or arduino board) whose behavior—including whether it acts an input or output—is controllable by the user. GPIOs have no predefined purpose and are unused by default. If used, the purpose and behavior of a GPIO is defined by the user or the developer. These pins basically act as bridges to interface with the outside world. For instance, a LED can be connected to these pins as an output device or a sensor can be connected to GPIO for obtaining some input which can be processed by the microcontroller. However, these pins should be made available by the board manufacturer so that they can be used by developers and prototypers. Arduino also has many GPIO pins available for users to program and interface. The pin number and location can be found on multiple diagrams available on the internet. You can see the different pins as well as ...

Uploading your first Dummy Program on Arduino

Image
Now, with everything setup, plug in your Arduino Board. If the drivers have been installed successfully, the PC should detect the board. Under the "Tools" option in the IDE, select the "Board" option and from the sub menu, select Arduino UNO as the board. Again, select "Port" option from the "Tools" menu and select the com port that is present there. In case of  multiple com ports, you will need to check in the Device manager to which port the arduino is attached to. Now, Simply Click on "New" under the "File" menu to open a new sketch. Alternatively, click on the "New" button below the toolbar. Don't worry about writing anything in your sketch. Let's first upload the blank sketch and check if the upload is successful or not. You can follow the video below to see a video guide for uploading the program. When you click on Upload, first an operation called compiling takes place. Compiling basically checks...

Getting Started with Arduino & Arduino IDE

Now, that you have Arduino IDE downloaded and installed, fire it up by clicking the icon that must have appeared on your desktop. When you first open the IDE, a window will open up that shows something called as a sketch. Every program that we write in the IDE is called a sketch. On the toolbar, you can see a variety of options similar to every windows program. You can click File   to open a menu that gives variety of options like "New", "Open", "Open Recent" etc. There are several other options that can be explored as you get familiar with the tool. Go ahead, and click on the "New" option in the File menu. This will open a new sketch with some default codes present in your sketch. Also, you can notice some buttons below the toolbar. These are shortcut buttons for : Verifying the Sketch Uploading the Sketch Create a new Sketch (What we did just now) Open an existing Sketch Save the current sketch The above options are self explanatory...

Arduino-A cheap and efficient Micro-controller Board

Image
Today, let me tell you about an efficient and low cost Microcontroller Board called Arduino. Some of the salient features of Arduino are : Microcontroller: ATmega328. Operating Voltage: 5V. Input Voltage (recommended): 7-12V. Input Voltage (limits): 6-20V. Digital I/O Pins: 14 (of which 6 provide PWM output) Analog Input Pins: 6 Now, A micro-controller is basically a small chip that has a processing element, memory elements as well as different peripherals on a single chip. We generally program the micro-controller by writing instructions either in assembly language or Embedded C, compiling that program and then burning the program on the micro-controller so that we can observe our results. Now, learning these languages in itself is a big task. Then, we additionally need a programmer to transfer the programming file onto the micro-controller. We also require some GPIO(General Purpose Input Output) pins so that we can interact with the Micro-controller. Arduino i...