diff options
Diffstat (limited to 'dgbuilder/core_nodes/hardware/36-rpi-gpio.html')
-rw-r--r-- | dgbuilder/core_nodes/hardware/36-rpi-gpio.html | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/dgbuilder/core_nodes/hardware/36-rpi-gpio.html b/dgbuilder/core_nodes/hardware/36-rpi-gpio.html new file mode 100644 index 00000000..9e705c2c --- /dev/null +++ b/dgbuilder/core_nodes/hardware/36-rpi-gpio.html @@ -0,0 +1,182 @@ +<!-- + Copyright 2013,2014 IBM Corp. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<script type="text/x-red" data-template-name="rpi-gpio in"> + <div class="form-row"> + <label for="node-input-pin"><i class="fa fa-circle"></i> GPIO Pin</label> + <select type="text" id="node-input-pin" style="width: 200px;"> + <option value="-" disabled>select pin </option> + <option value="3">3 - SDA1 </option> + <option value="5">5 - SCL1 </option> + <option value="7">7 - GPIO7</option> + <option value="8">8 - TxD </option> + <option value="10">10 - RxD </option> + <option value="11">11 - GPIO0</option> + <option value="12">12 - GPIO1</option> + <option value="13">13 - GPIO2</option> + <option value="15">15 - GPIO3</option> + <option value="16">16 - GPIO4</option> + <option value="18">18 - GPIO5</option> + <option value="19">19 - MOSI </option> + <option value="21">21 - MISO </option> + <option value="22">22 - GPIO6</option> + <option value="23">23 - SCLK </option> + <option value="24">24 - CE0 </option> + <option value="26">26 - CE1 </option> + </select> + <span id="pitype"></span> + </div> + <div class="form-row"> + <label for="node-input-intype"><i class="fa fa-long-arrow-up"></i> Resistor?</label> + <select type="text" id="node-input-intype" style="width: 150px;"> + <option value="tri">none</option> + <option value="up">pullup</option> + <option value="down">pulldown</option> + <!--<option value="tri">tristate</option>--> + </select> + </div> + <div class="form-row"> + <label for="node-input-name"><i class="fa fa-tag"></i> Name</label> + <input type="text" id="node-input-name" placeholder="Name"> + </div> + <div class="form-tips">Tip: Only Digital I/O is supported - input must be 0 or 1.</div> +</script> + +<script type="text/x-red" data-help-name="rpi-gpio in"> + <p>Raspberry Pi input node. Generates a <b>msg.payload</b> with either a 0 or 1 depending on the state of the input pin. Requires the gpio command to work.</p> + <p>You may also enable the input pullup resitor or the pulldown resistor.</p> + <p>The <b>msg.topic</b> is set to <i>pi/{the pin number}</i></p> + <p><b>Note:</b> we are using the actual physical pin numbers on connector P1 as they are easier to locate.</p> + <p><b>Note:</b> This node currently polls the pin every 250mS. This is not ideal as it loads the cpu, and will be rewritten shortly to try to use interrupts.</p> + +</script> + +<script type="text/javascript"> + RED.nodes.registerType('rpi-gpio in',{ + category: 'advanced-input', + color:"#c6dbef", + defaults: { + name: { value:"" }, + intype: { value: "in" }, + pin: { value:"",required:true,validate:RED.validators.number() }, + }, + inputs:0, + outputs:1, + icon: "rpi.png", + label: function() { + return this.name||"Pin: "+this.pin ; + }, + labelStyle: function() { + return this.name?"node_label_italic":""; + }, + oneditprepare: function() { + $.getJSON('rpi-gpio/'+this.id,function(data) { + $('#pitype').text(data.type); + if (data.type === "Model B+") { + $('#node-input-pin').append($("<option></option>").attr("value",27).text("27 - SDA0")); + $('#node-input-pin').append($("<option></option>").attr("value",28).text("28 - SCL0")); + $('#node-input-pin').append($("<option></option>").attr("value",29).text("29 - GPIO21")); + $('#node-input-pin').append($("<option></option>").attr("value",31).text("31 - GPIO22")); + $('#node-input-pin').append($("<option></option>").attr("value",32).text("32 - GPIO26")); + $('#node-input-pin').append($("<option></option>").attr("value",33).text("33 - GPIO23")); + $('#node-input-pin').append($("<option></option>").attr("value",35).text("35 - GPIO24")); + $('#node-input-pin').append($("<option></option>").attr("value",36).text("36 - GPIO27")); + $('#node-input-pin').append($("<option></option>").attr("value",37).text("37 - GPIO25")); + $('#node-input-pin').append($("<option></option>").attr("value",38).text("38 - GPIO28")); + $('#node-input-pin').append($("<option></option>").attr("value",40).text("40 - GPIO29")); + } + }); + } + }); +</script> + + +<script type="text/x-red" data-template-name="rpi-gpio out"> + <div class="form-row"> + <label for="node-input-pin"><i class="fa fa-circle"></i> GPIO Pin</label> + <select type="text" id="node-input-pin" style="width: 200px;"> + <option value="-">select pin </option> + <option value="3">3 - SDA1 </option> + <option value="5">5 - SCL1 </option> + <option value="7">7 - GPIO7</option> + <option value="8">8 - TxD </option> + <option value="10">10 - RxD </option> + <option value="11">11 - GPIO0</option> + <option value="12">12 - GPIO1</option> + <option value="13">13 - GPIO2</option> + <option value="15">15 - GPIO3</option> + <option value="16">16 - GPIO4</option> + <option value="18">18 - GPIO5</option> + <option value="19">19 - MOSI </option> + <option value="21">21 - MISO </option> + <option value="22">22 - GPIO6</option> + <option value="23">23 - SCLK </option> + <option value="24">24 - CE0 </option> + <option value="26">26 - CE1 </option> + </select> + <span id="pitype"></span> + </div> + <div class="form-row"> + <label for="node-input-name"><i class="fa fa-tag"></i> Name</label> + <input type="text" id="node-input-name" placeholder="Name"> + </div> + <div class="form-tips">Tip: Only Digital I/O is supported - input must be 0 or 1.</div> +</script> + +<script type="text/x-red" data-help-name="rpi-gpio out"> + <p>Raspberry Pi output node. Expects a <b>msg.payload</b> with either a 0 or 1 (or true or false). Requires the gpio command to work.</p> + <p>Will set the selected physical pin high or low depending on the value passed in.</p> + <p><b>Note:</b> we are using the actual physical pin numbers on connector P1 as they are easier to locate.</p> +</script> + +<script type="text/javascript"> + RED.nodes.registerType('rpi-gpio out',{ + category: 'advanced-output', + color:"#c6dbef", + defaults: { + name: { value:"" }, + pin: { value:"",required:true,validate:RED.validators.number() }, + }, + inputs:1, + outputs:0, + icon: "rpi.png", + align: "right", + label: function() { + return this.name||"Pin: "+this.pin; + }, + labelStyle: function() { + return this.name?"node_label_italic":""; + }, + oneditprepare: function() { + $.getJSON('rpi-gpio/'+this.id,function(data) { + $('#pitype').text(data.type); + if (data.type === "Model B+") { + $('#node-input-pin').append($("<option></option>").attr("value",27).text("27 - SDA0")); + $('#node-input-pin').append($("<option></option>").attr("value",28).text("28 - SCL0")); + $('#node-input-pin').append($("<option></option>").attr("value",29).text("29 - GPIO21")); + $('#node-input-pin').append($("<option></option>").attr("value",31).text("31 - GPIO22")); + $('#node-input-pin').append($("<option></option>").attr("value",32).text("32 - GPIO26")); + $('#node-input-pin').append($("<option></option>").attr("value",33).text("33 - GPIO23")); + $('#node-input-pin').append($("<option></option>").attr("value",35).text("35 - GPIO24")); + $('#node-input-pin').append($("<option></option>").attr("value",36).text("36 - GPIO27")); + $('#node-input-pin').append($("<option></option>").attr("value",37).text("37 - GPIO25")); + $('#node-input-pin').append($("<option></option>").attr("value",38).text("38 - GPIO28")); + $('#node-input-pin').append($("<option></option>").attr("value",40).text("40 - GPIO29")); + } + }); + } + }); +</script> |