SlideShare a Scribd company logo
1 of 68
IOT FROM JAVA
PERSPECTIVE
HELLO!
I am Dmytro Panin
Java Senior Developer &
Architect at Levi9.
Agenda
▸ What’s IoT?
▸ MCU -> Arduino -> RPi
▸ Pi4J library
▹ GPIO
▹ PWM
▸ Development flow
▸ Demo
▸ Q&A
What’s IoT?No one knows exactly :(
IoT is a buzzword
“It summed up an important insight—one
that 10 years later, after the Internet of
Things has become the title of everything
from an article in Scientific American to
the name of a European Union conference,
is still often misunderstood.
Kevin Ashton
“IoT - The infrastructure of the
information society.
Global Standards Initiative
on Internet of Things
Mobile phone
So, is this IoT?
PC
What about this?
Smart devices
The heart of IoT
Types of IoT devices
Smart
devices
Phones PCs
6,400,000,000
Approximate number of IoT
devices worldwide in 2016
“640K ought to be enough
for anybody
Bill Gates
Number of IoT devices in 2020
What’s below software?
Microcontroller
Self contained system
▸Microprocessor
▸Read only memory
▸Random access memory
▸Input / output
ATtiny2313
Characteristics
▸Processor: 20 Mhz
▸Flash: 2KB
▸SRAM: 128B
▸EEPROM: 128B
LedCube 3x3x3
ATmega32
Characteristics
▸Processor: 16 Mhz
▸Flash: 32KB
▸SRAM: 2KB
▸EEPROM: 1KB
LedCube 5x5x5
Resolution
Hard to kick off - software developers
aren’t happy
▸Tinkering is required
▸Additional components
▸Fuse programming
▸Programmer device
▸Hard to debug
“Arduino is an open-source
electronics platform based on easy-
to-use hardware and software.
Arduino UNO
Is a microcontroller board
based on the ATmega328P. It
has a 16 MHz quartz crystal, a
USB connection, a power jack.
Arduino Software (IDE)
▸Open source
▸Programming in C
▸Output to console
The IDE makes it easy to write
code and upload it to the
board. It runs on Windows,
Mac OS X, and Linux.
Resolution
Easy to start - software developers are happy
▸Many tutorials
▸Strong community
▸No configuration required
▸Upload firmware via USB
Are Java devs happy?
Raspberry Pi
Based on SoC (System on Chip)
Is a series of credit card-sized
single-board computers.
What it has on board?
HDMI
Any display that supports this
technology can be connected to
RPi and work as a PC.
USB
Keyboard, mouse, WiFi dongle,
Bluetooth, RFID readers, Flash
drives...
Networking
Some models have: WiFi,
Bluetooth, Ethernet on board.
GPIO
General-purpose input/output. Is
used to communicate with
various sensors or displaying
status.
Raspberry Pi zero
Characteristics
▸Processor: 1GHz
▸RAM: 512MB
▸Micro-SD card slot
▸Mini-HDMI
▸Micro-USB sockets for data
and power
▸65mm x 30mm x 5mm
Raspberry Pi 3
Characteristics
▸Processor: 1.2GHz x 4
▸RAM: 1GB
▸Micro-SD card slot
▸Full HDMI port
▸Ethernet port
▸4 USB ports
▸802.11n Wireless LAN
▸Bluetooth 4.1 + BLE
Supported Operating Systems
Official
▸Raspbian - based on
Debian (+ lite version)
Third party
▸Ubuntu MATE
▸Snappy Ubuntu core
▸Windows 10 IoT Core
▸RISC OS
How to develop Java apps?
for Raspberry Pi
Pi4J
Characteristics
▸ GPIO General Purpose I/O
▸ PWM Pulse-Width
Modulation
▸ Access system information
▸ I2C Inter-Integrated Circuit
▸ SPI Serial Peripheral
Interface
▸ UART RS232
GPIO (General-purpose input/output )
These pins are a physical interface
between the board and the outside world.
At the simplest level, you can think of
them as switches that you can turn on or
off (input) or that the Pi can turn on or off
(output).
Pi4J: Change state of a pin
In this example we will change
the pin’s state in order to light
the LED.
Pi4J: Change state of a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
outputPin.setState(PinState.HIGH);
Thread.sleep(1000);
outputPin.toggle();
gpio.shutdown();
Pi4J: Change state of a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
outputPin.setState(PinState.HIGH);
Thread.sleep(1000);
outputPin.toggle();
gpio.shutdown();
Pi4J: Change state of a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
outputPin.setState(PinState.HIGH);
Thread.sleep(1000);
outputPin.toggle();
gpio.shutdown();
Pi4J: Change state of a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
outputPin.setState(PinState.HIGH);
Thread.sleep(1000);
outputPin.toggle();
gpio.shutdown();
Pi4J: Change state of a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
outputPin.setState(PinState.HIGH);
Thread.sleep(1000);
outputPin.toggle();
gpio.shutdown();
Pi4J: Listen to a pin
In this example the pin is
provisioned as an input, so we
could process when the button
is pushed or released.
Pi4J: Listen to a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
inputPin.addListener((GpioPinListenerDigital)(event) -> {
if (event.getState().isLow()) {
System.out.println("Button is pressed");
} else {
System.out.println("Button is released");
}
});
gpio.shutdown();
Pi4J: Listen to a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
inputPin.addListener((GpioPinListenerDigital)(event) -> {
if (event.getState().isLow()) {
System.out.println("Button is pressed");
} else {
System.out.println("Button is released");
}
});
gpio.shutdown();
Pi4J: Listen to a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
inputPin.addListener((GpioPinListenerDigital)(event) -> {
if (event.getState().isLow()) {
System.out.println("Button is pressed");
} else {
System.out.println("Button is released");
}
});
gpio.shutdown();
Pi4J: Listen to a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
inputPin.addListener((GpioPinListenerDigital)(event) -> {
if (event.getState().isLow()) {
System.out.println("Button is pressed");
} else {
System.out.println("Button is released");
}
});
gpio.shutdown();
Pi4J: Listen to a pin
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
inputPin.addListener((GpioPinListenerDigital)(event) -> {
if (event.getState().isLow()) {
System.out.println("Button is pressed");
} else {
System.out.println("Button is released");
}
});
gpio.shutdown();
Pull-up resistor
Pre logic gate
Pull-down resistor
Pi4J: Pin state toggler
In this example the pin’s state
toggles in accordance with the
button.
Pi4J: Pin state toggler
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
inputPin.addTrigger(
new GpioToggleStateTrigger(PinState.LOW, outputPin));
gpio.shutdown();
Pi4J: Pin state toggler
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
inputPin.addTrigger(
new GpioToggleStateTrigger(PinState.LOW, outputPin));
gpio.shutdown();
Pi4J: Pin state toggler
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
inputPin.addTrigger(
new GpioToggleStateTrigger(PinState.LOW, outputPin));
gpio.shutdown();
Pi4J: Pin state toggler
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
inputPin.addTrigger(
new GpioToggleStateTrigger(PinState.LOW, outputPin));
gpio.shutdown();
Pi4J: Pin state toggler
GpioController gpio = GpioFactory.getInstance();
GpioPinDigitalInput inputPin =
gpio.provisionDigitalInputPin(RaspiPin.GPIO_03,
PinPullResistance.PULL_UP);
GpioPinDigitalOutput outputPin =
gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04,
PinState.LOW);
inputPin.addTrigger(
new GpioToggleStateTrigger(PinState.LOW, outputPin));
gpio.shutdown();
PWM (Pulse-Width Modulation)
Pulse Width Modulation, or
PWM, is a technique for getting
analog results with digital
means. Digital control is used to
create a square wave, a signal
switched between on and off.
Pi4J: Software PWM
GpioController gpio = GpioFactory.getInstance();
GpioPinPwmOutput pinPwmOutput =
gpio.provisionSoftPwmOutputPin(RaspiPin.GPIO_04);
pinPwmOutput.setPwmRange(100);
pinPwmOutput.setPwm(50);
Thread.sleep(15000);
gpio.shutdown();
Pi4J: Software PWM
GpioController gpio = GpioFactory.getInstance();
GpioPinPwmOutput pinPwmOutput =
gpio.provisionSoftPwmOutputPin(RaspiPin.GPIO_04);
pinPwmOutput.setPwmRange(100);
pinPwmOutput.setPwm(50);
Thread.sleep(15000);
gpio.shutdown();
Pi4J: Software PWM
GpioController gpio = GpioFactory.getInstance();
GpioPinPwmOutput pinPwmOutput =
gpio.provisionSoftPwmOutputPin(RaspiPin.GPIO_04);
pinPwmOutput.setPwmRange(100);
pinPwmOutput.setPwm(50);
Thread.sleep(15000);
gpio.shutdown();
Pi4J: Software PWM
GpioController gpio = GpioFactory.getInstance();
GpioPinPwmOutput pinPwmOutput =
gpio.provisionSoftPwmOutputPin(RaspiPin.GPIO_04);
pinPwmOutput.setPwmRange(100);
pinPwmOutput.setPwm(50);
Thread.sleep(15000);
gpio.shutdown();
Pi4J: Hardware PWM
GpioController gpio = GpioFactory.getInstance();
GpioPinPwmOutput pinPwmOutput =
gpio.provisionPwmOutputPin(RaspiPin.GPIO_01);
pinPwmOutput.setPwmRange(100);
pinPwmOutput.setPwm(50);
Thread.sleep(15000);
gpio.shutdown();
Development flow?
for Raspberry Pi
BlueJ
BlueJ is a development
environment that allows you
to develop Java programs
quickly and easily.
BlueJ
A free Java
Development
Environment designed
for beginners, used by
millions worldwide.
Executing during development
Compile code
Executing during development
Compile code Copy via SCP
Executing during development
Compile code Copy via SCP
Execute on
PRi
Executing during development
Compile code Copy via SCP
Execute on
PRi
One click action
Demo
Jenkins traffic light
Virtual IoT
Controlling a real world IoT
traffic light via a “virtual” IoT
device from inside of a
game. The devices are
connected via TCP/IP.
Virtual IoT
Vice versa. Controlling a
“virtual” IoT device located
inside of a game using a real
world IoT traffic light.
The devices have a “both
ways” connection.
THANKS!
Contacts:
https://www.linkedin.com/in/DmytroPanin/
dmytro.panin@gmail.com
Slides and code:
https://www.slideshare.net/DmytroPanin/
https://github.com/dr-mod/traffic-light/
Links
http://pi4j.com/
https://www.raspberrypi.org/
https://www.arduino.cc/
IoT from Java perspective

