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 -