This section outlines the fabrication and hardware for protype 0.9
- Prototype 0.9 Fabrication
This section is only a snapshot for this protype’s smart device hardware. This is not the most up to date hardware, please refer to the Smart Device Section for the most recent smart device information.
- 1x Arduino Zero
- 1x Arduino Micro Jumper
- 1x NB-IoT Shield
- 1x Proto Shield Rev3 (Uno Size)
- 4x 2N7000-G Transistors
- 11x Arduino Male Pin Header
- 3x 10kΩ Resistor
The buoy device uses an Arduino Zero board as the brain of the device. This Arduino Zero performs all processing and sensor measurements.
We will not go into the specifics of the Arduino Zero in this documentation as there are sources online. However, there are some important points that should be noted.
The Arduino Zero can only handle voltages of 3.3 volts and lower, any voltage greater than this will fry the board.
- The Arduino Zero does not have persistent memory, unlike the Arduino Uno.
The Arduino Zero includes a debugger chip, however this chip, even when off, draws too much power. To minimize the power draw for the Arduino Zero a jumper is soldered to the Arduino Zero to completely cut power to the debugger chip.
To enable the debugger chip, the 0Ω resistor highlighted on the image below must be shorted. The jumper allows this circuit to be cut, which would completely cut power to the debugger chip.
Once the jumper receiver is successfully soldered on, the board should look like below:
With this receiver now attached, the Arduino Micro Jumper, shown below, can be used to enable the debugger chip.
WARNING: The debugger chip must be enabled when the Arduino Zero is first turned on. Once the Arduino Zero has been flashed and turned on, the jumper can be removed, and the debugger chip disabled to save power.
The module that allows the buoy device to send data and communicate with the cloud is the NB-IoT shield.
This shield rests on top of the Arduino Zero as a standard shield, connected by the pins sticking out the bottom of the shield.
This shield uses some of the pins on the Arduino Zero to function.
These pins cannot be used for any other purpose and attempting to do so will likely fry the board.
With regards to wiring the sensors, the particular pins that care should be taken to avoid are the Digital pins 10 and 11.
Further information can be found here: https://github.com/dragino/NB-IoT
The narrowband network has a power saving mode that NB-IoT shield can use to draw less power. However, this power saving mode has specific periods for sleep and wake time.
As such, a GPIO (General Purpose Input / Output) pin is used to wake up the NB-IoT shield for transmitting.
However, there is no way to access the power key pin, which will wake up the NB-IoT shield for transmissions, normally.
To access this pin, a wire must be attached (soldered) to the bottom of the NB-IoT shield.
The middle pin of the middle three pin set, highlighted above, is linked to the NB-IoT module power key pin.
The other end of the wire should be plugged into digital pin 12.
Digital pin 12 was coded to power on the NB-IoT module. However, this pin is not special, any pin could be set to power on the NB-IoT module.
The NB-IoT module has been setup to use a Rogers Narrow Band Sim Card.
The sim cards must follow the following format, 89302820… . The 820 part of the number is the important part.
If the sim card has the following format, 89302720… . Then the sim card will connect to the LTE M1 Network for Rogers. This network does not have PSM (Power saving mode) or E-I-DRX (Extended Idle Discontinuous Reception), all of which is needed for power saving on the device.
To organize the wiring and create the appropriate sensor circuits, an Arduino PERF shield is used.
An image of the PERF shield circuitry can be seen below.
As identified on the image above, the PERF Shield has hardware for various purposes.
The board uses four transistors to turn off and on the more power-hungry sensors. By using one of the digital pins to supply voltage to the transistor, power from the constant power supply pins can be controlled.
Additionally, a group of resistors act as a voltage divider, downscaling the return voltage of the turbidity sensor from the max 4.5 volts to a max 3.0 volts. This is essential as the turbidity sensor requires 5.0 volts to operate and the return voltage of 4.5 volts is above the maximum 3.3 volts that the Arduino Zero can accept without frying the board.
The PERF Sheild is where all the sensors are wired to the device.
The image above shows the pins and important locations on the PERF shield where the sensors are wired.
Some sensors can only be wired to the specific pins, while other sensors can be moved.
The circuit diagram for the perf shield can be seen above. This diagram can be used to properly wire the current sensors.
This prototype is powered by an Infinity IT12-12 F2 Rechargeable Sealed Lead Acid (VRLA) Battery.
This battery provides 12 volts, however any voltage supply above approximately 11 volts seems to garble the messages sent to the NB-IoT shield. To fix this issue, a DFR0205 power module, a small size 5A 350KHz 25V Buck DC to DC Converter, is used to step down the voltage from the battery from 12 volts to 9 volts.
The device enclosure protects and stores the device hardware and power supply.
The general layout of the hardware can be seen below.
This layout does not include measurements and is intended to guide installation of the hardware components once the backplate has been fabricated.
The sensors wires had to be lengthened to reach from the device enclosure down into the water. This was generally not a problem with the exception of the temperature sensor and calibration.
The temperature sensor uses the OneWire Protocol to communicate and this protocol uses periods of high and low voltage to represent the messages. With the longer wires inductance becomes an issue and the messages become garbled.
To address this issue, a resistor was added to the temperature sensor board to pull more current. This higher current reduced the inductance and allowed the messages to become clearer.
The image above shows the temperature sensor board and the 10k ohm resistor between the power and data lines, which is being used to pull this extra current.
Finally, these longer wires will affect the calibration of the sensors. Once the sensors are attached to the tether, all sensors must be recalibrated to take into account the longer wire.
A float was created to keep the sensor in a consistent formation and at a consistent depth.
A pipe was fabricated to house the sensor floaty and extended from the device enclosure down to the water.
This pipe has been perforated on the bottom to allow water to travel through it, so that the sensor could properly measure the water quality.