Hot answers tagged

40

Here's how to connect a MCP9804. You can use it like this: root@raspberrypi:~# modprobe i2c-dev root@raspberrypi:~# modprobe i2c-bcm2708 root@raspberrypi:~# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1f 20: -- -- -- -- -- -- -- -- ...


23

Yes, this is normal for a DC drive configuration. You're effectively setting up an electrolysis experiment where the copper atoms on the positive electrode are being ionised, transported via the soil's water content across to the negative electrode where they are being deposited and returning to being copper atoms. This explains why the negative electrode ...


22

If you think about what is happening you have a very hostile environment for electronics (moisture - sometimes large amounts, soil PH and electrical current induced electrolysis) The Hookup Guide for the SparkFun Soil Moisture Sensor includes the following: One commonly known issue with soil moisture senors is their short lifespan when exposed to a ...


18

Given that your sensor is a DS18B20, and it is a 1-wire circuit and that 1-wire is a protocol that can do multiple adressing on that same bus and that the 1-wire temperature kernel module can read as many as 10 temperature sensors on the same bus. (check line 49 of the driver source code). If you just connect 10 of your sensors to the same 3 pins (3v3, GND ...


15

I suggest double checking your connections. ↑ my wiring (which works for me) ← From pi cheat sheet ↑ commands and example output + RRDTOOL graphs from DS18B20 (the one shown in top photo.) If a picture is worth a thousand words, why does stack exchange insist on 30 characters?


14

I had the same problem with Pi B+ and solved it by adding a line to /boot/config.txt. Add the following to the bottom: dtoverlay=w1-gpio,gpiopin=4 found the solution at: www.raspberrypi-spy.co.uk


13

The standard Lego Mindstorms sensors are analogue (i.e. a voltage between 0-5?V), or digital (I²C or RS-485) (source). Analogue sensors: I don't think the Raspberry Pi has a broken out pin in the GPIO for an ADC (analogue to digital converter), so we can't interface with analogue sensors (without an extra microcontroller). Digital sensors: The ...


13

You may use the Raspberry Pi built in serial port, and connect it to a digital thermometer IC (e.g. DS1620) You can find out serial port interfacing of Raspberry Pi here P1 (LEFT BOTTOM) - 3.3V P6 - GND P8 GPIO14 - TX P10 GPIO15 - RX Important: Remember the RPi UART runs at TTL 3.3V - Be careful not to use High Voltage 5v/12volt Uart direct to the RPi. ...


12

The short answer is yes. The pull up resistor ensures a valid logic level when the pins are switching from input to output, you won't melt anything but it may not function correctly. so you should add a 4.7K - 10KΩ resistor between the Data pin and the VCC pin. This tutorial froim Adafruit has a schematic and some info on logging your data.


12

The HC-SR04 can only be run with 5v(scroll down to specs). However, you can easily fix your problem if you have a breadboard. Assign one row as the 5v "rail" and attach as many sensors as needed. EDIT: How to use breadboard. Basically, the two long rows on the each side of the board can be used as rails for power supply. Just make sure you keep your 5v rail ...


10

Water meter pulse outputs are typically open drain. This means they are pulled to ground to signal a pulse and float high to an external voltage. As a quick check change the following two lines. GPIO.setup(FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) to GPIO.setup(FLOW_SENSOR, GPIO.IN, pull_up_down = GPIO.PUD_UP) and GPIO.add_event_detect(...


9

There are a few things in addition to the pi itself that are required, and if you do not already have them, you would want a kit that includes them. Generally these are appropriately priced, but depending on what is available to you it may also be easier to buy them separately: Micro SD card. You can get these with an operating system pre-burned, but do ...


8

I did some investigation into this matter and came up with the following results: The w1 kernel module and OWFS are not compatible at this moment, Like you probably know, OWFS works with many hardware devices (1wire bridges from USB/I2C/Serial/TCP, etc) which outperform any bit banging solution, In the source code of OWFS (specially the owlib part) there is ...


8

Adafruit now even has a tutorial to connect the DHT22 to the pi. The example code works on most Pis, I had to tweak the C code a little like posted in the raspberrypi.org forums (increase a sleep timer). For other working sensors (including 1-wire and I²C) take a look at my blog. But e.g. the TMP102 is still missing in the list.


8

First, lets check the characteristics of the MCP3008 again: Single supply operation: V_dd = 2.7V to 5.5V All Inputs and Outputs < V_dd + 0.6V (this should include V_ref) 200 ksps max. sampling rate at V_dd = 5V 75 ksps max. sampling rate at V_dd = 2.7V So powering the MCP3008 with the Pi's 3.3V it would be out of spec to apply 5V to V_ref. It is also ...


8

Yes, it's normal. One electrode (the anode) will oxidise. That said, it shouldn't happen so quickly. I guess you have the sensor powered constantly. That means you always enable corrosion. What you can do it so make sure there is current running to the sensor only when you take a reading from it. This will pause corrosion in between the measurements, and ...


7

An LM35 is not a 1-wire sensor. Its output is an analogue voltage proportional to the temperature. The Pi has no analogue inputs or outputs. You will need to use an ADC to read the sensor.


7

For the analog sensors such as the photoresister and the hall effect sensor (and most likely others as suggested in the comments), you can supply them with 3.3V and still have them work correctly. They should act as a simple variable resistance in the presence of an external influence. Hopefully the following image will illustrate for a photoresister; (...


6

Someone already implemented a module for LIRC (http://aron.ws/projects/lirc_rpi/). Just connect the sensor to the gpio pins. lirc_rpi is already present in current raspbian builds. The only thing you need to take into account is that some IR-sensors don't work on 3.3volt. Here a detailed explanation of how I added remote control to my pi (my orignal post at:...


6

It seems necessary for reliable readings. I started my project without pull up resistor and the humidity measurement started dropping down. It may start correctly but deterioate later. Since I was using pigpio module, I enabled internal pull up resistor as below: pi.set_pull_up_down(gpio, pigpio.PUD_ON) The gpio refers to your data pin.


6

Logic levels are detected by input pins. The difference between an input pin and an output pin is that an output pin has a specific voltage applied to it. An input pin does not, and when not connected to anything, it is in a high impedance, aka. a "floating", state which essentially means the voltage fluctuates randomly. This is the third state in 3-state ...


6

lrwxrwxrwx 1 root root 0 2016-02-19 22:24 thermal_zone0 -> ../../devices/virtual/thermal/thermal_zone0 lrwxrwxrwx 1 root root 0 2016-02-25 17:31 /sys/class/thermal/thermal_zone0/subsystem/thermal_zone0 -> ../../devices/virtual/thermal/thermal_zone0


6

The following code will scale to multiple sensors. If you want all triggers to be at exactly the same time then connect the same GPIO to each of the triggers. Use that GPIO for the last sonar's trigger. Give all the other sonars the trigger None. It should work unless you have a silly number of sensors on the same trigger. #!/usr/bin/env python # srte....


6

Linear for the win! y = (slope * x) + intercept is the classic linear formula, in your case, x=sensor, y=bars, so the formula becomes bars = (slope * sensor) + intercept ... and you have two data points of this formula, sensor@750, and sensor@3750 equation 1: 0 = (slope * 750) + intercept equation 2: 250 = (slope * 3750) + intercept ... lets rearrange ...


5

Adafruit has released a distro called occidentalis which has 1-wire support built in. One wire is most commonly used for DS18B20 temp sensors. The Pi does not have 'hardware' 1-wire support but it can bitbang it with some success. Connect a DS18B20 with VCC to 3V, ground to ground and Data to GPIO #4. Then connect a 4.7K resistor from Data to VCC. ...


5

OK, thanks for the input folks, it's working beautifully now. As gnibbler alluded to in the comments, I needed to connect the ground from the sensor and the RPi. I also had too high a resistance value between the LED and the GPIO.IN pin, which I was able to determine by expanding on the first debug test, i.e. touching the 3.3v before the resistor didn't ...


5

The link you give is to the soil sensor which is not an Arduino. Did you mean to ask whether you could use the soil sensor with the Pi? Yes you can but to get analogue results you'd need to add an ADC (I2C or SPI based ADCs are commonly available and will work with the Pi.) If you did mean to link to an Arduino then yes you can use an Arduino with the Pi. ...


5

From the given project description I'll jump for: Yes, it seems reasonable that a RaspberryPi can handle this project. Accelerometers and gyroscopes can be connected via the GPIO pins and the computational power is certainly sufficient to process speech - especially for something as limited as in this task "click". Instead of repeating content here I'll give ...


5

The sensor datasheet will tell you the permitted input voltage range. Although you will get results by powering the HC-SR04 from 3V3 the results will not be reliable. If you want accurate readings you need to power from 5V. See this post. 3V3 5V There is no reason not to power more than one device from a 5V pin. If you have a breadboard just connect ...


5

The DS18B20 is a digital sensor using the Dallas 1-wire protocol. If you just want to get figures to play with you could, as you say, connect an ADC and twiddle a pot. However a simpler, and perhaps more useful, source of data is the SOC (System on a Chip) temperature. The following C snippet will print the SOC temperature. void get_SOC_temp() { FILE *...


Only top voted, non community-wiki answers of a minimum length are eligible