More Related Content

Viewers also liked

Windows 10 iot core dot net notts - 27-07-15
Windows 10 iot core   dot net notts - 27-07-15Windows 10 iot core   dot net notts - 27-07-15
Windows 10 iot core dot net notts - 27-07-15Peter Gallagher
 
Internet of Things
Internet of ThingsInternet of Things
Internet of ThingsParth Khiera
 
Internet Of Things Uses & Applications In Various Industries | IOT
Internet Of Things Uses & Applications In Various Industries | IOTInternet Of Things Uses & Applications In Various Industries | IOT
Internet Of Things Uses & Applications In Various Industries | IOTPixelCrayons
 
Internet of Things: The World Speaks
Internet of Things: The World SpeaksInternet of Things: The World Speaks
Internet of Things: The World SpeaksSimplify360
 
Insurance Industry Trends in 2015: #2 Mobility
Insurance Industry Trends in 2015: #2 Mobility Insurance Industry Trends in 2015: #2 Mobility
Insurance Industry Trends in 2015: #2 Mobility Euro IT Group
 
What Exactly Is The "Internet of Things"?
What Exactly Is The "Internet of Things"?What Exactly Is The "Internet of Things"?
What Exactly Is The "Internet of Things"?Postscapes
 
What exactly is the "Internet of Things"?
What exactly is the "Internet of Things"?What exactly is the "Internet of Things"?
What exactly is the "Internet of Things"?Dr. Mazlan Abbas
 
