Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PHARO IoT
Installation Improvements and 

Continuous Integration

Allex Oliveira
IoT Engineer @ RMoD Team, INRIA
allex.oli...
Summary
1 – Getting experience
2 – Making the process easy
3 – Continuous Integration
4 – The future
!2
1 - Overview
• Created by Rmod Team, a research team from
INRIA (France)
• Written by Denis Kudriashov in 2016/17
dionisiy...
• A Pharo image running on IoT device (ARM VM)
• A Pharo library to control GPIOs (PharoThings) 
• A Remote IDE
• Remote P...
ThingsThings
IDE
TelePharo

Remote

Communication
Firmata
GPIO
What is Pharo IoT?
Motivation
• It's not very easy to get started with PharoThings for
anyone who is not a Pharo/Smalltalk user.
• How can we...
How to know what to improve?
Real world experience
IoT Workshop, ESUG
September 2018 - Cagliari, Italy
!
!7
How to know what to improve?
Real world experience
IoT Hackaton, Zweidenker GmbH
October 2018 - Cologne, Germany
"
!8
How to know what to improve?
Real world experience
Live Programming IoT devices with PharoThings
January 2019 - Can Tho Un...
How to know what to improve?
Real world experience
ESUG Conference
European Smalltalk User Group
Sep 2018 Cagliari, Italy
...
2 - Difficulties
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
...
2 - Difficulties
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
...
How to install (manually)
1 2 3 4 5 6
1. Install PharoLauncher and create a new image
2. Load PharoThings project from Git...
How to install (manually)
1 2 3 4 5 6
1. Install PharoLauncher and create a new image
!14
How to install (manually)
1 2 3 4 5 6
2. Load PharoThings project from Github
!15
How to install (manually)
1 2 3 4 5 6
3. Copy ARM VM and Pharo Image to Raspberry Pi
!16
How to install (manually)
1 2 3 4 5 6
4. Set the run permissions "chmod +x"
!17
How to install (manually)
1 2 3 4 5 6
5. Run TelePharo server in a big command line
!18
How to install (manually)
1 2 3 4 5 6
6. Extra configurations
• Auto connect on WiFi network
• Set hostname
• Autostart Tel...
How to install (zero-conf)
1 2 3 4 5 6
1. Run the command to download and extract the files:
• wget -O - get.pharoiot.org/s...
How to install (zero-conf)
1 2 3 4 5 6
6. Extra configurations
!21
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs ...
+ Pharo Image 32/64
+ PharoThings loaded
+ ARM VM
+ Windows, Linux, Mac VMs
Packing everything
!23
+ Pharo Image 32/64
+ PharoThings loaded
+ ARM VM
+ Windows, Linux, Mac VMs
+ 1 click run files
pharo-ui
pharo-server
pharo...
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs ...
Installing from scratch
+ Installing Raspbian
+ Download Pharo IoT
+ Set Hostname
+ Enable I2C and SPI
+ Connect on WiFi
+...
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs ...
PharoThings Booklet
https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial
!28
PharoThings Booklet
https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial
!29
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs ...
Welcome Window PharoThings
!31
1. Is not so easy to start (many steps needed to run it);
2. Takes a long time to start (get everything);
3. Download VMs ...
3 - Continuous Integration
After these improvements,
now we can automate the process:
• Create PDF Booklet
• Load PharoThi...
3 - Continuous Integration
Travis CI on PharoThings Booklet
• With each commit in Github, a new instance of a Travis virtu...
3 - Continuous Integration
Travis CI on PharoThings Booklet
github.com/SquareBracketAssociates/
Booklet-APharoThingsTutori...
3 - Continuous Integration
Travis CI on PharoThings Booklet
https://github.com/SquareBracketAssociates/Booklet-APharoThing...
3 - Continuous Integration
Travis CI on Pharo IoT
• With each commit in Github, a new instance of a Travis
virtual machine...
3 - Continuous Integration
Travis CI on Pharo IoT
https://github.com/pharo-iot/Ci
github.com/pharo-iot/Ci/.travis.yml trav...
3 - Continuous Integration
Travis CI on Pharo IoT
https://github.com/pharo-iot/Ci
!39
• We are using the Github Pages to host the zero-conf pages
get.pharoiot.org
https://github.com/pharo-iot/Ci/docs
!40
github.com/pharo-iot
• We are starting using Github Projects to work in a more
transparent and dynamic way.
https://github...
Now you can
+ IoT
< 10 minutes
IoT
< 1 minute
IoT IDE
< 1 minute
Booklet Quickstart Guide Be part of the project!
!42
4 - Future
!43
pharoiot.org
Everything in the
same place, to
facilitate the journey
of the new user.
!44
pharoiot.org
• Share your IoT projects using Pharo with the community!
!45
Tele Radar
Automatic detection of running images in network 
(TeleRadar using SSDP protocol)
!46
PharoThings Booklet inside Pharo
!47
Minimal PharoThings image
https://github.com/noha/pharo-minimal
• Norbert Hartl
!48
Tool to “brew” SD Cards
• “brew" a new SD Card to inside Pharo (like PiBakery)
!49
NOW IN LESS
THAN 10 MINUTES!
With Pharo IoT you can
THANKS!
Any questions?
allex.oliveira@msn.com
• Dynamically update you...
Presentation Information
This slides was presented at Pharo Days 2019, Lille, France
https://pharo.org/2019PharoDays
•Titl...
Upcoming SlideShare
Loading in …5
×

