SlideShare a Scribd company logo
PHARO IOT
Using Pharo to playing with GPIOs and sensors on
IoT devices remotely
HELLO!
Marcus Denker
CR1 Inria (tenured researcher)
marcus.denker@inria.fr
Allex Oliveira
IoT Engineer
allex.oliveira@msn.com
SUMMARY
1 – OVERVIEW
2 – INSTALLATION
3 – PLAYING
4 – PERSONAL WEATHER STATION
5 – THE FUTURE
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 
1 - OVERVIEW
What is PharoThings?
• A Pharo image running on IoT device (ARM VM)
• A Pharo image controlling remote IoT device
• A Pharo library running on Raspberry Pi to control
GPIOs through an object board model (using Wiring Pi) 
• A Pharo library to control Arduino Devices (using
Firmata)
• An advanced board model inspector
• Remote IDE (TelePharo)
1 - OVERVIEW
1 - OVERVIEW
• GPIO pins (general-purpose input/output), I2C,
SPI
• Board modelling library which simplifies board
configuration
• Raspberry Pi only (for now) 
1 - OVERVIEW
PharoThings Library
1 - OVERVIEW
Board Inspector
• Provides a scheme of pins
similar to physical position
• A live tool which represents
the current pins state
• Digital pins are shown with
green/red icons which
represent high/low (1/0)
values
1 - OVERVIEW
With PharoThings you can to develop tools to
lively program, explore and debug remote boards.
• It is part of TelePharo project
• With remotePharo instance you can open:
remote playground 

remote system browser or
remote process browser
1 - OVERVIEW
Remote Playground
1 - OVERVIEW
Remote System Browser
1 - OVERVIEW
Remote Process Browser
2 - INSTALLATION
How to run Pharo on ARM architecture?
• Metacello new
       baseline: 'PharoThings';
       repository: 'github://pharo-iot/PharoThings/src';
       load: #(RemoteDevServer Raspberry).
• Metacello new
       baseline: 'PharoThings';
       repository: 'github://pharo-iot/PharoThings/src';
       load: 'RemoteDev'
2 - INSTALLATION
• ArmVM:  

     files.pharo.org/vm/pharo-spur32/linux/armv6/latest.zip
2 - INSTALLATION
• #chmod +x pharo
• #chmod +x lib/pharo/5.0-201804182009/pharo
• #./pharo Pharo.image
• #./pharo --headless Pharo.image remotePharo 
--startServerOnPort=40423
3 - PLAYING
Controlling LEDs, sensors and LCD display remotely
3 - PLAYING
Playing with LEDs and Buttons
• 1 Raspberry Pi (any model) connected to your
network (wired or wireless)
• 1 Breadboard
• 2 LEDs
• 2 Buttons
• 2 Resistors (330ohms)
• Jumper wires
3 - PLAYING
Playing with LEDs and Buttons
3 - PLAYING
Playing with LEDs and Buttons

ledRed := gpio22.
ledRed beDigitalOutput.
ledRed value: 1.
ledRed toggleDigitalValue.

buttonRed := gpio25.
buttonRed beDigitalInput.
buttonRed enablePullUpResister.
buttonProcess := [ [100 milliSeconds wait. 

ledRed value: (buttonRed value=0) asBit

] repeat 

] forkNamed: 'button process'.
buttonProcess terminate.
3 - PLAYING
Playing with Sensors (I2C)
1 Raspberry Pi (any model) connected to your netw
ork (wired or wireless)
• 1 Breadboard
• 1 BME280 sensor
(Temperature, pressure and humidity)
• 1 MCP9808 sensor (Temperature)
• 1 ADXL345 sensor (Acelerometer, axis X, Y and Z)
• Jumper wires
3 - PLAYING
Playing with Sensors (I2C)




