Adding to the answer above, how to do this really depends on the load you want to switch.
Here's a post about how much current you can draw from the GPIO see here
A few cases:
1) You have only one LED, that's it, and 20mA or so will do. See here an internet article on how to do this with one resistorsee here
2) You have more than one LED, you want the ...
Exactly, Just use it as a switch.
I assume when the door is open or closed the Pi wants to know about it via one of it's input pins. Is the pi looking for a low? Then wire the switch from the input pin to ground and take a pull-up resistor to the +3.3V line. When the switch is open i.e. no magnet present, the input will be logic high. When the magnet ...
It's a switch. Connect it like you would any other switch. The only thing to decide is if you want to use it as normally open (normally reads as off) or normally closed (normally reads as on).
There are two basic ways - connect common to ground or connect common to 3V3. Whichever you choose it is safer to make that connection through a resistor to ...
The B+ has 26 usable gpios. In that context 8 doesn't seem a lot.
In effect you are trying to trade off the number of gpios used against complicating the circuit.
Have you considered a port expander, such as the popular MCP23017? That connects to the I2C bus (two gpios, SDA and SCL) and provides an additional 16 gpios per chip. Up to 8 MCP23017 may be ...
I just finished building a power-off circuit yesterday, although mine uses a momentary switch.
Here is the python code (with attribution embedded):
#This script was authored by AndrewH7 and belongs to him (www.instructables.com/member/AndrewH7)
#You have permission to modify and use this script only for your own personal usage
#You do not ...
I have a bank of 8 LEDs where I need to be able to tell which one of them a photoresistor is positioned over, and I think this is a version of the same problem.1 To determine which LED is lit, I don't need to be able to control them all individually. Instead I use 5 lines -- actually transistors toggling the return to ground, since one GPIO directly is not ...
Only reasons I would NOT use them are:
You end up with a connector not connected to anything and this can be misleading long term as you may wonder why
Some can be physically larger
Some can cost more though not normally an issue for the hobby
Labels on the switch can have both positions marked
The Raspberry Pi's GPIO pins work with 0V-3V3 differential from GND, and can work in either Output (the RPi sends out a signal) or Input (the RPi listens for a signal) mode. In Output mode, if you make the pin HIGH in your program, the GPIO pin's voltage will be at 3V3 compared to GND. If you make the pin LOW in your program, the GPIO pin's ...
It sounds like you are wanting to wire the wall switch and the relay as a three-way switch arrangement. This way, if the relay has the light turned on, flipping the wall switch will turn it off, and vice versa. You could wire a single-pole double-throw relay to work as a 3-way switch, and install a 3-way switch in the wall (if it isn't already a 3-way switch)...
You're looking at a floating input. When you read pin 25 without it being connected to anything at all it can be considered to have an undefined, unstable value. That's indicated by the LED randomly turning itself on and off. By pulling the value of the pin to ground with your resistor you render it non-floating.
The point of a pull-down is to ground an input when it otherwise isn't driven to a particular value -- a state known as high impedance or floating.
I was confused by the term "pull-down resistor" the first time I saw it. And the second, third etc. Read the wrong way it implies the resistor is the active element in the "pulling down", which it is not (...
The 40 pin expansion header connects to 28 GPIO. They are Broadcom GPIO 0 through 27.
You are recommended not to use GPIO 0/1 as they are intended to be used by HATs.
Any recent GPIO library will give access to all the GPIO connected to the expansion header.
The resistance of the cable is irrelevant in this case. Telephone cable would be suitable.
The configuration of switch in http://elinux.org/RPi_GPIO_Interface_Circuits is the most appropriate. You could use internal pullup, but I would recommend using resistors. Either NO or NC is suitable, just adjust your logic to suit.
I recommend you select a pin ...
I think I found what you are looking for :
In this exemple, we see that two switches are controlling one lamp, so toggling one of these switch will toggle the lamp.
In your case, you need to consider your relay as the first switch, and your pre-existing switch as the second one.
Image taken from : https://diy.stackexchange.com/questions/31632/wiring-a-...
The double switch method (also called a staircase switch) would be preferable, as it's easier to integrate with existing wiring, but it leaves your Pi without knowledge about the state of the load.
As I see it you have two options:
Make the switch pull an input high or low on the Raspi, which you then use in your code to control the lamp or other load ...
I've solved the problem.
UPDATE: The main issue appears to be in the kernel drivers. Problem solved by upgrading the kernel from 4.14.50-v7+ to the latest stable version (currently 4.14.79-v7+) using sudo apt-get install raspberrypi-kernel, and rebooting. The steps outlined below are no longer necessary. (reference).
UPDATE 2: Bad drivers on the client ...
You could simply wire the buttons up as a matrix, your usecase already describes the buttons being placed in a grid pattern. If you wire all the button pins vertically and horizontally you can form a matrix, with the 28 GPIO pins avalible on all Pi models but the first edition. You should be able to theoretically run 14^2 buttons or aprox 196 buttons.
The Raspberry Pi is not a good candidate for such an experiment. Raspbian is a general-purpose OS based on Debian Linux. Instead, buy, perhaps second-hand, a device intended to be a router that has multiple Ethernet ports and probably a wireless access point. Load one of the open-source firmware releases, DD-WRT, OpenWRT, Tomato, or perhaps something else....
I'm assuming the code you posted is for the push buttons?
Switches work very similar to push buttons. When you switch it on, voltage on your gpio port goes high until you switch it off. This is the same as if you were to hold a push button down for that same period of time. So lets modify this to your new requirements. You want:
On switch play sound a
It is trivial to write a script that runs the shutdown command on button press. The complication comes from people who want to power down the Pi. Unless you are using batteries this seems pointless.
It is simple to "restart" the B or B+ from the halt state see https://raspberrypi.stackexchange.com/a/23725/8697
I've re-indented your code, and you make a mistake on two lines (at line 68 and 117).
You wrote :
Whereas the correct way is :
Here is your file with the fix ;) :
var express = require('express');
var path = require('path');
var bodyParser = require('body-parser');
var gpio = require('pi-gpio');
var app = express();
var mysql = require('mysql');...
I hope it's not too late to answer your question; I encountered the same issue and wanted to post the solution I found! What I did was using the buttons and switches introduction on the official Raspberry site and their workaround.
It doesn't use add_event_detect but defines a function (called BtnCheck). What I use looks like this:
simulate this circuit – Schematic created using CircuitLab
Use either Option 1 or Option 2, depending on what parts you can find and what you're comfortable with. In either case, the Switch label on the transistor circuit connects to the Switch label on the relay circuit, so that the transistor is simply an amplifier to activate the relay. ...
The USB/Ethernet device you link to does not say anything about supporting PoE and so, I would assume it doesn't.
The power profile for the two connections is very different, and the logic in the device would need to draw power differently depending on what power was there. So, if they supported PoE they would be putting extra power handling devices in and ...
You can use a simple transistor to achieve this. It is much simpler than using a mechanical relay, and much smaller.
For NPN Only
You just need to find the + voltage (signal) of the remote wire and wire it properly to the transistor (C) Collector
Then the GND is common for the Pi and the Remote and wired to (E) Emiter
GPIO triggers the (B) Base
R1 are ...
This is a two state system -- the switch is either to the left or to the right. Since there are three pins, and presuming two of them are not hardwired together, this means the switch position determines which two pins are connected, and that one of the pins is always connected to another one. You want to determine which of the three pins that is -- I'll ...