Vom Web ins IoT: Schnelleinstieg in Tooling und

Werbung
Vom Web ins IoT:
Schnelleinstieg in Tooling und Entwicklung
Webinar
11.05.2017
Andreas Schmidt
@aschmidt75
www.cassini.ag
2
11.05.17
www.thingforward.io
@thingforward
Agenda
§ Devices für das Internet der Dinge
§ Entwicklung für Web vs. Entwicklung für Embedded
§ Bestandteile einer Entwicklungsumgebung für IoT
§ Beispiel: PlatformIO
§ Testing, Continuous Integration
§ Fragen
3
11.05.17
© 2017 Digital Incubation & Growth GmbH
Agenda
§ Devices für das Internet der Dinge
§ Entwicklung für Web vs. Entwicklung für Embedded
§ Bestandteile einer Entwicklungsumgebung für IoT
§ Beispiel: PlatformIO
§ Testing, Continuous Integration
§ Fragen
4
11.05.17
© 2017 Digital Incubation & Growth GmbH
„X billion
devices
installed
by 20YY“
à Choose X, Y (*)
(*) X should be large enough, Y should be soon enough
(**) http://www.nextbigfuture.com/2016/09/2020-predictions-internet-of-things.html?platform=hootsuite
5
11.05.17
-
© 2017 Digital Incubation & Growth GmbH
„IDC believes that there are
approximately 18.5 million
software developers in the world
right now. Around 11 million of
those are pros.“ [2014]
https://adtmag.com/Blogs/WatersWorks/2014/01/Worldwide-Developer-Count.aspx
6
5/11/17
-
© 2017 Digital Incubation & Growth GmbH
#Embedded Engineers estimates
in 2010 ~ 880k
VDC Research, http://de.slideshare.net/vdcresearch/searching-for-the-total-size-of-the-embedded-software-engineering-market
7
11.05.17
-
© 2017 Digital Incubation & Growth GmbH
IoT: Breaking Free from Internet and Things
§ Studie von Vision Mobile / Intel
§ vmob.me/iot
§ Anzahl IoT Entwickler (geschätzt)
§ 2016: 1,5M
§ 2017: 2,2M
§ 2020: 4,5M
8
11.05.17
-
© 2017 Digital Incubation & Growth GmbH
9
11.05.17
©
- 2017 Digital Incubation & Growth GmbH
Phones and Tablets
§ 64 bit, multicore
§ 1-2 GHz
§ Gigabytes of RAM/Flash
§ Mobile OSes
10
11.05.17
©
- 2017 Digital Incubation & Growth GmbH
Single Board Computers (SBC), Mini PCs
§ 32 or 64 bit, partly multicore, ARM or Intel Atom
§ around 1GHz
§ 512MB – 2GB RAM
§ Some Gigabytes of SD Flash
§ Linux, Windows IoT
11
11.05.17
©
- 2017 Digital Incubation & Growth GmbH
Medium sized Microcontroller Units
§ 32 bit, single core, often ARM-based
§ 40-180MHz
§ ~32- ~512KB RAM
§ 1-4 MB Flash
§ Partly with Embedded OSes
12
11.05.17
©
- 2017 Digital Incubation & Growth GmbH
Small Microcontroller Units
§ 8 or 16 bit, single core
§ < 32MHz
§ <16KB RAM
§ No OS
13
11.05.17
©
- 2017 Digital Incubation & Growth GmbH
§
§
§
§
§
14
11.05.17
©
- 2017 Digital Incubation & Growth GmbH
Größe
Energieverbrauch
I/O Fähigkeiten
CPU Fähigkeiten
Netzwerk
Agenda
§ Devices für das Internet der Dinge
§ Entwicklung für Web vs. Entwicklung für Embedded
§ Bestandteile einer Entwicklungsumgebung für IoT
§ Beispiel: PlatformIO
§ Testing, Continuous Integration
§ Fragen
15
11.05.17
© 2017 Digital Incubation & Growth GmbH
Entwicklung für Web ó Entwicklung für IoT
§ Sprachen
§ Netzwerkfähigkeit
§ Protokolle
§ Architekturstile
§ Standardisiert vs. Chip-spezifisch
16
11.05.17
-
© 2017 Digital Incubation & Growth GmbH
Modern Software Development for the Web
17
11.05.17
-
© 2017 Digital Incubation & Growth GmbH
Modern Software Development for the Web
Vom Entwickler umgesetzt
< 10%
> 90%
Von anderen umgesetzt
18
11.05.17
-
© 2017 Digital Incubation & Growth GmbH
Modern Software Development for the Web
Geschäftslogik
Customization
Konfiguration
Frameworks
Libraries
!
Noch mehr Libraries
Runtimes
Operating
System
19
11.05.17
© 2017 Digital Incubation & Growth GmbH
Massive Standardisierungen
Current Software Development for Embedded
Vom Entwickler umgesetzt
> 70%
<30 %
Von anderen umgesetzt
20
11.05.17
-
© 2017 Digital Incubation & Growth GmbH
Agenda
§ Devices für das Internet der Dinge
§ Entwicklung für Web vs. Entwicklung für Embedded
§ Bestandteile einer Entwicklungsumgebung für IoT
§ Beispiel: PlatformIO
§ Testing, Continuous Integration
§ Fragen
21
11.05.17
© 2017 Digital Incubation & Growth GmbH
Softwareentwicklung für Embedded Systeme
§ Kompilierte Sprachen (C, C++)
§ Dynamische Skriptsprachen (MicroPython, Javascript, eLua)
22
11.05.17
-
Softwareentwicklung für Embedded Systeme
x86
ARM, Atmel, TI, Espressif, ...
§
§
§
§
23
11.05.17
-
Cross-Compiler
Buildsysteme
Uploader (Flash)
Debugging
Entwicklungsumgebungen für Embedded und IoT
§ Lokal installierte Entwicklungsumgebungen bzw. Compiler
Kommerziell (z.B. Keil, IAR) oder OSS (gcc)
§ Cloud-basierte Entwicklung
z.B. ARM mbed Developer IDE, Particle‘s Web IDE
§ Mischformen
z.B. Arduino IDE, PlatformIO, Eclipse Che
24
11.05.17
-
www.platformio.org
25
11.05.17
Digital Incubation & Growth GmbH
Eigenschaften
§ Open Source, frei für nicht-kommerzielle Entwicklung
§ Installiert Cross-Compiler und passende Toolchains
§ Support für 15 embedded platforms und >100s boards
§ IDE-friendly, integrierbar in viele IDEs
§ Pfad zu professioneller Entwicklung
(IDE, testing, boards, remote management, etc.)
26
11.05.17
Digital Incubation & Growth GmbH
Agenda
§ Devices für das Internet der Dinge
§ Entwicklung für Web vs. Entwicklung für Embedded
§ Bestandteile einer Entwicklungsumgebung für IoT
§ Beispiel: PlatformIO
§ Testing, Continuous Integration
§ Fragen
27
11.05.17
© 2017 Digital Incubation & Growth GmbH
Testing
§ Unit-Tests (C/C++ Code Module)
mit einem Unit-Testing Framework, z.B. Unity
§ Testing auf Dev-Notebook/CI-Server
§ Testing auf Device
§ Testing auf CI-Hardware:
Remote Flashing und Remote Testing
28
11.05.17
-
Continuous Integration & Testing Toolchain
Repository
Developer Notebook
Hook
Remote Build & Update Server
Commit
Compile, Unit-Test
Flash, Device-Unit Test
Devices
Application-level Test
App/Test Server
29
11.05.17
-
Trainings
§ IoT Schnelleinstieg für Webentwickler
§ 2 Tage
§ Inkl. Prototyping-Hardware
(ESP8266, Grove-Kit)
§ [email protected]
30
11.05.17
-
Webinare
https://www.xing.com/events/iot-architektur-web-entwickler-1807068
31
11.05.17
-
www.thingforward.io
@thingforward
32
11.05.17
-
Vielen Dank!
?
33
11.05.17
-
Herunterladen