of

PHARO IoT: Installation Improvements and Continuous Integration Slide 1 PHARO IoT: Installation Improvements and Continuous Integration Slide 2 PHARO IoT: Installation Improvements and Continuous Integration Slide 3 PHARO IoT: Installation Improvements and Continuous Integration Slide 4 PHARO IoT: Installation Improvements and Continuous Integration Slide 5 PHARO IoT: Installation Improvements and Continuous Integration Slide 6 PHARO IoT: Installation Improvements and Continuous Integration Slide 7 PHARO IoT: Installation Improvements and Continuous Integration Slide 8 PHARO IoT: Installation Improvements and Continuous Integration Slide 9 PHARO IoT: Installation Improvements and Continuous Integration Slide 10 PHARO IoT: Installation Improvements and Continuous Integration Slide 11 PHARO IoT: Installation Improvements and Continuous Integration Slide 12 PHARO IoT: Installation Improvements and Continuous Integration Slide 13 PHARO IoT: Installation Improvements and Continuous Integration Slide 14 PHARO IoT: Installation Improvements and Continuous Integration Slide 15 PHARO IoT: Installation Improvements and Continuous Integration Slide 16 PHARO IoT: Installation Improvements and Continuous Integration Slide 17 PHARO IoT: Installation Improvements and Continuous Integration Slide 18 PHARO IoT: Installation Improvements and Continuous Integration Slide 19 PHARO IoT: Installation Improvements and Continuous Integration Slide 20 PHARO IoT: Installation Improvements and Continuous Integration Slide 21 PHARO IoT: Installation Improvements and Continuous Integration Slide 22 PHARO IoT: Installation Improvements and Continuous Integration Slide 23 PHARO IoT: Installation Improvements and Continuous Integration Slide 24 PHARO IoT: Installation Improvements and Continuous Integration Slide 25 PHARO IoT: Installation Improvements and Continuous Integration Slide 26 PHARO IoT: Installation Improvements and Continuous Integration Slide 27 PHARO IoT: Installation Improvements and Continuous Integration Slide 28 PHARO IoT: Installation Improvements and Continuous Integration Slide 29 PHARO IoT: Installation Improvements and Continuous Integration Slide 30 PHARO IoT: Installation Improvements and Continuous Integration Slide 31 PHARO IoT: Installation Improvements and Continuous Integration Slide 32 PHARO IoT: Installation Improvements and Continuous Integration Slide 33 PHARO IoT: Installation Improvements and Continuous Integration Slide 34 PHARO IoT: Installation Improvements and Continuous Integration Slide 35 PHARO IoT: Installation Improvements and Continuous Integration Slide 36 PHARO IoT: Installation Improvements and Continuous Integration Slide 37 PHARO IoT: Installation Improvements and Continuous Integration Slide 38 PHARO IoT: Installation Improvements and Continuous Integration Slide 39 PHARO IoT: Installation Improvements and Continuous Integration Slide 40 PHARO IoT: Installation Improvements and Continuous Integration Slide 41 PHARO IoT: Installation Improvements and Continuous Integration Slide 42 PHARO IoT: Installation Improvements and Continuous Integration Slide 43 PHARO IoT: Installation Improvements and Continuous Integration Slide 44 PHARO IoT: Installation Improvements and Continuous Integration Slide 45 PHARO IoT: Installation Improvements and Continuous Integration Slide 46 PHARO IoT: Installation Improvements and Continuous Integration Slide 47 PHARO IoT: Installation Improvements and Continuous Integration Slide 48 PHARO IoT: Installation Improvements and Continuous Integration Slide 49 PHARO IoT: Installation Improvements and Continuous Integration Slide 50 PHARO IoT: Installation Improvements and Continuous Integration Slide 51
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

3 Likes

Share

Download to read offline

PHARO IoT: Installation Improvements and Continuous Integration

Download to read offline

