The impAccelerator™ Battery Powered Sensor Node is a complete housed environmental sensing package to help you quickly develop and refine data-gathering modules that are able to operate for years at a time from standard AA batteries.
In addition to a raft of on-board sensors for metrics including temperature, humidity, air pressure and motion, the unit also supports the addition of 1-Wire®, UART and I²C interface devices.
Thanks to the Electric Imp Platform’s reliable networking and robust security — delivered through the impCloud™ and impOS™ — and the imp003 module’s ability to run fully customizable application software, the Battery Powered Sensor Node can be used to kick-start the development of a wide range of sensor applications, including:
The impAccelerator Battery Powered Sensor Node is an open source design with an optimized Bill of Materials (BoM). This allows customers to seamlessly scale from Proof of Concept to product deployment in volume with cost-optimized hardware designs and reusable software.
For production in 1k volume, the expected BOM for the Battery Powered Sensor Node design is around $24.46 (all features included).
Internal bay for two standard AA cells (fitted)
To set up a Battery Powered Sensor Node, please see this page.
The Battery Powered Sensor Node incorporates a physical power switch, which is mounted on the circuit board. This is initially turned off to prevent the bundled AA batteries from running down before you receive them. This switch must be set as shown in the image below in order to power up the Sensor Node:
Until the switch is thrown, the Battery Powered Sensor Node will not function.
The Battery Powered Sensor Node incorporates the following sensors:
|Sensor||Measured Quantity||I²C Address (8-bit)||Interrupt Pin||Datasheet|
|HTS221||Temperature and humidity||0xBE||hardware.pinE||Link|
|LIS2DH12TR||Motion in three axes||0x32||hardware.pinT||Link|
Each sensor is supported by an Electric Imp library. Please consult each sensor’s library documentation (click on the sensor’s name in the table above) for guidance on making use of the sensors in your application, and to get the latest version of the library.
Note The LIS2DH12TR intentionally makes use of the LIS3DH library as these two devices are functionally equivalent.
The LIS2DHTR and LPS22HB provide interrupt lines to signal deviations from pre-programmed levels; the HTS221 has an interrupt line to signal the availability of a new reading. The table above lists the imp003 pins to which these pins are connected. The LPS22HB and LIS2DH12TR interrupts are also connected to the imp003’s wakeup pin, hardware.pinW, via an OR circuit and can therefore also be used to wake the Sensor Node from deep sleep. To do so, hardware.pinW must be configured as follows:
The RJ-12 connector is a six-pin connector providing connectivity for 1-Wire, serial and I²C devices. The connectors pins are as follows:
|1||I²C SCL / uartFG TX*|
|5||VBAT or 3V*|
|6||I²C SDA / uartFG RX*|
The DQ pin connects to the Sensor Node’s imp003 via UART pins D and M, and is therefore accessed through the hardware.uartDM object. These pins are connected to the RJ-12 via a 4.7kOhm resistor and a Shottky Diode to provide 1-Wire bus signalling via UART. You will need to include Electric Imp’s 1-Wire support library in your device-side application code. This library provides tools to enumerate 1-Wire devices and to interact with them.
For more information, please see the 1-Wire library page and the Developer Guide ‘Implementing 1-Wire Buses in imp-enabled Devices’.
To make use of 1-Wire, you must drive the Sensor Node’s 1-Wire enable pin (imp003 hardware.pinS) High.
Pins 1 and 6 of the RJ-12 connector can be used to connect UART and/or I²C devices. The 1-Wire enable pin (imp003 hardware.pinS) must be driven High if you wish to activate the on-board I²C 4.7kΩ pull-up resistors and/ or power on the RJ-12 pin 5. The I²C bus is the imp003’s hardware.i2cFG; the UART bus uses hardware.uartFG. The connector pins are linked to the imp003 module as follows:
|RJ-12 Pin||imp003 Pin||I2C Role||UART Role|
Pin 5 is enabled by driving the 1-Wire enable pin (imp003 hardware.pinS) High.
The VBAT/3V0 could be the direct value battery voltage, 3V0 or 3V3. The choice is made by setting the following imp003 pins:
(GPIO Pin Y)
Though the POWER_EN pin is not connected to an imp003 GPIO pin, it can be controlled using the imp API method imp.setpoweren(). POWER_EN is low when the imp003 is in deep sleep, or the WiFi is disabled for some other reason (the imp003 has woken but not yet attempted to connect to the server, or Squirrel has called server.disconnect()). To set POWER_EN high in these circumstances, call
You can then set 3V3_EN as you require by calling
local state = <1 or 0> // 1 -> 3.3V, 0 -> 3.0V hardware.pinX.configure(DIGITAL_OUT, state);
Remember, POWER_EN will be enabled automatically when WiFi is active.
The Battery Powered Sensor Node motherboard provides two pads to which an NTC thermistor may be soldered. To make use of such a device, the Sensor Node’s NTC enable pin (imp003 pin hardware.pinK) must be driven High. The thermistor can then be read via hardware.pinJ.
Electric Imp provides a Thermistor library to help you manage and utilize a connected thermistor.
The Battery Powered Sensor Node motherboard provides header pins (J2) which can be connected to an FTDI cable for debugging. The header provides GND, RX and TX pins — the latter two are connected to the imp003’s hardware.uartQRPW bus (pin Q TX, pin R RX).
The Battery Powered Sensor Node is fitted with reverse voltage protection and under-voltage lockout circuitry to, respectively, protect the unit against incorrect battery insertion, and to provide a graceful shutdown when the batteries can no longer supply sufficient power to the sensors. This circuitry is detailed in the schematics (see link below).
The Sensor Node must be powered by two AA batteries. We recommended Li/FeS2 cells (eg. Energizer L91).
The Battery Powered Sensor Node motherboard provides two user-controllable status LEDs, one blue, the other green. These are each controlled by an imp003 GPIO pin:
Each pin should be driven low to illuminate its LED.
Note If WiFi is disabled — for example, when the Battery Powered Sensor Node wakes from deep sleep — then the blue LED will not be powered. Call spiflash.enable() to provide it with power.