The many faces of IoT (Internet of Things) in Healthcare
The many faces of IoT (Internet of Things) in HealthcareThe many faces of IoT (Internet of Things) in Healthcare
The many faces of IoT (Internet of Things) in HealthcareStocker Partnership
 
5 questions about the IoT (Internet of Things)
5 questions about the IoT (Internet of Things) 5 questions about the IoT (Internet of Things)
5 questions about the IoT (Internet of Things) Deloitte United States
 
What is the Internet of Things?
What is the Internet of Things?What is the Internet of Things?
What is the Internet of Things?Felix Grovit
 
THE INTERNET OF THINGS
THE INTERNET OF THINGSTHE INTERNET OF THINGS
THE INTERNET OF THINGSRamana Reddy
 
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-gInternet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-gMohan Kumar G
 
Internet of Things
Internet of ThingsInternet of Things
Internet of ThingsVala Afshar
 

Viewers also liked (15)

Windows 10 iot core dot net notts - 27-07-15
Windows 10 iot core   dot net notts - 27-07-15Windows 10 iot core   dot net notts - 27-07-15
Windows 10 iot core dot net notts - 27-07-15
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
 
Internet Of Things
Internet Of ThingsInternet Of Things
Internet Of Things
 
Internet Of Things Uses & Applications In Various Industries | IOT
Internet Of Things Uses & Applications In Various Industries | IOTInternet Of Things Uses & Applications In Various Industries | IOT
Internet Of Things Uses & Applications In Various Industries | IOT
 