3 - PLAYING
Playing with Sensors (I2C)
• Add the follow line in /boot/config.txt
dtparam=i2c1=on
• Add the ‘pi’ user to I2C group and restart the Raspberry
sudo adduser pi i2c
• Code:
a:= board installDevice: PotBME280Device new. 

a readParameters. 
b := board installDevice: PotMCP9808Device new. 

b readTemperature. 
c := board installDevice: PotADXL345Device new. 

c readCoordinates. 
3 - PLAYING
Playing with Sensors (I2C)
3 - PLAYING
Playing with LCD Display
1 Raspberry Pi (any model) connected to your netw
ork (wired or wireless)
• 1 Breadboard
• 1 LCD 1602
• Jumper wires 



3 - PLAYING
Playing with LCD Display




3 - PLAYING
Playing with LCD Display
lcd := board installDevice: PotLCD1602Device new.
lcd message: 'Hello everybody!Pharo is cool!'.
lcd clear.




4 - PERSONAL WEATHER STATION
Taking the sensor data with Pharo, showing in LCD
display and sending to a remote server
4 - PERSONAL WEATHER STATION
• We will run PharoThings in a Raspberry Pi 

• To collect the sensor data (BME280)
temperature, humidity and pressure 

• Show this data in a LCD 

• Send the data to a remote server
4 - PERSONAL WEATHER STATION
• Created class to instantiate the LCD and Sensor  

• Created subclass to create process: 

print information on LCD each 1 second
send data to a webserver in cloud each 1 minute 

4 - PERSONAL WEATHER STATION
• Started Pharo on Raspberry boot with arguments to
start the 2 process (DisplayLCD and PostData)
/etc/init.d/pharo.sh
/home/pi/pharo-iot/start.st
LCD Display
5 - THE FUTURE
Projects and news
• Beaglebone models 

• Zeroconf for armVM + PharoThings 

• Remote refactoring 

• Security 
5 - THE FUTURE
Automatic detection of running images in network 
(TeleRadar using SSDP protocol)
5 - THE FUTURE
Middleware to manage the devices
5 - THE FUTURE
Website official with many lessons and tutorials
Draft: http://pharothings.allexoliveira.com.br
and more…
WITH PHAROTHINGS YOU CAN
• 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
Easy, powerful.
THANKS!
Any questions?
marcus.denker@inria.fr
allex.oliveira@msn.com
PRESENTATION INFORMATION
This slides was presented at ESUG 2018, in Cagliari, ITALY
•Title: Pharo IoT
•Presenters:
Marcus Denker - marcusdenker.de / zweidenker.de
Allex Oliveira - linkedin.com/in/allex-oliveira
ESUG conferences
http://www.esug.org/wiki/pier/Conferences
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

More Related Content

What's hot

Sandbox detection: leak, abuse, test - Hacktivity 2015
Sandbox detection: leak, abuse, test - Hacktivity 2015Sandbox detection: leak, abuse, test - Hacktivity 2015
Sandbox detection: leak, abuse, test - Hacktivity 2015
Zoltan Balazs
 
BlackHat USA 2011 - Stefan Esser - iOS Kernel Exploitation
BlackHat USA 2011 - Stefan Esser - iOS Kernel ExploitationBlackHat USA 2011 - Stefan Esser - iOS Kernel Exploitation
BlackHat USA 2011 - Stefan Esser - iOS Kernel Exploitation
Stefan Esser
 
DrupalGov2014 Heartbleed
DrupalGov2014 HeartbleedDrupalGov2014 Heartbleed
DrupalGov2014 Heartbleed
Timothy Hilliard
 
Snap Your App
Snap Your AppSnap Your App
Snap Your App
Ted Gould
 
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IPSyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
Stefan Esser
 
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
Linaro
 
Solnik secure enclaveprocessor-pacsec
Solnik secure enclaveprocessor-pacsecSolnik secure enclaveprocessor-pacsec
Solnik secure enclaveprocessor-pacsec
PacSecJP
 
