A new plugin is available for Johnny Five, a Robotics and IoT programming framework. Thanks to Johnny Five, you can easily integrate a wide range of sensors and actuators attached to an Arduino board or your Raspberry Pi. On Arduino, the universal Firmata library is used which implements a protocol for the communication with the host computer. Thus, there is no need to modify the Arduino sketch when new sensors or actuators are connected to your Arduino. Generally, one sketch will fit them all, but it is also possible to use tailored sketches for specific needs. As part of your projects, pimatic-johnny-five may provide a good alternative to using other frameworks like MySensors in many cases.
For bug reports, please use the issue tracker on github project page. For questions and feature request please use the forum. I’d greatly appreciate your input and suggestions!
If you like this plugin, please consider ★ starring the project on github. Contributions to the project are welcome. You can simply fork the project and create a pull request with your contribution to start with.
Progress and Next Steps
This is minor update which includes dependency updates for johnny-five, particle-io and the serialport libraries. It also contains an implementation of an combined temperature & barometric pressure sensor contributed by @kanedo. Thanks!
Meanwhile, Firmata regulary supports ESP-8266, but at present this is only good for experimental use as johnny-five still doesn’t handle re-initialization after re-connect. My plan for the near future is to spend more time on this plugin to progress on some of the following topics:
- add a Multi-Sensor device (temperature, humidity, pressure, altitude, orientation, acceleration)
- a RGB-LED device to drive (analog) RGB-LED strips.
- OLED and LCD display driver
- investigate issue with expander connected to unipi i2c bus
- further investigate how to reinitialize a board which had been disconnected for a while
- Version 0.9.11, 23/01/2017: Bug fixture: added missing require statement for new action
- Version 0.9.10, 23/01/2017: Added support for software PWM and support for excluding pins with raspi-io. Added RGBLedDevice to provide control for common cathode/common cathode LEDs
- Version 0.9.9, 17/01/2017: Improved device schema for temperature unit properties to editable with device editor, Added debug mode property to enable plugin debugging mode
- Version 0.9.8, 16/01/2017: Improved error handling for the expander board, i.e. handle i2c errors due to misconfiguration
- Version 0.9.7, 15/01/2017: Dependency updates, Fixed initialization bug for expander board when used with raspi-io, issue #54
- Version 0.9.6, 05/11/2016: Fixed handling of i2c address property, issue #47, Remove data listener on destruction of temperature device
- Version 0.9.5, 05/11/2016: Fix for invalid I2C address problem, issue 46
- Version 0.9.4, 27/10/2016: Dependency updates, Added JohnnyFiveTemperaturePressure - thanks @kanedo
- Version 0.9.3, 06/05/2016 Dependency updates, removed beta tag
- Version 0.9.2, 06/05/2016 (for pimatic 0.9 beta, only): Dependency updates
- Version 0.9.1, 03/05/2016 (for pimatic 0.9 beta, only): Dependency updates
- Version 0.9.0, 27/04/2016 (for pimatic 0.9 beta, only): Added ESP-8266 board support (experimental), Pimatic 0.9 compatibility changes, Dependency updates
- Version 0.8.8, 05/03/2016: Dependency updates. Now includes support for Raspberry Pi 3. Fixed some typos.
- Version 0.8.7, 10/02/2016: Fixed initialization for “particle-io” boards, issue #3 - thanks @hoodpablo, Updated README, Fixed switch example - thanks @Hr-FS
- Version 0.8.6, 23/01/2016: Updated dependency on “raspi-io” to include support for enabling pull up resistors by writing HIGH to the pin while in INPUT mode, Tweaked johnny-five to allow for longer board initialization timeouts to provide for slow initialization of some Arduinos, Added note to README about installation issue
- Version 0.8.5, 21/01/2016: Added support for Expander boards, Improved support for setup of remote boards, Improved robustness and error handling.
- Version 0.8.4, 12/01/2016: Fixed dependency on etherport fork, thanks to @rubenoost7
- Version 0.8.3, 29/12/2015: Added board config option to set baudrate. Bug fixture
- Version 0.8.2, 28/12/2015: Bug fixture
- Version 0.8.1, 28/12/2015: Added experimental support for Photon boards.
The plugin currently supports Arduino, Raspberry Pi boards, Photon boards, and tethering, i.e. connecting to remote Arduino & Raspberry Pi boards. More boards can be added on request. The Johnny Five project provides a detailed list of supported platforms with detailed information on supported features and how to set up the board.
The plugin can be installed along with other plugins using GPIO such as pimatic-homeduino and pimatic-gpio.
Status of implementation
This version supports the following devices
- ContactSensor, PresenceSensor, and ButtonSensor (digital input)
- Dimmer (digital output with PWM)
- Switch (digital output)
- Relay Switch (relay boards attached to digital output)
- Temperature Sensor (analog, I2C and 1-Wire)
- Temperature & Humidity Sensor (analog, I2C - sorry, no 1-Wire support, to date)
- Temperature & Barometric Pressure Sensor (I2C devices such as BMP180, MPL115A2, MPL3115A2)
The OLED and LCD display devices are incomplete and, thus, should not be used. They won’t do anything useful anyway.
Board-support has been tested with “arduino”, “raspi-io”, “particle-io”, “etherport” and “expander” board types.