Internet of Things: The World Speaks
Internet of Things: The World SpeaksInternet of Things: The World Speaks
Internet of Things: The World Speaks
 
Insurance Industry Trends in 2015: #2 Mobility
Insurance Industry Trends in 2015: #2 Mobility Insurance Industry Trends in 2015: #2 Mobility
Insurance Industry Trends in 2015: #2 Mobility
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
 
What Exactly Is The "Internet of Things"?
What Exactly Is The "Internet of Things"?What Exactly Is The "Internet of Things"?
What Exactly Is The "Internet of Things"?
 
What exactly is the "Internet of Things"?
What exactly is the "Internet of Things"?What exactly is the "Internet of Things"?
What exactly is the "Internet of Things"?
 
The many faces of IoT (Internet of Things) in Healthcare
The many faces of IoT (Internet of Things) in HealthcareThe many faces of IoT (Internet of Things) in Healthcare
The many faces of IoT (Internet of Things) in Healthcare
 
5 questions about the IoT (Internet of Things)
5 questions about the IoT (Internet of Things) 5 questions about the IoT (Internet of Things)
5 questions about the IoT (Internet of Things)
 
What is the Internet of Things?
What is the Internet of Things?What is the Internet of Things?
What is the Internet of Things?
 
THE INTERNET OF THINGS
THE INTERNET OF THINGSTHE INTERNET OF THINGS
THE INTERNET OF THINGS
 
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-gInternet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
Internet-of-things- (IOT) - a-seminar - ppt - by- mohan-kumar-g
 
Internet of Things
Internet of ThingsInternet of Things
Internet of Things
 

Similar to IoT from java perspective

Hands-on Labs: Raspberry Pi 2 + Windows 10 IoT Core
Hands-on Labs: Raspberry Pi 2 + Windows 10 IoT CoreHands-on Labs: Raspberry Pi 2 + Windows 10 IoT Core
Hands-on Labs: Raspberry Pi 2 + Windows 10 IoT CoreAndri Yadi
 
Introduction to Raspberry Pi
Introduction to Raspberry PiIntroduction to Raspberry Pi
Introduction to Raspberry PiIsuru Jayarathne
 
Pre meetup intel® roadshow london
Pre meetup intel® roadshow londonPre meetup intel® roadshow london
Pre meetup intel® roadshow londonHugo Espinosa
 
Raspberry pi technical documentation
Raspberry pi technical documentationRaspberry pi technical documentation
Raspberry pi technical documentationGR Techno Solutions
 
Internet of things aktu lab file
Internet of things  aktu lab fileInternet of things  aktu lab file
Internet of things aktu lab fileNitesh Dubey
 
Raspberry Pi - Unlocking New Ideas for Your Library
Raspberry Pi - Unlocking New Ideas for Your LibraryRaspberry Pi - Unlocking New Ideas for Your Library
Raspberry Pi - Unlocking New Ideas for Your LibraryBrian Pichman
 