Introduction to Ubuntu core, Ubuntu for IoT
Introduction to Ubuntu core, Ubuntu for IoTIntroduction to Ubuntu core, Ubuntu for IoT
Introduction to Ubuntu core, Ubuntu for IoT
Amrisha Prashar
 
Andrea De Gaetano - An Adventure with ESP8266 firmwares and IOT
Andrea De Gaetano - An Adventure with ESP8266 firmwares and IOTAndrea De Gaetano - An Adventure with ESP8266 firmwares and IOT
Andrea De Gaetano - An Adventure with ESP8266 firmwares and IOT
Codemotion
 
CODE BLUE 2014 : Drone attack by malware and network hacking by DONGCHEOL HONG
CODE BLUE 2014 : Drone attack by malware and network hacking by DONGCHEOL HONGCODE BLUE 2014 : Drone attack by malware and network hacking by DONGCHEOL HONG
CODE BLUE 2014 : Drone attack by malware and network hacking by DONGCHEOL HONG
CODE BLUE
 
Learn Evothings Studio along with ESP8266
Learn Evothings Studio along with ESP8266Learn Evothings Studio along with ESP8266
Learn Evothings Studio along with ESP8266
Hammad Tariq
 
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-ioHome automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Tran Minh Nhut
 
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Cheng-Yi Yu
 
Mr201305 tizen security_eng
Mr201305 tizen security_engMr201305 tizen security_eng
Mr201305 tizen security_eng
FFRI, Inc.
 
Programando o ESP8266 com Python
Programando o ESP8266 com PythonProgramando o ESP8266 com Python
Programando o ESP8266 com Python
Relsi Maron
 
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
linuxlab_conf
 
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemsClaudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
linuxlab_conf
 
Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266
Baoshi Zhu
 
Getting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPythonGetting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPython
Ayan Pahwa
 
Emanuele Faranda - Creating network overlays with IoT devices using N2N
Emanuele Faranda - Creating network overlays with IoT devices using N2NEmanuele Faranda - Creating network overlays with IoT devices using N2N
Emanuele Faranda - Creating network overlays with IoT devices using N2N
linuxlab_conf
 

What's hot (20)

Sandbox detection: leak, abuse, test - Hacktivity 2015
Sandbox detection: leak, abuse, test - Hacktivity 2015Sandbox detection: leak, abuse, test - Hacktivity 2015
Sandbox detection: leak, abuse, test - Hacktivity 2015
 
BlackHat USA 2011 - Stefan Esser - iOS Kernel Exploitation
BlackHat USA 2011 - Stefan Esser - iOS Kernel ExploitationBlackHat USA 2011 - Stefan Esser - iOS Kernel Exploitation
BlackHat USA 2011 - Stefan Esser - iOS Kernel Exploitation
 
DrupalGov2014 Heartbleed
DrupalGov2014 HeartbleedDrupalGov2014 Heartbleed
DrupalGov2014 Heartbleed
 
Snap Your App
Snap Your AppSnap Your App
Snap Your App
 
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IPSyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
SyScan360 - Stefan Esser - OS X El Capitan sinking the S\H/IP
 
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
BKK16-406 Ubuntu Core - a snappy platform for Embedded, IoT and 96boards!
 
Solnik secure enclaveprocessor-pacsec
Solnik secure enclaveprocessor-pacsecSolnik secure enclaveprocessor-pacsec
Solnik secure enclaveprocessor-pacsec
 
Introduction to Ubuntu core, Ubuntu for IoT
Introduction to Ubuntu core, Ubuntu for IoTIntroduction to Ubuntu core, Ubuntu for IoT
Introduction to Ubuntu core, Ubuntu for IoT
 
Andrea De Gaetano - An Adventure with ESP8266 firmwares and IOT
Andrea De Gaetano - An Adventure with ESP8266 firmwares and IOTAndrea De Gaetano - An Adventure with ESP8266 firmwares and IOT
Andrea De Gaetano - An Adventure with ESP8266 firmwares and IOT
 
