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

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Recently uploaded (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

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 это не только программное обеспечение, но и аппаратная часть. И для нас как