Presentation on Raspberry Pi by Sazzad H. IIUC
Presentation on Raspberry Pi by Sazzad H. IIUCPresentation on Raspberry Pi by Sazzad H. IIUC
Presentation on Raspberry Pi by Sazzad H. IIUCshssn7
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlPradip Bhandari
 
Hack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGSHack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGSDevFest DC
 
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi [Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi Tomomi Imura
 
Raspberry Pi GPIO Tutorial - Make Your Own Game Console
Raspberry Pi GPIO Tutorial - Make Your Own Game ConsoleRaspberry Pi GPIO Tutorial - Make Your Own Game Console
Raspberry Pi GPIO Tutorial - Make Your Own Game ConsoleRICELEEIO
 
Raspberry Pi Introductory Lecture
Raspberry Pi Introductory LectureRaspberry Pi Introductory Lecture
Raspberry Pi Introductory LectureSyed Umaid Ahmed
 
Advanced view of projects raspberry pi list raspberry pi projects
Advanced view of projects raspberry pi list   raspberry pi projectsAdvanced view of projects raspberry pi list   raspberry pi projects
Advanced view of projects raspberry pi list raspberry pi projectsWiseNaeem
 
Raspberry-Pi GPIO
Raspberry-Pi GPIORaspberry-Pi GPIO
Raspberry-Pi GPIOSajib Sen
 
introduction to Raspberry pi
introduction to Raspberry pi introduction to Raspberry pi
introduction to Raspberry pi Mohamed Ali May
 

Similar to IoT from java perspective (20)

Hands-on Labs: Raspberry Pi 2 + Windows 10 IoT Core
Hands-on Labs: Raspberry Pi 2 + Windows 10 IoT CoreHands-on Labs: Raspberry Pi 2 + Windows 10 IoT Core
Hands-on Labs: Raspberry Pi 2 + Windows 10 IoT Core
 
Introduction to Raspberry Pi
Introduction to Raspberry PiIntroduction to Raspberry Pi
Introduction to Raspberry Pi
 
Pre meetup intel® roadshow london
Pre meetup intel® roadshow londonPre meetup intel® roadshow london
Pre meetup intel® roadshow london
 
Raspberry pi technical documentation
Raspberry pi technical documentationRaspberry pi technical documentation
Raspberry pi technical documentation
 
Internet of things aktu lab file
Internet of things  aktu lab fileInternet of things  aktu lab file
Internet of things aktu lab file
 
Raspberry pi
Raspberry pi Raspberry pi
Raspberry pi
 
Raspberry pi and pi4j
Raspberry pi and pi4jRaspberry pi and pi4j
Raspberry pi and pi4j
 
Raspberry Pi - Unlocking New Ideas for Your Library
Raspberry Pi - Unlocking New Ideas for Your LibraryRaspberry Pi - Unlocking New Ideas for Your Library
Raspberry Pi - Unlocking New Ideas for Your Library
 
Raspberry Pi
Raspberry PiRaspberry Pi
Raspberry Pi
 
Presentation on Raspberry Pi by Sazzad H. IIUC
Presentation on Raspberry Pi by Sazzad H. IIUCPresentation on Raspberry Pi by Sazzad H. IIUC
Presentation on Raspberry Pi by Sazzad H. IIUC
 
Introduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin ControlIntroduction To Raspberry Pi with Simple GPIO pin Control
Introduction To Raspberry Pi with Simple GPIO pin Control
 
Hack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGSHack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGS
 
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi [Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
 
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev KitНачало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
 
Raspberry Pi GPIO Tutorial - Make Your Own Game Console
Raspberry Pi GPIO Tutorial - Make Your Own Game ConsoleRaspberry Pi GPIO Tutorial - Make Your Own Game Console
Raspberry Pi GPIO Tutorial - Make Your Own Game Console
 
Raspberry Pi Introductory Lecture
Raspberry Pi Introductory LectureRaspberry Pi Introductory Lecture
Raspberry Pi Introductory Lecture
 
Advanced view of projects raspberry pi list raspberry pi projects
Advanced view of projects raspberry pi list   raspberry pi projectsAdvanced view of projects raspberry pi list   raspberry pi projects
Advanced view of projects raspberry pi list raspberry pi projects
 
Raspbeery PI IoT
Raspbeery PI IoTRaspbeery PI IoT
Raspbeery PI IoT
 
Raspberry-Pi GPIO
Raspberry-Pi GPIORaspberry-Pi GPIO
Raspberry-Pi GPIO
 
introduction to Raspberry pi
introduction to Raspberry pi introduction to Raspberry pi
introduction to Raspberry pi
 

Recently uploaded

SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 

Recently uploaded (20)

SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 

IoT from java perspective

  • 2. HELLO! I am Dmytro Panin Java Senior Developer & Architect at Levi9.
  • 3. Agenda ▸ What’s IoT? ▸ MCU -> Arduino -> RPi ▸ Pi4J library ▹ GPIO ▹ PWM ▸ Development flow ▸ Demo ▸ Q&A
  • 4. What’s IoT?No one knows exactly :( IoT is a buzzword
  • 5. “It summed up an important insight—one that 10 years later, after the Internet of Things has become the title of everything from an article in Scientific American to the name of a European Union conference, is still often misunderstood. Kevin Ashton
  • 6. “IoT - The infrastructure of the information society. Global Standards Initiative on Internet of Things
  • 10. Types of IoT devices Smart devices Phones PCs
  • 11. 6,400,000,000 Approximate number of IoT devices worldwide in 2016
  • 12. “640K ought to be enough for anybody Bill Gates
  • 13. Number of IoT devices in 2020
  • 15. Microcontroller Self contained system ▸Microprocessor ▸Read only memory ▸Random access memory ▸Input / output
  • 16. ATtiny2313 Characteristics ▸Processor: 20 Mhz ▸Flash: 2KB ▸SRAM: 128B ▸EEPROM: 128B LedCube 3x3x3
  • 17. ATmega32 Characteristics ▸Processor: 16 Mhz ▸Flash: 32KB ▸SRAM: 2KB ▸EEPROM: 1KB LedCube 5x5x5
  • 18. Resolution Hard to kick off - software developers aren’t happy ▸Tinkering is required ▸Additional components ▸Fuse programming ▸Programmer device ▸Hard to debug
  • 19. “Arduino is an open-source electronics platform based on easy- to-use hardware and software.
  • 20. Arduino UNO Is a microcontroller board based on the ATmega328P. It has a 16 MHz quartz crystal, a USB connection, a power jack.
  • 21. Arduino Software (IDE) ▸Open source ▸Programming in C ▸Output to console The IDE makes it easy to write code and upload it to the board. It runs on Windows, Mac OS X, and Linux.
  • 22. Resolution Easy to start - software developers are happy ▸Many tutorials ▸Strong community ▸No configuration required ▸Upload firmware via USB
  • 23. Are Java devs happy?
  • 24. Raspberry Pi Based on SoC (System on Chip) Is a series of credit card-sized single-board computers.
  • 25. What it has on board? HDMI Any display that supports this technology can be connected to RPi and work as a PC. USB Keyboard, mouse, WiFi dongle, Bluetooth, RFID readers, Flash drives... Networking Some models have: WiFi, Bluetooth, Ethernet on board. GPIO General-purpose input/output. Is used to communicate with various sensors or displaying status.
  • 26. Raspberry Pi zero Characteristics ▸Processor: 1GHz ▸RAM: 512MB ▸Micro-SD card slot ▸Mini-HDMI ▸Micro-USB sockets for data and power ▸65mm x 30mm x 5mm
  • 27. Raspberry Pi 3 Characteristics ▸Processor: 1.2GHz x 4 ▸RAM: 1GB ▸Micro-SD card slot ▸Full HDMI port ▸Ethernet port ▸4 USB ports ▸802.11n Wireless LAN ▸Bluetooth 4.1 + BLE
  • 28. Supported Operating Systems Official ▸Raspbian - based on Debian (+ lite version) Third party ▸Ubuntu MATE ▸Snappy Ubuntu core ▸Windows 10 IoT Core ▸RISC OS
  • 29. How to develop Java apps? for Raspberry Pi
  • 30. Pi4J Characteristics ▸ GPIO General Purpose I/O ▸ PWM Pulse-Width Modulation ▸ Access system information ▸ I2C Inter-Integrated Circuit ▸ SPI Serial Peripheral Interface ▸ UART RS232
  • 31. GPIO (General-purpose input/output ) These pins are a physical interface between the board and the outside world. At the simplest level, you can think of them as switches that you can turn on or off (input) or that the Pi can turn on or off (output).
  • 32. Pi4J: Change state of a pin In this example we will change the pin’s state in order to light the LED.
  • 33. Pi4J: Change state of a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); outputPin.setState(PinState.HIGH); Thread.sleep(1000); outputPin.toggle(); gpio.shutdown();
  • 34. Pi4J: Change state of a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); outputPin.setState(PinState.HIGH); Thread.sleep(1000); outputPin.toggle(); gpio.shutdown();
  • 35. Pi4J: Change state of a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); outputPin.setState(PinState.HIGH); Thread.sleep(1000); outputPin.toggle(); gpio.shutdown();
  • 36. Pi4J: Change state of a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); outputPin.setState(PinState.HIGH); Thread.sleep(1000); outputPin.toggle(); gpio.shutdown();
  • 37. Pi4J: Change state of a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); outputPin.setState(PinState.HIGH); Thread.sleep(1000); outputPin.toggle(); gpio.shutdown();
  • 38. Pi4J: Listen to a pin In this example the pin is provisioned as an input, so we could process when the button is pushed or released.
  • 39. Pi4J: Listen to a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); inputPin.addListener((GpioPinListenerDigital)(event) -> { if (event.getState().isLow()) { System.out.println("Button is pressed"); } else { System.out.println("Button is released"); } }); gpio.shutdown();
  • 40. Pi4J: Listen to a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); inputPin.addListener((GpioPinListenerDigital)(event) -> { if (event.getState().isLow()) { System.out.println("Button is pressed"); } else { System.out.println("Button is released"); } }); gpio.shutdown();
  • 41. Pi4J: Listen to a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); inputPin.addListener((GpioPinListenerDigital)(event) -> { if (event.getState().isLow()) { System.out.println("Button is pressed"); } else { System.out.println("Button is released"); } }); gpio.shutdown();
  • 42. Pi4J: Listen to a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); inputPin.addListener((GpioPinListenerDigital)(event) -> { if (event.getState().isLow()) { System.out.println("Button is pressed"); } else { System.out.println("Button is released"); } }); gpio.shutdown();
  • 43. Pi4J: Listen to a pin GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); inputPin.addListener((GpioPinListenerDigital)(event) -> { if (event.getState().isLow()) { System.out.println("Button is pressed"); } else { System.out.println("Button is released"); } }); gpio.shutdown();
  • 44. Pull-up resistor Pre logic gate Pull-down resistor
  • 45. Pi4J: Pin state toggler In this example the pin’s state toggles in accordance with the button.
  • 46. Pi4J: Pin state toggler GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); inputPin.addTrigger( new GpioToggleStateTrigger(PinState.LOW, outputPin)); gpio.shutdown();
  • 47. Pi4J: Pin state toggler GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); inputPin.addTrigger( new GpioToggleStateTrigger(PinState.LOW, outputPin)); gpio.shutdown();
  • 48. Pi4J: Pin state toggler GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); inputPin.addTrigger( new GpioToggleStateTrigger(PinState.LOW, outputPin)); gpio.shutdown();
  • 49. Pi4J: Pin state toggler GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); inputPin.addTrigger( new GpioToggleStateTrigger(PinState.LOW, outputPin)); gpio.shutdown();
  • 50. Pi4J: Pin state toggler GpioController gpio = GpioFactory.getInstance(); GpioPinDigitalInput inputPin = gpio.provisionDigitalInputPin(RaspiPin.GPIO_03, PinPullResistance.PULL_UP); GpioPinDigitalOutput outputPin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_04, PinState.LOW); inputPin.addTrigger( new GpioToggleStateTrigger(PinState.LOW, outputPin)); gpio.shutdown();
  • 51. PWM (Pulse-Width Modulation) Pulse Width Modulation, or PWM, is a technique for getting analog results with digital means. Digital control is used to create a square wave, a signal switched between on and off.
  • 52. Pi4J: Software PWM GpioController gpio = GpioFactory.getInstance(); GpioPinPwmOutput pinPwmOutput = gpio.provisionSoftPwmOutputPin(RaspiPin.GPIO_04); pinPwmOutput.setPwmRange(100); pinPwmOutput.setPwm(50); Thread.sleep(15000); gpio.shutdown();
  • 53. Pi4J: Software PWM GpioController gpio = GpioFactory.getInstance(); GpioPinPwmOutput pinPwmOutput = gpio.provisionSoftPwmOutputPin(RaspiPin.GPIO_04); pinPwmOutput.setPwmRange(100); pinPwmOutput.setPwm(50); Thread.sleep(15000); gpio.shutdown();
  • 54. Pi4J: Software PWM GpioController gpio = GpioFactory.getInstance(); GpioPinPwmOutput pinPwmOutput = gpio.provisionSoftPwmOutputPin(RaspiPin.GPIO_04); pinPwmOutput.setPwmRange(100); pinPwmOutput.setPwm(50); Thread.sleep(15000); gpio.shutdown();
  • 55. Pi4J: Software PWM GpioController gpio = GpioFactory.getInstance(); GpioPinPwmOutput pinPwmOutput = gpio.provisionSoftPwmOutputPin(RaspiPin.GPIO_04); pinPwmOutput.setPwmRange(100); pinPwmOutput.setPwm(50); Thread.sleep(15000); gpio.shutdown();
  • 56. Pi4J: Hardware PWM GpioController gpio = GpioFactory.getInstance(); GpioPinPwmOutput pinPwmOutput = gpio.provisionPwmOutputPin(RaspiPin.GPIO_01); pinPwmOutput.setPwmRange(100); pinPwmOutput.setPwm(50); Thread.sleep(15000); gpio.shutdown();
  • 58. BlueJ BlueJ is a development environment that allows you to develop Java programs quickly and easily.
  • 59. BlueJ A free Java Development Environment designed for beginners, used by millions worldwide.
  • 62. Executing during development Compile code Copy via SCP Execute on PRi
  • 63. Executing during development Compile code Copy via SCP Execute on PRi One click action
  • 65. Virtual IoT Controlling a real world IoT traffic light via a “virtual” IoT device from inside of a game. The devices are connected via TCP/IP.
  • 66. Virtual IoT Vice versa. Controlling a “virtual” IoT device located inside of a game using a real world IoT traffic light. The devices have a “both ways” connection.