CODE BLUE 2014 : Drone attack by malware and network hacking by DONGCHEOL HONG
CODE BLUE 2014 : Drone attack by malware and network hacking by DONGCHEOL HONGCODE BLUE 2014 : Drone attack by malware and network hacking by DONGCHEOL HONG
CODE BLUE 2014 : Drone attack by malware and network hacking by DONGCHEOL HONG
 
Learn Evothings Studio along with ESP8266
Learn Evothings Studio along with ESP8266Learn Evothings Studio along with ESP8266
Learn Evothings Studio along with ESP8266
 
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-ioHome automation-in-the-cloud-with-the-esp8266-and-adafruit-io
Home automation-in-the-cloud-with-the-esp8266-and-adafruit-io
 
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
 
Mr201305 tizen security_eng
Mr201305 tizen security_engMr201305 tizen security_eng
Mr201305 tizen security_eng
 
Programando o ESP8266 com Python
Programando o ESP8266 com PythonProgramando o ESP8266 com Python
Programando o ESP8266 com Python
 
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
Michele Dionisio & Pietro Lorefice - Developing and testing a device driver w...
 
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systemsClaudio Scordino - Handling mixed criticality on embedded multi-core systems
Claudio Scordino - Handling mixed criticality on embedded multi-core systems
 
Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266Build WiFi gadgets using esp8266
Build WiFi gadgets using esp8266
 
Getting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPythonGetting Started with Embedded Python: MicroPython and CircuitPython
Getting Started with Embedded Python: MicroPython and CircuitPython
 
Emanuele Faranda - Creating network overlays with IoT devices using N2N
Emanuele Faranda - Creating network overlays with IoT devices using N2NEmanuele Faranda - Creating network overlays with IoT devices using N2N
Emanuele Faranda - Creating network overlays with IoT devices using N2N
 

Similar to Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotely

Raspberry and Pharo
Raspberry and PharoRaspberry and Pharo
Raspberry and Pharo
Pharo
 
PHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous IntegrationPHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous Integration
Pharo
 
PHARO IoT: Present and Future
PHARO IoT: Present and FuturePHARO IoT: Present and Future
PHARO IoT: Present and Future
ESUG
 
Smart homes using android
Smart homes using androidSmart homes using android
Smart homes using android
Droidcon Berlin
 
Republic of IoT 2018 - ESPectro32 and NB-IoT Workshop
Republic of IoT 2018 - ESPectro32 and NB-IoT WorkshopRepublic of IoT 2018 - ESPectro32 and NB-IoT Workshop
Republic of IoT 2018 - ESPectro32 and NB-IoT Workshop
Alwin Arrasyid
 
From printed circuit boards to exploits
From printed circuit boards to exploitsFrom printed circuit boards to exploits
From printed circuit boards to exploits
virtualabs
 
From the internet of things to the web of things course
From the internet of things to the web of things courseFrom the internet of things to the web of things course
From the internet of things to the web of things course
Dominique Guinard
 
Securing IoT Applications
Securing IoT Applications Securing IoT Applications
Securing IoT Applications
WSO2
 
IoT Session Thomas More
IoT Session Thomas MoreIoT Session Thomas More
IoT Session Thomas More
Kevin Van den Abeele
 
Cc internet of things @ Thomas More
Cc internet of things @ Thomas MoreCc internet of things @ Thomas More
Cc internet of things @ Thomas More
JWORKS powered by Ordina
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
Sulamita Garcia
 
Mozilla chirimen firefox os dwika v5
Mozilla chirimen firefox os dwika v5Mozilla chirimen firefox os dwika v5
Mozilla chirimen firefox os dwika v5
Dwika Sudrajat
 
