Hardware, Firmware, and Software - The Three Bears of the Internet of Things

Internet of Things is a relatively new buzzword given to an embedded device that communicates over the internet. Sending sensor information to the internet, and receiving commands for actuators from the internet.

An Internet of Things systems has two parts: the hardware device containing various sensors and actuators that communicates with the cloud, and the server software that provides data transport and human machine interfacing. The Internet of Things requires the combination of three disciplines: hardware engineering, firmware engineering, and software engineering.

A Internet of Things device is a combination of hardware and firmware. Modern microcontrollers and off the shelf communication modules have made the hardware design much simpler ( Custom Software Development - Connecting your Product to the Cloud with Embedded Ethernet ). In addition, the hardware engineer has to design the devices power supply and sensor/actuator interface circuitry.

Firmware is software that executes within an embedded system. The firmware engineer develops the software that executes within the microcontroller in the Internet of Things device. Most modern firmware is written in C or C++. The resources (RAM and Flash) in a micrcontroller are extremely limited. A large part of firmware engineering is getting all the required functionality working using as little resources as possible. As mentioned in the blog link above, Internet of Things firmware development has been made much simpler with the introduction of silicon vender provided communication libraries. The firmware engineer designs the software and algorithms to read and interpret the sensor data and send it to the internet. On the flip side, the same software receives commands from the internet and translates them to actuator movements. The result is a Internet of Things device that can not only sense its environment, but change it.

Finally, the software engineer develops the server side software responsible for communicating with the Internet of Things device. Software engineers work with languages like: C#, Java, PHP, HTML, SQL. Every time the device wants to communicate it connects to a server over the internet. The server software collects the sensor data from the device and sends actuator commands to the device. In most cases, the software adds the sensor data from the device into some type of database. The software engineer is also responsible for the human interface, commonly done using web pages. The human interface provides a system for users to access data in the database and setup commands to be sent to the device.

Designing an Internet of Things systems is a unique endeavor requiring experience in hardware, firmware, and software engineering. If you are interested in developing a connected product or if you already have a product you would like to connect to the internet, contact me at Tecnova. We have hardware, firmware, and software engineers combined with manufacturing; all under one roof.

要查看或添加评论,请登录

Eric Gregori的更多文章

  • We are at the early stages of a paradigm shift similar to the move from assembly to high-level languages

    We are at the early stages of a paradigm shift similar to the move from assembly to high-level languages

    "The ability to ask the right questions and frame problems effectively will be more important than syntax knowledge."…

  • Work From Home Attributes

    Work From Home Attributes

    When asked why they want to be a software engineer, many students reply, "to work from home". As someone who has worked…

    7 条评论
  • High-Performance Ethernet Using Multiple Cores

    High-Performance Ethernet Using Multiple Cores

    A few years ago I had to solve a very challenging problem: FreeRTOS + LWIP running on ARM, custom DSP algorithm…

  • Google C++ Style Guide Summary

    Google C++ Style Guide Summary

    I put this together for some students and I thought it would be interesting to others. A code style guide is a guide to…

    7 条评论
  • Particle Filters for Robot Localization

    Particle Filters for Robot Localization

    1 条评论
  • PCIe

    PCIe

    A PCI Express* (PCIe*) ‘link’ comprises from one to 32 lanes. Links are expressed as x1, x2, x4, x8, x16, etc.

    3 条评论
  • Designing a Q&A Agent

    Designing a Q&A Agent

    I am writing this because as I transition from my lab position to my new job, I need to purge my brain :) I have found…

    1 条评论
  • Agent Smith

    Agent Smith

    In summer 2018, I started an amazing journey by writing a short paper, "Developing a Document Trained Automated…

  • Low-Cost Computer Vision

    Low-Cost Computer Vision

    Low-Cost computer vision has been the holy grail of the sensor community for many years. Image sensors (cameras) have…

    5 条评论
  • Why is it Still so Hard to Get Documented CMOS Sensors in Low Quantities?

    Why is it Still so Hard to Get Documented CMOS Sensors in Low Quantities?

    I have written over a dozen titles for this article trying to find one that did not sound like a complaint. I gave up…

    3 条评论

社区洞察

其他会员也浏览了