{"id":27161,"date":"2019-06-11T07:07:10","date_gmt":"2019-06-11T11:07:10","guid":{"rendered":"https:\/\/centricconsulting.com\/?p=27161"},"modified":"2023-08-18T13:19:29","modified_gmt":"2023-08-18T17:19:29","slug":"bluebeak-and-the-abcs-of-the-internet-of-things","status":"publish","type":"post","link":"https:\/\/centricconsulting.com\/blog\/bluebeak-and-the-abcs-of-the-internet-of-things\/","title":{"rendered":"BlueBeak and the ABCs of the Internet of Things"},"content":{"rendered":"
In the first blog<\/a> of this series, we demystified the Internet of Things or IoT for short. Consumer and industrial devices push insane amounts of data into the cloud every second.<\/p>\n IoT essentially boils down to managing data, more specifically:<\/strong><\/p>\n In this installment of the IoT series, we\u2019ll take a look at a specific IoT use case Centric Consulting created around our very own beacon technology framework called BlueBeak<\/a>. BlueBeak is a Cloud-based<\/a> framework that provides location-based services by leveraging Bluetooth beacons. Most people are familiar with Bluetooth, but beacons may be a new technology for some. Here\u2019s a brief primer on beacons.<\/p>\n We provide location-based services, through BlueBeak, to several industries, including healthcare and retail.<\/p>\n As mentioned above, IoT is all about data. BlueBeak is no different. Let\u2019s take a look under the hood and discover how BlueBeak manages data.<\/strong><\/p>\n The average Bluetooth beacon generates about 30B of data every second. This amount may not sound like a lot until you do the math for even a small deployment of just 100 beacons. In one day, those 100 beacons generate:<\/p>\n 30 Bytes x 60 seconds x 60 minutes x 24 hours x 100 beacons = 259,200,000 bytes<\/strong><\/p>\n Let\u2019s call it 250 Megabytes to make the math easier. And that\u2019s just the beacon data. Don\u2019t forget about all of the metadata accompanying those beacons. For BlueBeak, we chose AWS as our Cloud platform for several reasons, including, specifically, AWS Lightsail<\/a>. \u00a0Lightsail is an easy-to-use cloud platform that provides the infrastructure to host a website or application in the cloud.<\/p>\n A few lightweight instances in Lightsail are used to collect, process, and analyze real-time, streaming data so you can get timely insights and react quickly to new information. The raw data transmits from the beacons via MQTT, a lightweight messaging protocol for small sensors. \u00a0One instance performs some initial filtering on the incoming (beacon) data before passing it down the line for additional processing and storage.<\/p>\n Once the data flows through the Lightsail instance, BlueBeak responds based on the data. For example, in our retail application, the data identifies a customer is a few feet away from a beacon located near the Spa in a hotel. The business rules indicate for this scenario, the customer receives a notification on his or her smartphone offering 25% off a Spa session. We accomplish this with BlueBeak using web services, also running on Amazon Lightsail.<\/p>\n The web services and business rules hosted on Lightsail examine the data and take action (trigger a notification, for example) if necessary.<\/p>\n Once the data streams into BlueBeak via MQTT and the Lightsail instance activates any immediate business rules, we need to store that data for many reasons:<\/p>\n We have several choices when it comes to storing IoT data. Since we receive all our beacon data in JavaScript Object Notation (JSON) format, we use a NoSQL database. For our initial implementation of BlueBeak, we used Couchbase, an open-source, distributed NoSQL documented-oriented database. We store the data in Couchbase, where downstream data consumers can index and retrieve it for a Dashboard for display, Machine Learning<\/a> algorithms, or other insights. We added an in-memory cache called Redis<\/a> to optimize retrieval from Couchbase<\/a>. We conveniently host our Couchbase database in the same Lightsail infrastructure used by the web services mentioned in the Data Decisions section.<\/p>\n\n
Beacons are:<\/h3>\n
\n
Data Ingestion<\/h3>\n
Data Decisions<\/h3>\n
Data Storage<\/h3>\n
\n
Data Display<\/h3>\n