Particle IoT
IT Pro Camp Jax 2016
The three Truths
- Eventually anything that can be written in JavaScript will be written in JavaScript
- Everything that can be connected to the Internet will be connected to the Internet
- If it is on the internet, it must be true!
Internet of Things
-
IoT devices collect lots of data
-
AWS and Azure both have Big Data
and Machine learning solutions
IoT Devices
- Refrigerator
- Wearables (Apple Watch or Gear)
- Garage Door Opener
- Security System (Ring.com)
IoT Device Category
- Small Computer
- Micro-controller
Raspberry PI
PI Details
- Full Computer
- Introduced in 2012
- Meant for education
- 5 times as popular in private sector
- Board about the size of a credit card
- Prices range from $5 to $35
PI 3
- 256 MB to 1 Gig in RAM
- 1.2 Ghz quad-core ARM processor
- HDMI
- Ethernet
- 4 USB ports
- Now with Wi-Fi and BLE 4.0
- 40 GPIO connecting pins
PI Operating Systems
- Many ARM based distros of Linux
- Windows 10
- OSMC (Media Center)
- And many others...
Micro-controllers
- Not computers
- Write programs as firmware
- Some come with Wi-Fi
- Inputs and outputs
- Digital and Analog
- Not enough power to stream video or audio
- Wire up servos, lights, sensors, speakers and cameras
- Power robots
Key features
- Internet connected
- Particle Cloud Service
- Host your own
- Arduino like code
- Pre-built libraries
- inexpensive, starting at $19
Launched as Spark
- SparkCore introduced 2013
- SparkCore used CC3000 WiFi chip
- Changed name to Particle
- Particle Photon Fall 2015
- Photon uses Broadcom chip
- Particle Electron 2016 2G/3G
Photon Features
- Real-time OS (FreeRTOS)
- Broadcom BCM43362 Wi-Fi chip
- 120Mhz ARM Cortex M3 processor
- 1MB flash memory, 128K RAM
- 18 Mixed-signal GPIO ports
- Supports Digital/Analog
- I2C, UART, SPI and PWM
Development
- Arduino-like syntax
- Node.js based cli
- npm install -g particle-cli
- Web IDE @ build.particle.io
- Particle Dev ATOM based IDE
APIs
- Arduino like libraries for common addons like LCDs
- 4 Built-in cloud functions
- Particle.variable
- Particle.function
- Particle.publish
- Particle.subscribe
- JavaScript library
- iOS/Android libraries
- IFTTT
- Webhooks
- REST API
Basic Program
void setup() { }
void loop() { }
IoT HelloWorld!
// Define the pins we're going to call pinMode on
int greenLed = D7;
// This routine runs only once upon reset
void setup() {
// Initialize D7 pin as output
// It's important you do this here, inside the setup() function rather than outside it or in the loop function.
pinMode(greenLed, OUTPUT);
}
// This routine gets called repeatedly, like once every 5-15 milliseconds.
// Spark firmware interleaves background CPU activity associated with WiFi + Cloud activity with your code.
// Make sure none of your code delays or blocks for too long (like more than 5 seconds), or weird things can happen.
void loop() {
digitalWrite(greenLed, HIGH);
delay(500); // Wait for 500mS = 1 second
digitalWrite(greenLed, LOW);
delay(500); // Wait for 1 second in off mode
}
Particle Electron
- Cellular based board
- 2G and 3G options
- 2G to be EOL 2016
- No Wi-Fi, no problem
- $69 Dev kit
- First 3 months free
- $2.99 month for 1MB
- No contracts
- $0.99/each additional MB
Electron Kit
- Breadboard
- 3.7 V lipo battery
- Solar panel (optional)
- Waterproof case (optional)
- GPS (optional)
Particle limitations
- Doesn't have the power of Raspberry Pi
- Limited resources
- Limited to 1 request/event per second
- Bypass by hosting your own cloud
- 3V3 to 5.5V range
Particle advantages
- Designed for mass production
- Easy to use
- Easy to connect to Internet
- Dashboard management
- Great development experience
- Well documented
- Inexpensive
DEMO
https://particleled.herokuapp.com
tweet jaxarcsig (forward | back | right | left)
Questions?
Particle IoT IT Pro Camp Jax
By David Fekke
Particle IoT IT Pro Camp Jax
The slides for the IT Procamp conference on using Particle IoT prototyping boards for your IoT projects.
- 1,557