|
@@ -22,7 +22,7 @@ One of the other requirements is that the code be 100% open sourced, |
|
|
not GPL licensed, and no proprietary components. This meant that using |
|
|
not GPL licensed, and no proprietary components. This meant that using |
|
|
IDE's like ST's STM32CubeIDE which is only available in binary form |
|
|
IDE's like ST's STM32CubeIDE which is only available in binary form |
|
|
was not a choice, as that would preclude building on an operating |
|
|
was not a choice, as that would preclude building on an operating |
|
|
system other than Windows/MaxOS/Linux. |
|
|
|
|
|
|
|
|
system other than Windows/MacOSX/Linux. |
|
|
|
|
|
|
|
|
Architecture |
|
|
Architecture |
|
|
------------ |
|
|
------------ |
|
@@ -158,7 +158,7 @@ Here is a diagram of the connections: |
|
|
******************************************************************************************* |
|
|
******************************************************************************************* |
|
|
``` |
|
|
``` |
|
|
|
|
|
|
|
|
The noral supply used for irrigation values is 24V AC. This means |
|
|
|
|
|
|
|
|
The normal supply used for irrigation values is 24V AC. This means |
|
|
an additional power supply is needed to convert to the 5V supply that |
|
|
an additional power supply is needed to convert to the 5V supply that |
|
|
is used by the Node151. Make sure this is well filtered as both the |
|
|
is used by the Node151. Make sure this is well filtered as both the |
|
|
relays on the board (talked about below), and the irrigation valves |
|
|
relays on the board (talked about below), and the irrigation valves |
|
@@ -188,12 +188,12 @@ strobe library that in distributed in this repo. In general a |
|
|
[virtualenv](https://virtualenv.pypa.io/en/latest/) is recommended for |
|
|
[virtualenv](https://virtualenv.pypa.io/en/latest/) is recommended for |
|
|
all installed Python software to prevent version conflicts, but is not |
|
|
all installed Python software to prevent version conflicts, but is not |
|
|
always necessary. The `requirements.txt` file contains the necessary |
|
|
always necessary. The `requirements.txt` file contains the necessary |
|
|
modules to be installed, but simply addeding the directory |
|
|
|
|
|
|
|
|
modules to be installed, but simply adding the directory |
|
|
`strobe/python` to PYTHONPATH should be sufficient. |
|
|
`strobe/python` to PYTHONPATH should be sufficient. |
|
|
|
|
|
|
|
|
The program `loraserv.py` takes a single argument, which is the device |
|
|
The program `loraserv.py` takes a single argument, which is the device |
|
|
file for the VCP that runs on the gateway. In my case, the device |
|
|
file for the VCP that runs on the gateway. In my case, the device |
|
|
name is `/dev/cu.usbmodem1451` as I am on my MacBook Pro, so the comand |
|
|
|
|
|
|
|
|
name is `/dev/cu.usbmodem1451` as I am on my MacBook Pro, so the command |
|
|
to launch the gateway is simply: |
|
|
to launch the gateway is simply: |
|
|
``` |
|
|
``` |
|
|
python loraserv.py /dev/cu.usbmodem1451 |
|
|
python loraserv.py /dev/cu.usbmodem1451 |
|
@@ -222,7 +222,7 @@ hyphens). For example: |
|
|
python lora.py -s <sharedkey> -- setunset 4 0 -- setunset 1 1 |
|
|
python lora.py -s <sharedkey> -- setunset 4 0 -- setunset 1 1 |
|
|
``` |
|
|
``` |
|
|
|
|
|
|
|
|
The first `--` is required to denote the end of option pasing, |
|
|
|
|
|
|
|
|
The first `--` is required to denote the end of option parsing, |
|
|
otherwise the second `--` will be used, and the first `setunset` |
|
|
otherwise the second `--` will be used, and the first `setunset` |
|
|
command will be tried to be parsed as an argument. |
|
|
command will be tried to be parsed as an argument. |
|
|
|
|
|
|
|
@@ -248,24 +248,24 @@ which will make sure all the valves are turned off, then run each one |
|
|
in succession for 60 seconds, with a 2 second wait between. |
|
|
in succession for 60 seconds, with a 2 second wait between. |
|
|
|
|
|
|
|
|
There are two types of commands, ones that execute immediately, and ones |
|
|
There are two types of commands, ones that execute immediately, and ones |
|
|
that are queued up for future exectuion. The immediate commands are: |
|
|
|
|
|
|
|
|
that are queued up for future execution. The immediate commands are: |
|
|
* `adv`: Sets the current executing command to 0. An optional argument |
|
|
* `adv`: Sets the current executing command to 0. An optional argument |
|
|
specifies how many commands to advance by. Note that only the time |
|
|
specifies how many commands to advance by. Note that only the time |
|
|
they are run is set to zero, so channels will be very briefly |
|
|
they are run is set to zero, so channels will be very briefly |
|
|
activated. See the clear command to avoid this. |
|
|
activated. See the clear command to avoid this. |
|
|
* `clear`: No arguemnt, removes any future commands. Current command |
|
|
|
|
|
|
|
|
* `clear`: No argument, removes any future commands. Current command |
|
|
remains executing. To clear all commands and stop all operations, |
|
|
remains executing. To clear all commands and stop all operations, |
|
|
first do a `clear`, followed by an `adv`. |
|
|
first do a `clear`, followed by an `adv`. |
|
|
* `ping`: No arguemnt, used to verify communication works. |
|
|
|
|
|
|
|
|
* `ping`: No argument, used to verify communication works. |
|
|
* `setunset`: First argument is channel, second argument is 0 or 1, |
|
|
* `setunset`: First argument is channel, second argument is 0 or 1, |
|
|
specifying to turn the channel off (0) or on (1). |
|
|
specifying to turn the channel off (0) or on (1). |
|
|
|
|
|
|
|
|
The following commands are queued. The first argument is the number |
|
|
The following commands are queued. The first argument is the number |
|
|
of miliseconds to run the command for before advancing to the next |
|
|
|
|
|
|
|
|
of milliseconds to run the command for before advancing to the next |
|
|
command. The available commands are: |
|
|
command. The available commands are: |
|
|
* `runfor`: And additional arugment specifies the channel. The |
|
|
|
|
|
|
|
|
* `runfor`: And additional argument specifies the channel. The |
|
|
channel will be set to on, and then when the command completes, The |
|
|
channel will be set to on, and then when the command completes, The |
|
|
chanell will be set to off. |
|
|
|
|
|
|
|
|
channel will be set to off. |
|
|
* `waitfor`: Wait for the specified time before advancing to the next |
|
|
* `waitfor`: Wait for the specified time before advancing to the next |
|
|
enqueued command. |
|
|
enqueued command. |
|
|
|
|
|
|
|
|