Iot Bootcamp - abridged - part 1
Iot Bootcamp - abridged - part 1Iot Bootcamp - abridged - part 1
Iot Bootcamp - abridged - part 1
Marcus Tarquinio
 
Federico Michele Facca - FIWARE Primer - Learn FIWARE in 60 Minutes
Federico Michele Facca - FIWARE Primer - Learn FIWARE in 60 MinutesFederico Michele Facca - FIWARE Primer - Learn FIWARE in 60 Minutes
Federico Michele Facca - FIWARE Primer - Learn FIWARE in 60 Minutes
Codemotion
 
FIWARE Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 MinutesFIWARE Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 Minutes
Federico Michele Facca
 
Enhancing drone application development using python and dronekit
Enhancing drone application development using python and dronekitEnhancing drone application development using python and dronekit
Enhancing drone application development using python and dronekit
Dony Riyanto
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
Srikanth Pilli
 
Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica...
Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica...Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica...
Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica...
Luigi Francesco Cerfeda
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
AswathRangaraj1
 
Presentation 3 software developer in rfid
Presentation 3 software developer in rfidPresentation 3 software developer in rfid
Presentation 3 software developer in rfid
Mouhanad Alkhaldi
 

Similar to Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotely (20)

Raspberry and Pharo
Raspberry and PharoRaspberry and Pharo
Raspberry and Pharo
 
PHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous IntegrationPHARO IoT: Installation Improvements and Continuous Integration
PHARO IoT: Installation Improvements and Continuous Integration
 
PHARO IoT: Present and Future
PHARO IoT: Present and FuturePHARO IoT: Present and Future
PHARO IoT: Present and Future
 
Smart homes using android
Smart homes using androidSmart homes using android
Smart homes using android
 
Republic of IoT 2018 - ESPectro32 and NB-IoT Workshop
Republic of IoT 2018 - ESPectro32 and NB-IoT WorkshopRepublic of IoT 2018 - ESPectro32 and NB-IoT Workshop
Republic of IoT 2018 - ESPectro32 and NB-IoT Workshop
 
From printed circuit boards to exploits
From printed circuit boards to exploitsFrom printed circuit boards to exploits
From printed circuit boards to exploits
 
From the internet of things to the web of things course
From the internet of things to the web of things courseFrom the internet of things to the web of things course
From the internet of things to the web of things course
 
Securing IoT Applications
Securing IoT Applications Securing IoT Applications
Securing IoT Applications
 
IoT Session Thomas More
IoT Session Thomas MoreIoT Session Thomas More
IoT Session Thomas More
 
Cc internet of things @ Thomas More
Cc internet of things @ Thomas MoreCc internet of things @ Thomas More
Cc internet of things @ Thomas More
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Mozilla chirimen firefox os dwika v5
Mozilla chirimen firefox os dwika v5Mozilla chirimen firefox os dwika v5
Mozilla chirimen firefox os dwika v5
 
Iot Bootcamp - abridged - part 1
Iot Bootcamp - abridged - part 1Iot Bootcamp - abridged - part 1
Iot Bootcamp - abridged - part 1
 
Federico Michele Facca - FIWARE Primer - Learn FIWARE in 60 Minutes
Federico Michele Facca - FIWARE Primer - Learn FIWARE in 60 MinutesFederico Michele Facca - FIWARE Primer - Learn FIWARE in 60 Minutes
Federico Michele Facca - FIWARE Primer - Learn FIWARE in 60 Minutes
 
FIWARE Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 MinutesFIWARE Primer - Learn FIWARE in 60 Minutes
FIWARE Primer - Learn FIWARE in 60 Minutes
 
Enhancing drone application development using python and dronekit
Enhancing drone application development using python and dronekitEnhancing drone application development using python and dronekit
Enhancing drone application development using python and dronekit
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica...
Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica...Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica...
Workshop: Arduino for makers - Strumenti SW per la prototipazione elettronica...
 
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdfZephyr Introduction - Nordic Webinar - Sept. 24.pdf
Zephyr Introduction - Nordic Webinar - Sept. 24.pdf
 
