L'evoluzione dei dispositivi IoT e la loro integrazione con le App mobile sono in rapida crescita. In questo talk esploreremo il Bluetooth Low Energy, una tecnologia di comunicazione cruciale nell'ambito mobile. Imparerai le basi di questa tecnologia, come costruire un prototipo utilizzando Arduino ed a sviluppare un'app Android che comunica tramite BLE. Questo talk, pratico ed intuitivo, è pensato per essere accessibile a tutti, senza necessità di competenze avanzate.
Smartphones, tablets, TVs, cars and smartwatches: Android is everywhere enabling users and developers with rich set of applications, libraries and services. Android Things brings such a power to virtually any object, any “thing”: using a low-cost (yet powerful) board, developer can add intelligence and connectivity to home, industries, vehicles and even medical appliances. This presentation introduces practical concepts around the Android Things platform and how to have fun with it.
iOS Bluetooth Low Energy (BLE) Remote Robot InterfaceSteve Knodl
Presentation to Austin Texas Cocoa Coders meetup on the design of an iPad application using CoreBluetooth for the remote control of a Arduino controlled Woodpecker Toy lifting robot.
The debug process constitutes an important part in an app's development cycle. Knowing the (right) tools and techniques means you can optimizes time and therefore costs. In this session we will see a number of techniques to optimize debugging of iOS applications exploiting the power of Xcode, LLDB and other support tools.
Smartphones, tablets, TVs, cars and smartwatches: Android is everywhere enabling users and developers with rich set of applications, libraries and services. Android Things brings such a power to virtually any object, any “thing”: using a low-cost (yet powerful) board, developer can add intelligence and connectivity to home, industries, vehicles and even medical appliances. This presentation introduces practical concepts around the Android Things platform and how to have fun with it.
iOS Bluetooth Low Energy (BLE) Remote Robot InterfaceSteve Knodl
Presentation to Austin Texas Cocoa Coders meetup on the design of an iPad application using CoreBluetooth for the remote control of a Arduino controlled Woodpecker Toy lifting robot.
The debug process constitutes an important part in an app's development cycle. Knowing the (right) tools and techniques means you can optimizes time and therefore costs. In this session we will see a number of techniques to optimize debugging of iOS applications exploiting the power of Xcode, LLDB and other support tools.
A talk I gave to Hackware v0.7, v0.8, Hackers & Painters, NUS Hackers, One Maker Group and iOS Dev Scout to introduce the audience to basic Bluetooth Low Energy concepts followed by code explanations.
Part 1 of my presentation at Hackware v0.7 (Arduino and Android only) can be seen here. https://www.youtube.com/watch?v=pNnwXPatzjc
Part 2 (Raspberry Pi, iOS and BLE Sniffer) can be seen here. https://www.youtube.com/watch?v=UDNkrlfW9Sg
The code is available here. https://github.com/yeokm1/intro-to-ble
Everything About Bluetooth (淺談藍牙 4.0) - Central 篇Johnny Sung
講解 Bluetooth 的 GATT 的概念,並以 Android 實作
Example code:
Peripheral - BLE CPU Temp
https://github.com/j796160836/Ble-CPUTemp-Android
Central - BLE Temperature Receiver
https://github.com/j796160836/BleTemperatureReceiver-Android
Every wondered how to make your code physically interact with things in the real world? Got a home automation project in mind? In this presentation we will cover:
o) How to get started with Raspberry Pi and C#
o) The numerous sensors and actuators you can control
o) How to navigate basic electronics
o) Different interfaces and how to program them
o) Demonstrations of devices at work
o) Azure IoT Hub to control your code from the cloud
Microsoft's view of the Internet of Things (IoT) by Imran ShafqatAllied Consultants
Credits to Imran Shafqat, an x-colleague who presented this in the Allied Consultants office and then in MIC in Lahore
More IoT blogs on http://www.alliedc.com/blog/core-services/application-integration/iot/
Introduction to IoT
Real world use cases
IoT reference architecture using Azure
Demo using Intel Galileo Board and Azure
Designing scalable applications
IoT security considerations
Optimizing NN inference performance on Arm NEON and Vulkanax inc.
This talk starts with an overview of ailia SDK, then introduces optimization techniques for inferring neural networks at high speed in Arm environments. Based on our research for developing ailia SDK, we introduce the optimization for Arm CPU using NEON SIMD instructions and various optimal compute shader implementations for Arm Mali using Vulkan. In addition, we demonstrate how various machine learning models actually operate at high speed in Arm environments.
Easy2park - A smarter way to find a parking lotDaniele Davoli
This project was very interesting and involved many different coding languages (nodejs and Linq for the backend, SQL for the d.b., Java for the Android) and knowledge about Azure portal (very powerful but not so well documented because of its frequent changes and sometimes dispersed), Android Studio app developing, Beacons SDK.
The main aim of this project is to avoid the accident and death in the gas leakage explosion in house, hotels and industries. Domestically we use natural gas and it is very useful for burning purpose. If this gas is leaked in our kitchens, hotels or factories and not sensed in time, it may lead to fatal disaster, and may cause human and material loss. For this purpose we have developed “GAS LEAKAGE DETECTION SYSTEM”.
Development of a Low Cost, Reliable & Scalable Home Automation System.imtiyazEEE
The slide is based on construction of a home automation system that will remotely switch ON/OFF any household, industrial or official appliances connected to it, using Arduino UNO, application on a smartphone and visual status of the loads for the feedback.
Eclipse Edje: A Java API for MicrocontrollersMicroEJ
The Eclipse Edje project, initiated by MicroEJ, defines a standard high-level Java API for accessing hardware features delivered by 32-bit microcontrollers for using serial links, general purpose inputs/outputs, or digital/analog converters. MCUs are small, low-cost, low-power processors designed to run software in resource-constrained environments: low memory (typically KB), flash (typically MB) and frequency (typically MHz). MCUs are provided by silicon vendors along with evaluation kits and are typically the ideal vectors for large scale deployments of low-power and cost-effective IoT, embedded or wearable devices. Edje aims at unifying and easing the programming of apps for MCUs with the largely adopted Java language.
A talk I gave to Hackware v0.7, v0.8, Hackers & Painters, NUS Hackers, One Maker Group and iOS Dev Scout to introduce the audience to basic Bluetooth Low Energy concepts followed by code explanations.
Part 1 of my presentation at Hackware v0.7 (Arduino and Android only) can be seen here. https://www.youtube.com/watch?v=pNnwXPatzjc
Part 2 (Raspberry Pi, iOS and BLE Sniffer) can be seen here. https://www.youtube.com/watch?v=UDNkrlfW9Sg
The code is available here. https://github.com/yeokm1/intro-to-ble
Everything About Bluetooth (淺談藍牙 4.0) - Central 篇Johnny Sung
講解 Bluetooth 的 GATT 的概念,並以 Android 實作
Example code:
Peripheral - BLE CPU Temp
https://github.com/j796160836/Ble-CPUTemp-Android
Central - BLE Temperature Receiver
https://github.com/j796160836/BleTemperatureReceiver-Android
Every wondered how to make your code physically interact with things in the real world? Got a home automation project in mind? In this presentation we will cover:
o) How to get started with Raspberry Pi and C#
o) The numerous sensors and actuators you can control
o) How to navigate basic electronics
o) Different interfaces and how to program them
o) Demonstrations of devices at work
o) Azure IoT Hub to control your code from the cloud
Microsoft's view of the Internet of Things (IoT) by Imran ShafqatAllied Consultants
Credits to Imran Shafqat, an x-colleague who presented this in the Allied Consultants office and then in MIC in Lahore
More IoT blogs on http://www.alliedc.com/blog/core-services/application-integration/iot/
Introduction to IoT
Real world use cases
IoT reference architecture using Azure
Demo using Intel Galileo Board and Azure
Designing scalable applications
IoT security considerations
Optimizing NN inference performance on Arm NEON and Vulkanax inc.
This talk starts with an overview of ailia SDK, then introduces optimization techniques for inferring neural networks at high speed in Arm environments. Based on our research for developing ailia SDK, we introduce the optimization for Arm CPU using NEON SIMD instructions and various optimal compute shader implementations for Arm Mali using Vulkan. In addition, we demonstrate how various machine learning models actually operate at high speed in Arm environments.
Easy2park - A smarter way to find a parking lotDaniele Davoli
This project was very interesting and involved many different coding languages (nodejs and Linq for the backend, SQL for the d.b., Java for the Android) and knowledge about Azure portal (very powerful but not so well documented because of its frequent changes and sometimes dispersed), Android Studio app developing, Beacons SDK.
The main aim of this project is to avoid the accident and death in the gas leakage explosion in house, hotels and industries. Domestically we use natural gas and it is very useful for burning purpose. If this gas is leaked in our kitchens, hotels or factories and not sensed in time, it may lead to fatal disaster, and may cause human and material loss. For this purpose we have developed “GAS LEAKAGE DETECTION SYSTEM”.
Development of a Low Cost, Reliable & Scalable Home Automation System.imtiyazEEE
The slide is based on construction of a home automation system that will remotely switch ON/OFF any household, industrial or official appliances connected to it, using Arduino UNO, application on a smartphone and visual status of the loads for the feedback.
Eclipse Edje: A Java API for MicrocontrollersMicroEJ
The Eclipse Edje project, initiated by MicroEJ, defines a standard high-level Java API for accessing hardware features delivered by 32-bit microcontrollers for using serial links, general purpose inputs/outputs, or digital/analog converters. MCUs are small, low-cost, low-power processors designed to run software in resource-constrained environments: low memory (typically KB), flash (typically MB) and frequency (typically MHz). MCUs are provided by silicon vendors along with evaluation kits and are typically the ideal vectors for large scale deployments of low-power and cost-effective IoT, embedded or wearable devices. Edje aims at unifying and easing the programming of apps for MCUs with the largely adopted Java language.
Water scarcity is the lack of fresh water resources to meet the standard water demand. There are two type of water scarcity. One is physical. The other is economic water scarcity.
Welcome to WIPAC Monthly the magazine brought to you by the LinkedIn Group Water Industry Process Automation & Control.
In this month's edition, along with this month's industry news to celebrate the 13 years since the group was created we have articles including
A case study of the used of Advanced Process Control at the Wastewater Treatment works at Lleida in Spain
A look back on an article on smart wastewater networks in order to see how the industry has measured up in the interim around the adoption of Digital Transformation in the Water Industry.
Explore the innovative world of trenchless pipe repair with our comprehensive guide, "The Benefits and Techniques of Trenchless Pipe Repair." This document delves into the modern methods of repairing underground pipes without the need for extensive excavation, highlighting the numerous advantages and the latest techniques used in the industry.
Learn about the cost savings, reduced environmental impact, and minimal disruption associated with trenchless technology. Discover detailed explanations of popular techniques such as pipe bursting, cured-in-place pipe (CIPP) lining, and directional drilling. Understand how these methods can be applied to various types of infrastructure, from residential plumbing to large-scale municipal systems.
Ideal for homeowners, contractors, engineers, and anyone interested in modern plumbing solutions, this guide provides valuable insights into why trenchless pipe repair is becoming the preferred choice for pipe rehabilitation. Stay informed about the latest advancements and best practices in the field.
CFD Simulation of By-pass Flow in a HRSG module by R&R Consult.pptxR&R Consult
CFD analysis is incredibly effective at solving mysteries and improving the performance of complex systems!
Here's a great example: At a large natural gas-fired power plant, where they use waste heat to generate steam and energy, they were puzzled that their boiler wasn't producing as much steam as expected.
R&R and Tetra Engineering Group Inc. were asked to solve the issue with reduced steam production.
An inspection had shown that a significant amount of hot flue gas was bypassing the boiler tubes, where the heat was supposed to be transferred.
R&R Consult conducted a CFD analysis, which revealed that 6.3% of the flue gas was bypassing the boiler tubes without transferring heat. The analysis also showed that the flue gas was instead being directed along the sides of the boiler and between the modules that were supposed to capture the heat. This was the cause of the reduced performance.
Based on our results, Tetra Engineering installed covering plates to reduce the bypass flow. This improved the boiler's performance and increased electricity production.
It is always satisfying when we can help solve complex challenges like this. Do your systems also need a check-up or optimization? Give us a call!
Work done in cooperation with James Malloy and David Moelling from Tetra Engineering.
More examples of our work https://www.r-r-consult.dk/en/cases-en/
Final project report on grocery store management system..pdfKamal Acharya
In today’s fast-changing business environment, it’s extremely important to be able to respond to client needs in the most effective and timely manner. If your customers wish to see your business online and have instant access to your products or services.
Online Grocery Store is an e-commerce website, which retails various grocery products. This project allows viewing various products available enables registered users to purchase desired products instantly using Paytm, UPI payment processor (Instant Pay) and also can place order by using Cash on Delivery (Pay Later) option. This project provides an easy access to Administrators and Managers to view orders placed using Pay Later and Instant Pay options.
In order to develop an e-commerce website, a number of Technologies must be studied and understood. These include multi-tiered architecture, server and client-side scripting techniques, implementation technologies, programming language (such as PHP, HTML, CSS, JavaScript) and MySQL relational databases. This is a project with the objective to develop a basic website where a consumer is provided with a shopping cart website and also to know about the technologies used to develop such a website.
This document will discuss each of the underlying technologies to create and implement an e- commerce website.
5. What is Arduino?
Arduino is a global leader
in open-source hardware and software
It provides a platform for building electronic prototypes,
designed to be accessible to all
It promotes sharing and transparency,
creating a collaborative ecosystem
Large and active community (> 30M developers)
6. The magic within the tree
The board
Arduino Nano 33 BLE
The strip light
NeoPixel WS2812B
Addressable color LEDs
The power supply
12VDC
● Development board part of Nano series
● BLE feature
● Integrated sensors: acc, gyro, …
● I/O pins: digital and analog
7. Bluetooth Low Energy 101
BLE is a communication technology based on Bluetooth and
designed for energy efficiency
Client-Server architecture (Central-Peripheral)
Supported by a wide range of devices
Widely used in fitness trackers, smart home devices, industrial
sensors, and other IoT applications
Central
(Client)
Peripheral
(Server)
8. BLE: Services & Characteristics
A Peripheral organizes and exchanges data through:
● Services: a collection of related functionalities
● Characteristics: a specific piece of information within a Service
Effect
Characteristic
Color
Characteristic
Led
Service
A Characteristic:
● Has Read/Write/Notify properties
● Is identified by an UUID
● Has a fixed length (up to 20 bytes)
Represents the light effect
(0=Off, 1=Steady, etc.)
Represents the light color
(3 bytes: R,G,B)
9. BLE: Scan & Advertising
Scan: The action performed by a central to
find nearby peripherals
Advertising: A peripheral actively
announces its presence and share
information about its identity and features
Central
Peripheral
“Hi all! My name is
GDG-Arduino and
I offer Led Service feature.”
“Hey! Is anyone there?”
11. The sketch
A program written for an Arduino board
Two main parts:
● setup(): Initializes variables, features,
runs once at the beginning
● loop(): main code that runs repeatedly
Key tasks:
● Advertising to make device discoverable by the
Android app
● Provide LED strip control functionalities
12. Let’s begin!
#include <ArduinoBLE.h> // Arduino BLE Library
void setup() {
// BLE initialization
BLE.begin();
// Set advertised local name
BLE.setLocalName("GDG-Arduino");
13. Exposing features
BLEService ledService("1e03ce00-b8bc-4152-85e2-f096236d2833");
BLEByteCharacteristic ledEffectCharacteristic("...", BLERead | BLEWrite);
BLECharacteristic ledColorCharacteristic("...", BLERead | BLEWrite, 3);
ledService.addCharacteristic(ledEffectCharacteristic);
ledService.addCharacteristic(ledColorCharacteristic);
BLE.addService(ledService);
BLE.setAdvertisedService(ledService);
BLE.advertise();
Add Characteristics inside
the Led service
Services and Characteristics
declaration
Add Service
inside the peripheral BLE stack
Start advertising
UUID: randomically generated
Properties
14. Managing App requests (1/2)
void loop() {
BLEDevice central = BLE.central(); // listen for BLE central to connect
if (central) { // if a central is connected to peripheral
while (central.connected()) {
// Check ledEffect characteristic write
if (ledEffectCharacteristic.written()) {
ledEffect = ledEffectCharacteristic.value();
}
applyEffect(ledEffect);
}
}
15. ledStrip is an instance of the library
<Adafruit_NeoPixel.h> used to simplify the
control of NeoPixel RGB LED strips
Managing App requests (2/2)
void applyEffect(byte effect) {
…
switch(effect) {
case OFF_EFFECT:
ledStrip.clear();
ledStrip.show();
break;
case STEADY_EFFECT:
// Set all pixels to the specified color
for (int i = 0; i < LED_NUM; i++) {
ledStrip.setPixelColor(i, ledColor[0], ledColor[1], ledColor[2]);
}
ledStrip.show();
break;
…
21. BLE Scan Configuration
SCAN SETTINGS
SCAN FILTER ScanFilter.Builder().setServiceUuid(<UUID>)
ScanSettings.Builder()
.setScanMode(ScanSettings.SCAN_MODE_LOW_POWER)
You can also filter for:
MAC Address, device name, Manufacturer Data
There are 4 types of scan mode!
22. BLE Scan Callback
val scanCallback = object : ScanCallback() {
override fun onScanResult(callbackType: Int, result: ScanResult) {
with(result.device) {
Log.i(“ScanCallback”, "Found BLE device! Name: ${name ?: "Unnamed"},
address: $address")
}
}
}
SCAN RESULT
BLUETOOTH DEVICE
RSSI
SCAN RECORD
27. BLE Device Read Characteristic
fun readLEDColor(): Boolean? {
val service = mBluetoothGatt?.getService(LedUUID.LedService.uuid)
val characteristic =
service?.getCharacteristic(LedUUID.LedService.Color.uuid)
return mBluetoothGatt?.readCharacteristic(characteristic)
}
28. BLE Device Write Characteristic (1/2)
fun setLEDEffect(effectIndex: Int): Boolean? {
val service = mBluetoothGatt?.getService(LedUUID.LedService.uuid)
val characteristic =
service?.getCharacteristic(LedUUID.LedService.Effect.uuid)
val payload = byteArrayOf(effectIndex.toByte())
return sendCommand(characteristic, payload)
}
29. BLE Device Write Characteristic (2/2)
fun sendCommand(
characteristic: BluetoothGattCharacteristic?,
payload: ByteArray
): Boolean? {
characteristic?.let {
val result = mBluetoothGatt?.writeCharacteristic(
characteristic,
payload,
BluetoothGattCharacteristic.WRITE_TYPE_DEFAULT
)
val res = when (result) {
BluetoothStatusCodes.SUCCESS -> true
else -> false
}
return res
}
}
30. BLE Common Problems
1. Android can manage up to 32 BLE connections
2. You cannot run more than 5 scan in 30 sec.
3. You cannot connect a device directly without scan unless you have bonded it
4. You have to manage your BLE instance yourself, if you saturate it an 133 Error can occur
5. Before Scan or Connect you have to check yourself if BLE is on/off
(you can do it by using bleManager.adapter.isEnabled).
“FUN FACT”: This information is not present in the documentation 😁