Editor's Notes

  1. Добрый день, я очень рад видеть что аббревиатура IoT не оставляет равнодушными людей в Java сообществе и сегодня на JavaDay у нас есть свой поток / бастион который называется House of IoT. Так как идея IoT распространяется и внедряется в наши жизни, людей вокруг нас и нам пора ближе с ней знакомится. Сегодня я хотел бы хотел поговорить о том что понимают под аббревиатурой IoT и как мы как Java разработчики можем внести свой вклад в эту относительно молодую отрасль.
  2. Аббревиатуру IoT мы слышим много и часто в IT статьях в рекламах краудфайнд продуктов Кто-то понимает под IoT: концепцию умного дома жалюзи которые открываются автоматически кофеварка которая заваривает кофе в момент когда вы встаете с постели Термостаты Причем все эти устройства не обязательно подключены к интернету. Умный город Дорожные знаки которые изменяются в соответствии с ситуации на дорогах Машина к машине HTTP, JSON, MQTT через облако или использование TCP/IP стека напрямую Фитнес трекер который общается только с мобильным телефоном, но не с интернетом.
  3. Kevin Ashton являющийся отцом термина Интернет Вещей впервые использовал его в 1999 году для описания вещей сенсоров которые общались бы при помощи технологии RFID. Кто знает что такое RFID? И как он сам говорит что он не владеет термином IoT
  4. Глобальная инициатива стандартов по интеренету вещей
  5. Полив растения опираясь на прогноз погоды Серия автомобилей которая отправляет показатели датчиков на сервер Трекеры на домашних животных Управление освещением Проложить маршрут к интересующему вас товару Хрюшка, копилка которая знает сколько внутри хранится денег и отправляет эту информацию кому нужно, в налоговую например Рассказать про браслет
  6. Мы понимаем что IoT это не только программное обеспечение, но и аппаратная часть. И для нас как