Presentation 3 software developer in rfid
Presentation 3 software developer in rfidPresentation 3 software developer in rfid
Presentation 3 software developer in rfid
 

More from ESUG

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
ESUG
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
ESUG
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
ESUG
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
ESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
ESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
ESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
ESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
ESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
ESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
ESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
ESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
ESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
ESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
ESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
ESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
ESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
ESUG
 

More from ESUG (20)

Workshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programmingWorkshop: Identifying concept inventories in agile programming
Workshop: Identifying concept inventories in agile programming
 
Technical documentation support in Pharo
Technical documentation support in PharoTechnical documentation support in Pharo
Technical documentation support in Pharo
 
The Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and RoadmapThe Pharo Debugger and Debugging tools: Advances and Roadmap
The Pharo Debugger and Debugging tools: Advances and Roadmap
 
Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 

Recently uploaded

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 

Recently uploaded (20)

Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 

Pharo IoT: Using Pharo to playing with GPIOs and sensors on IoT devices remotely

  • 1. PHARO IOT Using Pharo to playing with GPIOs and sensors on IoT devices remotely
  • 2. HELLO! Marcus Denker CR1 Inria (tenured researcher) marcus.denker@inria.fr Allex Oliveira IoT Engineer allex.oliveira@msn.com
  • 3. SUMMARY 1 – OVERVIEW 2 – INSTALLATION 3 – PLAYING 4 – PERSONAL WEATHER STATION 5 – THE FUTURE
  • 4. 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 
  • 5. 1 - OVERVIEW What is PharoThings? • A Pharo image running on IoT device (ARM VM) • A Pharo image controlling remote IoT device • A Pharo library running on Raspberry Pi to control GPIOs through an object board model (using Wiring Pi)  • A Pharo library to control Arduino Devices (using Firmata) • An advanced board model inspector • Remote IDE (TelePharo)
  • 7. 1 - OVERVIEW • GPIO pins (general-purpose input/output), I2C, SPI • Board modelling library which simplifies board configuration • Raspberry Pi only (for now) 
  • 9. 1 - OVERVIEW Board Inspector • Provides a scheme of pins similar to physical position • A live tool which represents the current pins state • Digital pins are shown with green/red icons which represent high/low (1/0) values
  • 10. 1 - OVERVIEW With PharoThings you can to develop tools to lively program, explore and debug remote boards. • It is part of TelePharo project • With remotePharo instance you can open: remote playground 
 remote system browser or remote process browser
  • 11. 1 - OVERVIEW Remote Playground
  • 12. 1 - OVERVIEW Remote System Browser
  • 13. 1 - OVERVIEW Remote Process Browser
  • 14. 2 - INSTALLATION How to run Pharo on ARM architecture? • Metacello new        baseline: 'PharoThings';        repository: 'github://pharo-iot/PharoThings/src';        load: #(RemoteDevServer Raspberry). • Metacello new        baseline: 'PharoThings';        repository: 'github://pharo-iot/PharoThings/src';        load: 'RemoteDev'
  • 15. 2 - INSTALLATION • ArmVM:  
      files.pharo.org/vm/pharo-spur32/linux/armv6/latest.zip
  • 16. 2 - INSTALLATION • #chmod +x pharo • #chmod +x lib/pharo/5.0-201804182009/pharo • #./pharo Pharo.image • #./pharo --headless Pharo.image remotePharo  --startServerOnPort=40423
  • 17. 3 - PLAYING Controlling LEDs, sensors and LCD display remotely
  • 18. 3 - PLAYING Playing with LEDs and Buttons • 1 Raspberry Pi (any model) connected to your network (wired or wireless) • 1 Breadboard • 2 LEDs • 2 Buttons • 2 Resistors (330ohms) • Jumper wires
  • 19. 3 - PLAYING Playing with LEDs and Buttons
  • 20. 3 - PLAYING Playing with LEDs and Buttons 
