Difference between revisions of "Electrical Control Unit"

From Woodland Harvest Wiki
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
__Feel free to change the code on the Arduinos and platforms. Visitors and students can get editing access to the repository from Leon Santen or Odalys Benitez.__
 
__Feel free to change the code on the Arduinos and platforms. Visitors and students can get editing access to the repository from Leon Santen or Odalys Benitez.__
  
# LoRaWAN network on the farm
+
#LoRa Network
 
 
LoRa WAN is the internet-based version of LoRa. While LoRa communication only works between generally two devices, LoRa WAN can communicate between hundreds of devices by the means of a gateway. LoRa WAN consists of end-nodes and at least one gateway. Communication between the gateway and the nodes is bidirectional and based on LoRa radio communication. Refer to the [[LoRa research]] section for more info on how LoRa works and useful tutorials. This section is for on-the-farm system-specific information.
 
[[File:LoRaWANSystemDiagram.JPG|500px]]
 
  
 
On the Arduinos that are integrated into the system, we use the [Dragino LoRa shield](https://wiki.dragino.com/index.php?title=Lora_Shield). In the image below, you can see how the pins on the Dragino LoRa shield are assigned. This is useful as not all pins on the shield are useable. This is especially important on Arduino Unos that don't have as many pins as the Arduino Megas.</br>
 
On the Arduinos that are integrated into the system, we use the [Dragino LoRa shield](https://wiki.dragino.com/index.php?title=Lora_Shield). In the image below, you can see how the pins on the Dragino LoRa shield are assigned. This is useful as not all pins on the shield are useable. This is especially important on Arduino Unos that don't have as many pins as the Arduino Megas.</br>
[[File:Lora board.JPG|500px]]
+
[[File:Lora board.JPG|500px]]</br>
 +
_The Dragino LoRa shield. Blue-boxed pins are not used by the shield and are free to be used._
  
## Gateway
 
 
Our gateway is the [LG01-N Single Channel Gateway](https://www.seeedstudio.com/LG01-N-Single-Channel-LoRa-IoT-Gateway-p-2935.html).
 
 
## Nodes
 
## Nodes
  
Line 20: Line 15:
  
 
### master-arduino
 
### master-arduino
 +
 +
The master Arduino measures the battery voltage with the [Adafruit INA260](https://www.adafruit.com/product/4226?gclid=Cj0KCQiA4feBBhC9ARIsABp_nbUfI0ajLIOyZSA2bku_JZfo73gYy_W1wFGoZthBykCbWl1sPe3xmiYaAnboEALw_wcB) and broadcasts information wirelessly to the other Arduinos. The wireless system uses the [[LoRa research|LoRa protocol]] to communicate at 915 Mhz. For detailed information on what LoRa is and how it works, please refer to the [[LoRa research]] page. The diagram for states and communication codes is on [Whimsical](https://whimsical.com/rf-states-and-communication-codes-TEZgio2TPLtG5tm47541Hq). The prior link redirects you to the diagram.
 +
 
Purpose:</br>
 
Purpose:</br>
 
- Sense and broadcast battery voltage
 
- Sense and broadcast battery voltage
Line 27: Line 25:
  
 
### client_arduino_responsive-light
 
### client_arduino_responsive-light
 +
[[File:GlowingBucket.jpeg|250px]]</br>
 +
_The glowing crystal indicates the batterie's charge status._
 +
</br>
 +
 
Purpose:</br>
 
Purpose:</br>
 
- Receive battery voltage and change colors to indicate battery status
 
- Receive battery voltage and change colors to indicate battery status
Line 32: Line 34:
 
Data transmission:</br>
 
Data transmission:</br>
 
- NA
 
- NA
 +
 +
#### Color legend
 +
 +
- >= 27 V | Violet
 +
- between 25 and 27 V | __Green__
 +
- between 24.3 and 25 V | __Orange__
 +
- < 24.3 V | __Red__
  
  
# Repository Sections
+
# Repository sections - coding comments
 +
 
 +
_In this section, code-specific comments and tips can be written down for future collaboration if comments in the code don't feel appropriate._
  
 
## master-arduino
 
## master-arduino
 
The master Arduino, also called a server, measures the battery voltage with the [Adafruit INA260](https://www.adafruit.com/product/4226?gclid=Cj0KCQiA4feBBhC9ARIsABp_nbUfI0ajLIOyZSA2bku_JZfo73gYy_W1wFGoZthBykCbWl1sPe3xmiYaAnboEALw_wcB) and broadcasts information wirelessly to the other Arduinos. The wireless system uses the [[LoRa research|LoRa protocol]] to communicate at 915 Mhz. For detailed information on what LoRa is and how it works, please refer to the [[LoRa research]] page. The diagram for states and communication codes is on [Whimsical](https://whimsical.com/rf-states-and-communication-codes-TEZgio2TPLtG5tm47541Hq). The prior link redirects you to the diagram.
 
  
 
## client_arduino_responsive-light
 
## client_arduino_responsive-light
 
This unit receives the battery voltage from the master Arduino in the mudroom. Based on the voltage, the LED crystal shines in different colors.
 
This unit receives the battery voltage from the master Arduino in the mudroom. Based on the voltage, the LED crystal shines in different colors.
 
- >= 27 V | Violet
 
- between 25 and 27 V | __Green__
 
- between 24.3 and 25 V | __Orange__
 
- < 24.3 V | __Red__
 
  
 
## anemometer
 
## anemometer
Line 66: Line 70:
 
The [falstad online circuit simulator](https://www.falstad.com/circuit/circuitjs.html) is great to quickly test a circuit, check its output voltage or behavior.
 
The [falstad online circuit simulator](https://www.falstad.com/circuit/circuitjs.html) is great to quickly test a circuit, check its output voltage or behavior.
  
# Guides and tips
+
## Guides and tips
  
 
__Real Time Clock Setup for SD3231__
 
__Real Time Clock Setup for SD3231__

Latest revision as of 16:12, 13 April 2021

The electrical control unit is a wireless communication system that monitors the battery voltage and broadcasts other information. Please refer to the GitHub Repository "WoodlandHarvestControlSystem" for the code for all Arduinos. The over-the-air communication works on the LoRa system at 915 Mhz.

If you feel lost regarding working with any sensors or boards used in the system, check Useful Guides section at the bottom of this page.
Feel free to change the code on the Arduinos and platforms. Visitors and students can get editing access to the repository from Leon Santen or Odalys Benitez.

LoRa Network

On the Arduinos that are integrated into the system, we use the Dragino LoRa shield. In the image below, you can see how the pins on the Dragino LoRa shield are assigned. This is useful as not all pins on the shield are useable. This is especially important on Arduino Unos that don't have as many pins as the Arduino Megas.
Lora board.JPG
The Dragino LoRa shield. Blue-boxed pins are not used by the shield and are free to be used.

Nodes

The following nodes are curently in use:

master-arduino

The master Arduino measures the battery voltage with the Adafruit INA260 and broadcasts information wirelessly to the other Arduinos. The wireless system uses the LoRa protocol to communicate at 915 Mhz. For detailed information on what LoRa is and how it works, please refer to the LoRa research page. The diagram for states and communication codes is on Whimsical. The prior link redirects you to the diagram.

Purpose:
- Sense and broadcast battery voltage

Data transmission:
- float of battery voltage

client_arduino_responsive-light

GlowingBucket.jpeg
The glowing crystal indicates the batterie's charge status.

Purpose:
- Receive battery voltage and change colors to indicate battery status

Data transmission:
- NA

Color legend

  • >= 27 V | Violet
  • between 25 and 27 V | Green
  • between 24.3 and 25 V | Orange
  • < 24.3 V | Red

Repository sections - coding comments

In this section, code-specific comments and tips can be written down for future collaboration if comments in the code don't feel appropriate.

master-arduino

client_arduino_responsive-light

This unit receives the battery voltage from the master Arduino in the mudroom. Based on the voltage, the LED crystal shines in different colors.

anemometer

We are using a Vortex wind sensor. One revolution per second equals 2.5 mph. Since our anemometer has a relay (a mechanical switch), it creates a switch bounce. Therefore, we need a debounce circuit.
WindSpeed Porch Oct14.jpg

A bug with the current code seems to be related to saving the dateTime string. The dateTime string is saved incorrectly when there should be a trailing 0 in front of the minute reading. I believe that the current code does not include an additional 0 to save minute readings below 10.

Opportunities to improve the system

  • We are currently supplying power to the Arduinos via USB. If we use efficient Buck converters from the batteries to the Arduinos, we might save some electricity.
  • install a gateway for a LoRa WAN network

Helpful tools and guides

Tools

The falstad online circuit simulator is great to quickly test a circuit, check its output voltage or behavior.

Guides and tips

Real Time Clock Setup for SD3231

Tutorial on arduino.com

Download DS3231 library on GitHub

Data logging on SD-card

this randomnerdtutorial.com leads you through SD-card usage with an arduino.

Wireless communication with NRF24L01

We have long-run antennas for wireless communication (NRF24L01 Tutorial).
You should solder a 10uf electrolytic capacitor between the power leads.

How to connect several SPI devices to Arduino.

Non-invasive AC Current Sensor ANSANE SCT-013-030

Outputs approximately 1 V for every 30 A.

LoRa Overview on Digikey

https://www.digikey.com/en/maker/blogs/introduction-to-lora-technology

Voltage measuring with voltage divider circuit

For precise voltage measurements, it is recommended to use (analogRead(pin) + 0.5) * 5.0 / 1024.0 1.

References