PHARO IoT: Installation Improvements and Continuous Integration
Allex Oliveira, PharoDays 2019

Related Books

Free with a 30 day trial from Scribd

See all

PHARO IoT: Installation Improvements and Continuous Integration

  1. 1. PHARO IoT Installation Improvements and Continuous Integration Allex Oliveira IoT Engineer @ RMoD Team, INRIA allex.oliveira@msn.com 1
  2. 2. Summary 1 – Getting experience 2 – Making the process easy 3 – Continuous Integration 4 – The future !2
  3. 3. 1 - Overview • Created by Rmod Team, a research team from INRIA (France) • Written by Denis Kudriashov in 2016/17 dionisiydk@gmail.com • In 2018, Allex Oliveira joined the Rmod Team to continue the project  !3
  4. 4. • A Pharo image running on IoT device (ARM VM) • A Pharo library to control GPIOs (PharoThings)  • A Remote IDE • Remote Playground, Browser, Inspectors • An advanced board inspector for Raspberry PI • Other IoT Projects: • A Pharo library to control Arduino Devices (Firmata) What is Pharo IoT? !4
  5. 5. ThingsThings IDE TelePharo
 Remote
 Communication Firmata GPIO What is Pharo IoT?
  6. 6. Motivation • It's not very easy to get started with PharoThings for anyone who is not a Pharo/Smalltalk user. • How can we automate the process to make the developer’s life easier? Before we automate something, we should ask: How can we improve it? !6
  7. 7. How to know what to improve? Real world experience IoT Workshop, ESUG September 2018 - Cagliari, Italy ! !7
  8. 8. How to know what to improve? Real world experience IoT Hackaton, Zweidenker GmbH October 2018 - Cologne, Germany " !8
  9. 9. How to know what to improve? Real world experience Live Programming IoT devices with PharoThings January 2019 - Can Tho University, Vietnam # !9
  10. 10. How to know what to improve? Real world experience ESUG Conference European Smalltalk User Group Sep 2018 Cagliari, Italy INRIA Pharo 10 Years Nov 2018 Lille, France USTH University of Science and Technology of Hanoi Jan 2019 Hanoi, Vietnam #$! !10
  11. 11. 2 - Difficulties 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); !11
  12. 12. 2 - Difficulties 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); !12
  13. 13. How to install (manually) 1 2 3 4 5 6 1. Install PharoLauncher and create a new image 2. Load PharoThings project from Github 3. Copy ARM VM and Pharo Image to Raspberry Pi 4. Set the run permissions "chmod +x" 5. Run TelePharo server in a big command line 6. Extra configurations: set hostname, WiFi, autorun !13
  14. 14. How to install (manually) 1 2 3 4 5 6 1. Install PharoLauncher and create a new image !14
  15. 15. How to install (manually) 1 2 3 4 5 6 2. Load PharoThings project from Github !15
  16. 16. How to install (manually) 1 2 3 4 5 6 3. Copy ARM VM and Pharo Image to Raspberry Pi !16
  17. 17. How to install (manually) 1 2 3 4 5 6 4. Set the run permissions "chmod +x" !17
  18. 18. How to install (manually) 1 2 3 4 5 6 5. Run TelePharo server in a big command line !18
  19. 19. How to install (manually) 1 2 3 4 5 6 6. Extra configurations • Auto connect on WiFi network • Set hostname • Autostart TelePharo server every boot • Set boot to console (disable the Linux UI) • Enable I2C and SPI kernel modules !19
  20. 20. How to install (zero-conf) 1 2 3 4 5 6 1. Run the command to download and extract the files: • wget -O - get.pharoiot.org/server | bash 2. Run TelePharo server: • 1 click on pharo-server file or… • type in terminal: ./pharo-server Less than 1 minute! !20
  21. 21. How to install (zero-conf) 1 2 3 4 5 6 6. Extra configurations !21
  22. 22. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !22
  23. 23. + Pharo Image 32/64 + PharoThings loaded + ARM VM + Windows, Linux, Mac VMs Packing everything !23
  24. 24. + Pharo Image 32/64 + PharoThings loaded + ARM VM + Windows, Linux, Mac VMs + 1 click run files pharo-ui pharo-server pharo pharo.bat 1-click run files !24
  25. 25. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !25
  26. 26. Installing from scratch + Installing Raspbian + Download Pharo IoT + Set Hostname + Enable I2C and SPI + Connect on WiFi + Start server every boot Keyboard,mouse or monitor not required Less than 10 minutes! !26
  27. 27. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !27
  28. 28. PharoThings Booklet https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial !28
  29. 29. PharoThings Booklet https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial !29
  30. 30. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !30
  31. 31. Welcome Window PharoThings !31
  32. 32. 1. Is not so easy to start (many steps needed to run it); 2. Takes a long time to start (get everything); 3. Download VMs to different OS (ARM, Linux, Win, OSX); 4. Need the same version on server/client; 5. Needs a keyboard/screen on Raspberry to install from scratch; 6. No many application examples; 7. Search example code: copy and paste (pdf bad formatting); 2 - Difficulties !32
  33. 33. 3 - Continuous Integration After these improvements, now we can automate the process: • Create PDF Booklet • Load PharoThings on image 32/64 • Download last VMs • Create the 1 click-run files • Zip everything • Deploy How to automate? !33
  34. 34. 3 - Continuous Integration Travis CI on PharoThings Booklet • With each commit in Github, a new instance of a Travis virtual machine is created and the scripts executed • The booklet is created using Pillar, a Pharo tool-suite to generate documentation, books, websites and slides • Deploy in Github releases is done in each changes on the booklet • The process is transparent, anyone can see and contribute to improvements !34
  35. 35. 3 - Continuous Integration Travis CI on PharoThings Booklet github.com/SquareBracketAssociates/ Booklet-APharoThingsTutorial/.travis.yml travis-ci.org/SquareBracketAssociates/ Booklet-APharoThingsTutorial new commit run scripts/tests new Github release https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial !35
  36. 36. 3 - Continuous Integration Travis CI on PharoThings Booklet https://github.com/SquareBracketAssociates/Booklet-APharoThingsTutorial !36
  37. 37. 3 - Continuous Integration Travis CI on Pharo IoT • With each commit in Github, a new instance of a Travis virtual machine is created and the scripts executed • Deploy is done only when a new Github Tag is created • PharoThings is loaded in 32/64 images • Zip files with everything (VMs, Images, 1 click-run) are up in Github releases. We put it inside the repo also. • The process is transparent, anyone can see and contribute to improvements !37
  38. 38. 3 - Continuous Integration Travis CI on Pharo IoT https://github.com/pharo-iot/Ci github.com/pharo-iot/Ci/.travis.yml travis-ci.org/pharo-iot/Ci new commit run scripts/tests is it tag? finishnoyes new Github release Github push !38
  39. 39. 3 - Continuous Integration Travis CI on Pharo IoT https://github.com/pharo-iot/Ci !39
  40. 40. • We are using the Github Pages to host the zero-conf pages get.pharoiot.org https://github.com/pharo-iot/Ci/docs !40
  41. 41. github.com/pharo-iot • We are starting using Github Projects to work in a more transparent and dynamic way. https://github.com/orgs/pharo-iot/projects/1 You can take some tasks! !41
  42. 42. Now you can + IoT < 10 minutes IoT < 1 minute IoT IDE < 1 minute Booklet Quickstart Guide Be part of the project! !42
  43. 43. 4 - Future !43
  44. 44. pharoiot.org Everything in the same place, to facilitate the journey of the new user. !44
  45. 45. pharoiot.org • Share your IoT projects using Pharo with the community! !45
  46. 46. Tele Radar Automatic detection of running images in network  (TeleRadar using SSDP protocol) !46
  47. 47. PharoThings Booklet inside Pharo !47
  48. 48. Minimal PharoThings image https://github.com/noha/pharo-minimal • Norbert Hartl !48
  49. 49. Tool to “brew” SD Cards • “brew" a new SD Card to inside Pharo (like PiBakery) !49
  50. 50. NOW IN LESS THAN 10 MINUTES! With Pharo IoT you can THANKS! Any questions? allex.oliveira@msn.com • Dynamically update your running board • Interact remotely with pins  and boards • Modify the system while it is running (create new board, change code) • Make your changes persistent get.pharoiot.org !50
  51. 51. Presentation Information This slides was presented at Pharo Days 2019, Lille, France https://pharo.org/2019PharoDays •Title: Pharo IoT - Installation Improvements and Continuous Integration •Presenters: Allex Oliveira - linkedin.com/in/allex-oliveira INRIA https://www.inria.fr/ RMOD TEAM https://rmod.inria.fr/web PHARO PROJECT https://github.com/pharo-project/pharo PHAROTHINGS PROJECT https://github.com/pharo-iot/PharoThings PHARO IoT http://get.pharoiot.org !51
  • DahirouOusmanou

    Oct. 3, 2019
  • IsraelANY

    May. 10, 2019
  • hazimabdulameer

    May. 8, 2019

PHARO IoT: Installation Improvements and Continuous Integration Allex Oliveira, PharoDays 2019

Views

Total views

912

On Slideshare

0

From embeds

0

Number of embeds

15

Actions

Downloads

8

Shares

0

Comments

0

Likes

3

×