ledRed := gpio22. ledRed beDigitalOutput. ledRed value: 1. ledRed toggleDigitalValue.
 buttonRed := gpio25. buttonRed beDigitalInput. buttonRed enablePullUpResister. buttonProcess := [ [100 milliSeconds wait. 
 ledRed value: (buttonRed value=0) asBit
 ] repeat 
 ] forkNamed: 'button process'. buttonProcess terminate.
  • 21. 3 - PLAYING Playing with Sensors (I2C) 1 Raspberry Pi (any model) connected to your netw ork (wired or wireless) • 1 Breadboard • 1 BME280 sensor (Temperature, pressure and humidity) • 1 MCP9808 sensor (Temperature) • 1 ADXL345 sensor (Acelerometer, axis X, Y and Z) • Jumper wires
  • 22. 3 - PLAYING Playing with Sensors (I2C) 
 

  • 23. 3 - PLAYING Playing with Sensors (I2C) • Add the follow line in /boot/config.txt dtparam=i2c1=on • Add the ‘pi’ user to I2C group and restart the Raspberry sudo adduser pi i2c • Code: a:= board installDevice: PotBME280Device new. 
 a readParameters.  b := board installDevice: PotMCP9808Device new. 
 b readTemperature.  c := board installDevice: PotADXL345Device new. 
 c readCoordinates. 
  • 24. 3 - PLAYING Playing with Sensors (I2C)
  • 25. 3 - PLAYING Playing with LCD Display 1 Raspberry Pi (any model) connected to your netw ork (wired or wireless) • 1 Breadboard • 1 LCD 1602 • Jumper wires 
 

  • 26. 3 - PLAYING Playing with LCD Display 
 

  • 27. 3 - PLAYING Playing with LCD Display lcd := board installDevice: PotLCD1602Device new. lcd message: 'Hello everybody!Pharo is cool!'. lcd clear. 
 

  • 28. 4 - PERSONAL WEATHER STATION Taking the sensor data with Pharo, showing in LCD display and sending to a remote server
  • 29. 4 - PERSONAL WEATHER STATION • We will run PharoThings in a Raspberry Pi 
 • To collect the sensor data (BME280) temperature, humidity and pressure 
 • Show this data in a LCD 
 • Send the data to a remote server
  • 30. 4 - PERSONAL WEATHER STATION • Created class to instantiate the LCD and Sensor  
 • Created subclass to create process: 
 print information on LCD each 1 second send data to a webserver in cloud each 1 minute 

  • 31. 4 - PERSONAL WEATHER STATION • Started Pharo on Raspberry boot with arguments to start the 2 process (DisplayLCD and PostData) /etc/init.d/pharo.sh /home/pi/pharo-iot/start.st
  • 33. 5 - THE FUTURE Projects and news • Beaglebone models 
 • Zeroconf for armVM + PharoThings 
 • Remote refactoring 
 • Security 
  • 34. 5 - THE FUTURE Automatic detection of running images in network  (TeleRadar using SSDP protocol)
  • 35. 5 - THE FUTURE Middleware to manage the devices
  • 36. 5 - THE FUTURE Website official with many lessons and tutorials Draft: http://pharothings.allexoliveira.com.br and more…
  • 37. WITH PHAROTHINGS YOU CAN • 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 Easy, powerful. THANKS! Any questions? marcus.denker@inria.fr allex.oliveira@msn.com
  • 38. PRESENTATION INFORMATION This slides was presented at ESUG 2018, in Cagliari, ITALY •Title: Pharo IoT •Presenters: Marcus Denker - marcusdenker.de / zweidenker.de Allex Oliveira - linkedin.com/in/allex-oliveira ESUG conferences http://www.esug.org/wiki/pier/Conferences 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