Back

Comments 53

  • Snap Circuits® - Snapino Capacitance Meter about 1 year ago

    There are not enough pieces in the Snapino 20 kit. Buying a Snap Circuit 300 set is a great option and it can be upgraded to a 500 or 750 set at a later time.

  • Snap Circuits® - Count Down Launcher over 1 year ago

    For this lab, there are not enough snap pins exposed to directly support it. I recommend that you purchase the Snap-to-Pin wire. This will allow you to use all of the pins on the Snapino (which is an Arduino Uno) directly. Using these wires you will be able to replace the Uno with the Snapino.

    Reach out to me anytime if you have questions about or need help with Snap Circuits.

  • Pathfinder over 1 year ago

    Lot's of great services to print 3d models online. I don't have a 3d printer, I just send out for my prints.

  • Use a PC Fan as a Sensor over 1 year ago

    To do this you would need to know the dimensions of the fan and calculate the air flow as it relates to the number of times the fan rotates. You may be able to approximate by using the fan's specifications (cfm).

  • Arduino MIDI Stepper Synth over 1 year ago

    I have to admit, I had no idea what you were building until I watched the video. This is really cool! Thanks for sharing.

  • DHT11 /DHT22 Temperature Sensor almost 2 years ago

    Based on your description, everything seems right. Some ideas...

    Take a look at the pin diagram here to double-check your wiring:

    https://docs.microsoft.com/en-us/windows/iot-core/learn-about-hardware/pinmappings/pinmappingsrpi

    The web page for your Kuman DHT11 states it has a built in pull-up resistor. It doesn't give the size but from the photo looks to be 1K. This may be too small a value so you could try adding a 4.7K resistor between the data pin and 3.3V, just to be sure. If this does not make a difference, be sure to remove it before trying anything else.

    You could also try using another GPIO such as 5 (pin 29). On GPIO 5 your code could be either (try both)

    _dht = new Dht11(_pin, GpioPinDriveMode.Input);
    

    or

    _dht = new Dht11(_pin, GpioPinDriveMode.InputPullUp);
    

    One last thing to try, if you have any type of Arduino such as an Uno, connect the DHT11 to this board and test it with a DHT library. This is pretty straightforward. This optional test helps to determine if the sensor is working or not. There is information in this article on using this sensor with the Uno. Here is another Hackster article showing how to do this:

    https://www.hackster.io/techno_z/dht11-temperature-humidity-sensor-98b03b

  • DHT11 /DHT22 Temperature Sensor almost 2 years ago

    I'm not exactly sure what the issue is, but you can check your VS 2017 install. Make sure you have all of the latest updates installed. In addition, using the installer, select the Individual Components tab and make sure the Windows 10 SDK's are installed for both C# and C++.

  • DHT11 /DHT22 Temperature Sensor about 2 years ago

    I apologize but I missed this comment. There is a new package on NuGet that corrects this issue.

  • DHT11 /DHT22 Temperature Sensor about 2 years ago

    The original NuGet package was not created correctly. It worked previously but seemed to stop working in VS2017. I updated the library in VS 2017, recompiled and created a new NuGet package. Please update the package and let me know if your problem is resolved or not.

    Latest Nuget package version is 1.0.1

  • DHT11 /DHT22 Temperature Sensor about 2 years ago

    It may help to read through all the previous comments if you have not already done so.

    If you are using the DHT22, ensure you use the Dht22 object in code. The DHT22 does not need a pull-up resistor but the data sheet suggests a capacitor:

    "One capacitor valued 100nF can be added between VDD and GND for wave filtering."

    If you have an Arduino of any kind (such as an Uno) you can connect the sensor to this device to ensure the sensor works.

  • Outboard Motor Throttle Controller over 2 years ago

    Cool idea, nicely built!

  • Pi Time - A Fabric Arduino Clock over 2 years ago

    This is really awesome and unique. I love it!

  • DHT11 /DHT22 Temperature Sensor almost 3 years ago

    I have been unable to reproduce this issue, however, I made a few updates that may help.

    First, I updated the minimum and maximum platform targets. I also updated the Microsoft.NETCore.UniversalWindowsPlatform NuGet package to the latest version supported by Visual Studio 2015.

    Second, I creatd a NuGet package with the Dht library. The package ID is Dht (DHT11/DHT22 Library). To install this package right-click the project and select Manage NuGet Packages... and type Dht in to find the package. Alternatively you can use the following command in the NuGet Package Manager Console.

    PM> Install-Package Dht
    

    Please try pulling the code down again from GitHub, or, just try adding the NuGet package to your application.

  • DHT11 /DHT22 Temperature Sensor almost 3 years ago

    I will post this on Stack Overflow as well...

    The write() command on the Arduino platform only writes a single byte. You are attempting to write the entire string in a single command. You will need to loop through the array and send each byte separately.

    However, as soon as you do this, you will run into the 32-byte buffer limitation. It is possible to increase the buffer to 64 bytes, but this is the limit on the Uno (Atmel 328).

    I put some code together to show how to setup a relationship between the Uno and the Raspberry Pi that can transfer a JSON string of varying sizes. The code is in GitHub at https://github.com/porrey/i2c.

    If you want to see more ways to use I2C to communicate between an Arduino and a Raspberry Pi running Windows IoT Core see these Hackster projects:

    https://www.hackster.io/porrey/discover-i2c-devices-on-the-raspberry-pi-84bc8b
    https://www.hackster.io/porrey/dht-tiny-breakout-for-the-raspberry-pi-19cfc9
    https://www.hackster.io/porrey/bridging-the-raspberry-pi-and-the-arduino-77a9d9

  • DHT11 /DHT22 Temperature Sensor almost 3 years ago

    Step one is to ensure you are using the DHT11 class instead of the DHT22 class. If you are using the DHT11 class already, the next thing I would check is whether this could be related to timing based on the other sensors. Since this sensor requires precise timing, it is possible that reading from the other sensors is causing the issue. Try commenting out all the other code and see I you can read the DHT11 by itself. If you can, add the sensors back one at a time and see if the DHT11 starts to fail. If by itself, it does not read, check the circuit. I also like to do a quick test with an Arduino to ensure he sensor is working. If you have any Arduino, try hooking the sensor up to that and do a quick sensor test.

    If all this still does not yield a good result, let me know. I may be able to help troubleshoot via pictures of the circuit or with access to the code.

    You may also want to check out my article titled "DHT Tiny Breakout for the Raspberry Pi" for an alternative. This is a little more complex and requires an ATtiny85 chip, but yields perfect readings every time.

  • DHT11 /DHT22 Temperature Sensor almost 3 years ago

    Which sensor are you using (DHT11 or DHT22)? Ensure that you are using the correct class which your sensor there is a separate class for the DHT11 and DHT22). Also, if you have any type of Arduino (such as an Uno) or a compatible, a quick check on that device will help determine if the sensor is functioning properly or not.

  • DHT11 /DHT22 Temperature Sensor about 3 years ago

    The first verification step is to make sure you are using the Dht11 class with the DHT11 sensor and the Dht22 class with the DHT22 sensor. If this checks out let me know...

  • Use a PC Fan as a Sensor about 3 years ago

    The yellow wire from the fan is connected to the data pin on the Arduino and to power via a 10K Ohm resistor. This resistor is a pull-up resistor to keep the pin HIGH until pulled LOW by the fan sensor. Without this resistor, the value read from the wire would "float" and give false readings.

  • Use a PC Fan as a Sensor about 3 years ago

    Thanks for the tip. You just made me curious about that technique.

  • Use a PC Fan as a Sensor about 3 years ago

    Thanks for the comment and tip. I am going to try it the way you set it up too.

  • Use a PC Fan as a Sensor about 3 years ago

    I'll pull out the oscilloscope and get a trace I can add to the article.

  • Use a PC Fan as a Sensor about 3 years ago

    With the current code and configuration I presented here, it is not possible to detect direction. The pulse will be sent from the fan regardless of the direction.

    That is not to say that something couldn't be added or change to make it possible. The best way to experiment with it is to throw an oscilloscope on the output and watch what happens when it is spun in either direction. This would provide an indication of whether or not direction could be detected by some other means.

    If you do not have one, here is an inexpensive unit that I picked up, and it does the trick. The SainSmart DDS120 Portable Handheld PC-Based USB Digital Storage Oscilloscope 20MHz Bandwidth 50M/S:

    https://www.amazon.com/gp/product/B00FYGEFYM/ref=oh_aui_search_detailpage?ie=UTF8&psc=1

    I used this to test the sensor output on various fans to determine if I could pick up the pulse without connecting power to the red wire of the fan.

  • Use a PC Fan as a Sensor about 3 years ago

    That's a great question, but one that I do not have an answer for fully. I do know that some fans work fine and some do not. I am currently using this in a device that monitors air flow. I do not power the third pin and I am getting pulses back from the fan.

    One thing to keep in mind is that the Hall voltage (Vh) produce by the sensor dos not need power. The voltages produced can be too low, in some cases, to be detected, so Hall effect sensors have built in DC amplifiers, logic switching and voltage regulators to make them easier to read.

    My theory here is that either some of these fans contain a readable Vh, or they all do and some are just “blocked” by additional circuitry in the fan.

  • DHT Tiny Breakout for the Raspberry Pi about 3 years ago

    Yes, you are correct. I looked at it again and it is using another library. I have a few DHT libraries installed. It is using DHTlib which needs to be downloaded. I had it in the source code folder and then moved it to the library folder, which is why it still has "" instead of <>. I just added the files to GitHub to make it easier.

    If you plan to load it to an ATtiny85, you will need to install the TinyWireS library into your libraries folder. I did not put this one in the project because it would cause issues for other chips.

    https://github.com/rambo/TinyWire

  • DHT Tiny Breakout for the Raspberry Pi about 3 years ago

    Thank you for your comments.

    The slave code is already set up to run on an Uno, if you have one. It will probably work on any Arduino, but I only tested it on an ATtiny85 and a ATmega328. I used the Uno for debugging, which is much easier than debugging on the tiny.

    I use the Arduino DHT library. Open the library manager and type DHT and you will find it. I should add some comments about the required libraries. Thanks for pointing that out.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    You should be able to use the standard file methods to read and write to the SD card. Take a look specifically at the StorageFolder and StorageFile objects.

    Something like this (caution, untested code ahead):

    StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;

    StorageFile file = await localFolder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting);

    await FileIO.WriteTextAsync(file, text);

    As for the Hub, assuming you are using Azure, you will want to start with the Azure SDK and sample code for Windows 10 IoT Core. See https://azure.microsoft.com/en-us/documentation/services/iot-hub/. Click the start tutorial button. This is a fully documented guide that should get you on your way.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    I know in Windows there are options to control thread priority, but not sure if these exist in IoT Core. I am also not sure if it would work. If someone gives it a try I would be interested in the results.

    What we need is for Microsoft to build in some low level capability for devices like this. The OneWire protocol is very common and should be directly supported by the OS in my opinion. Since the DHT is proprietary, I do expect built in support, but maybe Microsoft would be willing since it is very popular.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    The resistor is used as a pull-up and is needed because the sensor can be used on a 3.3V or 5V system. Using the resistor is like "telling" the sensor whether it is 3.3V or 5V.

    Officially, the signal lime is open-drain (or tristate) so that the sensor does not have to (or cannot) control the data line. When the resistor is connected to Vdd, the line is kept high while the device is not being communicated with, which is what the sensor expects. If this is not done, the sensor may not respond.

    You can set a port as INPUT_PULLUP on some devices and therefore omit the resistor.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    Any luck yet? Simple check: make sure the resistor is the right size and connected right. The data pin is set to work on both 3.3V and 5V systems, so the pull-up resistor is absolutely required.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    please see my latest comment - thanks

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    This may be good news for some, bad news for others.

    I ran several experiments and could not reproduce any failure. I ran the sensor under varying framework and OS combinations to determine if any combination was contributing to failures. My circuit included only the resistor (as shown in the diagrams) and not a capacitor.

    The first run was with OS 1.0.10586.0 and Target Platform Build 10240. This ran for 8 hours before Windows Insider updated my PC and rebooted it (I was running in debug mode).
    The second run was the same and ran for 12+ hours with no issues. The code successfully read a total 86.7% of the attempts with 1.18 seconds per reading.

    The first run was with OS 1.0.10586.0 and Target Platform Build 10586. This ran for 12+ hours with no issues. The code successfully read a total 87.4% of the attempts with 1.17 seconds per reading.

    The first run was with Preview Release OS Build 14279 and Target Platform Build 10586. This ran for 12+ hours with no issues. The statistics were lost due to a power failure (a massive thunderstorm rolled through the Chicago area).

    In this run, I decided to hammer the CPU with some additional code to see if this affected the sensor. This ran for 12+ hours with no issues. The code successfully read a total 29.1% of the attempts with 5.06 seconds per reading while the application used an average of 85% of the processor.

    The final run was on a Raspberry Pi 3, with the same latest preview release of Windows 10 IoT Core (10.0.14322.1000) and Target Platform Build 10586. This ran for 12+ hours with no issues. The code successfully read a total 66.64% of the attempts with 1.55 seconds per reading.

    NOTES:
    -> In all cases I stopped the application after running at least 12 hours.
    -> All runs ran with the sensor on Pin 17.
    -> I tried running this with the Lightning Providers but I was unable to read the sensor at all.

    If anyone has any idea of any external condition (other sensors, circuit variations, OS version, so on...) that could be causing failure over a period of time please let me know and I will attempt to reproduce the issue.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    Just curious, where did you purchase the sensor from? I purchased my sensor from Adafruit. I also have one from Amazon that I can try to see if there is a difference. Perhaps there is a faulty batch or a manufacturer creating clones. Just a thought...

    I'm currently running various tests, leaving it running for at least 4 hours, each time varying different parameters (OS version, with or without capacitor and resistor).

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    When I first built this I let it run for an entire day without issues. I haven't tried it with all of the new Windows IoT Corfe releases. I will set this up again and see what I can find out.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    Thanks, wasn't sure if you had access to pick up just one, or if you had to by a bunch of them :).

    When the Retry Count is 0 and the TimeOut is false, are you getting a valid reading? If yes, then your rig is actually working very well, when it works. The driver will typically NOT get a reading in the first try.

    Can you add the reading to the debugger and then capture the output again when it starts to fail?

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    It is common for the retry count to be high, this is the nature of the OS, since it is unable to read from the DHT22 reliably. If TimeOut property is true, this means that the OS is too busy to get a reading or that the DHT is not responding. You can try increasing the retry count to see if this makes a difference, but it probably won't have too much of an effect.

    If you are unable to get your hands on a capacitor, send me a private message and I will try to mail one to you. I really think this may help make the difference (see the datasheet for the DHT22).

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    The DhtReading is just a C++ struct which gets destroyed after the method completes so it should not be the issue. For peace of mind, you could try declaring it in your lass and reuse it but I would not recommend keeping it this way.

    After it starts to ail, is the .TimedOut property of the var reading true or false? Also, what is the value of the .RetryCount property after failure?

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    I am not really sure what else to try. While doing a search on DHT22/DT11, I am seeing that others have mentioned this same issue with the DHT22 and adding the capacitor had solved their issue most of the time (not always though). Do you have any Arduino devices such as an Uno to try the circuit on? This could help rule out if it is the code or the circuit.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    Try adding a 100nF capacitor between VDD and Ground. Ensure the 4K7 resistor is between VDD and DATA. If that does not help, try it with the capacitor and without the resistor.

  • DHT11 /DHT22 Temperature Sensor over 3 years ago

    I just had Microsoft on site yesterday training our team on Power BI. I haven't had a chance to spend time with it yet but I think it is a great tool.

  • DHT11 /DHT22 Temperature Sensor almost 4 years ago

    Thank you!. I haven't had time to look at it. I will be taking a look at this in the next few days to see if there is a way to compensate for this in the code.

  • DHT11 /DHT22 Temperature Sensor almost 4 years ago

    Correct, this post is based on Microsoft's example code. My intention was to demonstrated how to use the C++ code from C#.

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    There are two points of consideration when using an inductive current sensor.

    The first point is that the voltage you measure is very small (depending on the number of wire turns in the coil). The fact that it is small means it will carry some noise. You will have to account for this noise in either your circuit or your software calculations.

    The second point is that the voltage is AC. Taking a reading from your analog pin (or ADC) will yield a voltage anywhere between 0 and the peak voltage or 0 and the negative peak voltage. No single reading will get you a good result. This means that you must determine the RMS voltage via sampling. Sampling means you need to take a number of readings in a known time period to determine the peak voltage. All this adds up to a time sensitive platform which is best suited to something like the Arduino.

    I am currently working on a project with a similar device from Spark Fun (https://www.sparkfun.com/products/11005). This project will show how to integrate the current transformer to a Raspberry Pi using the MCP3008 ADC. In addition I am utilizing a special chip that converts the AC voltage to a DC voltage representing the RMS voltage.

    While you wait for me to post that project, take a look at my article called "Bridging the Raspberry Pi and the Arduino". This may allow you to use the Arduino as the main integration point with the current sensor. Using the bridge, you can still put your main code on the Raspberry Pi. There are a couple of examples for the Arduino out on the web.

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    The distance is going to depend on a number of factors. Frequency of the switching between HIGH and LOW, the gauge of the wire, the amount of noise picked up from the surrounding area as well as the voltage and current. I think your distance is fine. What I recommend is that you wire it up with a short wire and make sure it works. Collect some stats on how well it reads. Then increase the distance and check the stats again to see if there is any affect. Keep everything else the same. If you have trouble you can try a higher quality wire or even a shielded cable.

    As for reading the temperature in the background... This is both the wonderful advantage of Windows 10 IoT Core (and Linux for that matter) and the curse. Although they are very efficient and great for multitasking (and squeezing every ounces of power out of the processor) neither guarantee that any particular thread or process will get a specific amount of time on the processor in a given time span. Your process can be preempted at any point and will be. This is why it is so hard to read the DHT sensor in the first place. The OS and the hardware is very capable of reading the 1Wire devices, they are just not designed for timing that specific. The more the processor does the more likely it will fail to read the sensor.

    Having said that, I have done some projects that are managing a lot of background process and I still find I can read the sensor. It all depends on how often you need a reading. If your depending on a reading every 2 seconds your solution will probably not work. If you can get one every minute or so you should have no problem at all. The actual number of readings you will be able to get will depend on how active the OS is.

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    David, thanks for your comments.

    When you say same "bus" I am not aware of a way to have these communicate on the same wire because they lack the concept of an address. The Dht sensors do not implement the true 1Wire protocol by Maxim. They implement a proprietary protocol. A device that implements the 1Wire protocol has an address and can be connected to the same wire as other true 1Wire devices.

    The only way I know of to make this work is to use two different GPIO ports, one for each sensor.

    As a side note, if you are ever concerned about not having enough GPIO ports you can get an 8 port (MCP23008/$1.95) or 16 port (MCP23017 $2.95) expander from Adafruit.com. You would not be able to connect the Dht11/22 to the expander but other devices could be moved to free up ports. Both of these devices communicate over i2c and there is at least one example project on Hackster of how to use these on a Raspberry Pi 2 running Windows 10 IoT Core.

    In the sample code provided with this project, in the code behind for the main view, you will see that I declare a GpioPin instance and then pass this to the library. To work with two or more sensors you will need to create additional instances of the library.

    In your code, define two pins and two IDht objects as follows:

    private GpioPin _pin1 = null;
    private GpioPin _pin2 = null;
    private IDht _dht1 = null;
    private IDht _dht2 = null;

    In the code where you initialize these objects add these lines

    pin1 = GpioController.GetDefault().OpenPin(4, GpioSharingMode.Exclusive);
    _dht1 = new Dht11(
    pin, GpioPinDriveMode.Input);

    pin2 = GpioController.GetDefault().OpenPin(5, GpioSharingMode.Exclusive);
    _dht2 = new Dht11(
    pin, GpioPinDriveMode.Input);

    I placed the above code in OnNavigatedTo().

    Note I specified pin 4 and 5 but these can be any pins you choose. I also specify Dht11 but you can replace one or both with the Dht22 object.

    In the OnNavigatedFrom() I dispose the pins

    _pin1.Dispose();
    _pin1 = null;

    _pin2.Dispose();
    _pin2 = null;

    _dht1 = null;
    _dht2 = null;

    I hope this helps, if not please let me know. Also, if you have any issues let me know, glad to help any time.

  • Bridging the Raspberry Pi and the Arduino about 4 years ago

    Thank you. I like that your showing how to use the Arduino Wiring and UWP Lightning providers. I haven't had time to try those yet. Great project!

  • Bridging the Raspberry Pi and the Arduino about 4 years ago

    I made a mistake in the C# code specified in the Sketch. The register ID value of 15 should actually be 16. This is the starting register for custom commands. I am going to add a constant in the C# library because this value can move as I add more commands. I will update the library and post a comment here when done.

    For now, if you change the 15 to a 16 (n the C# code) it will work.

    When troubleshooting this code it is best to test the code in two separate pieces. First test your DHT22 and then test the transmission of the data. I usually hard code a value in the sketch for the temperature and humidity and then debug the C# code and make sure the value was transmitted correctly. For example, in the line of code in the sketch ByteConverterInternal::GetBytes(_dht.readHumidity(), humidity) change the _dht.readHumidity() to a value such as 12.34 so it looks like ByteConverterInternal::GetBytes(12.34, humidity). Then put a break point in the C# code and check the value. If the value in the C# code is 12.34 then you know the value is transmitting correctly. At this point you would know that any NaN value in the C# code is coming from the DHT library. The Adafruit library will return NaN when it fails to get a reading.

    You could also add code to the sketch to check for the NaN using the isnan() function. Note that the first byte returned in the array back to the C# code is reserved for a return code. A value of 0 indicates success. Any other value can be mapped to custom errors codes. In this case, you could test for NaN as using

    float h = _dht.readHumidity();
    if (isnan(h))
    {
    writeBuffer[0] = 1; // 1 can indicate that the humidity value could not be read
    }

    and then return custom errors codes in the first byte. In the C# code check the first byte for 0 to know it was successful otherwise map to an error display or exception.

    One last note for debugging: the file Definitions.h has a commented #define statement called DEBUG_MODE. Remove the comment and the library will dump data to the Serial device. Note this will use a lot of memory and should be disabled when you are done debugging.

  • Bridging the Raspberry Pi and the Arduino about 4 years ago

    I apologize for that, I had not copied all of the changes back to GitHub. The correct files are checked in now.

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    Check out the comments on GitHub for the source code on this project. There are some issues others have had and resolved. I was able to get my DHT22 running with the resistor and also putting a 100nF capacitor between Vcc and GND (see the datasheet for this device). I ran the DHT11 and the DHT12 both on the release build of Windows 10 IoT Core as well the new preview build. It appears that the DHT22 is a little more sensitive to the timing than the DHT11 so it is a little trickier to get working. Let me know after checking out the comments if that helped.

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    To write the SD card you will use the standard storage API's. I have only used these to write application settings but you should be able to look at the cod and figure it out. In order to log to a database on a different computer, I would recommend one of the IoT Cloud offerings such as Azure, PubNub or AWS (there are others as well). If you look at my project Sensor Telemetry it shows you how to write data to Azure via a hub and then using Stream Analytics copy the data from the Hub to an Azure SQL Database. Since I posted that project Microsoft has updated Azure and created additional libraries to make it easier. I haven't worked with PubNub yet but it is a simple REST API. The code in the Sensor Telemetry project demonstrates how to make HTTP calls so this should help you as well.

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    The TMP-36 has a voltage output that is proportional to the temperature. Since the Raspberry Pi does not have any analog inputs you will need an Analog to Digital converter (ADC). I have posted projects based on the MCP3008 which you can purchase from Adafruit. Take a look at this project specifically: https://www.hackster.io/porrey/watersensor. This project demonstrates how to read a voltage from the MCP3008 - all you need to do is understand how to convert this to a temperature using the datasheet (http://www.analog.com/media/en/technical-documentation/data-sheets/TMP35_36_37.pdf) for the TMP-36.

    If you need any further help let me know. I would be more than happy to help in anyway.

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    I just received my DHT22 today and wired it up. The good news is that it will work with the existing code, the bad news is that it seems to be a little more sensitive to timing than the DHT11 - I am getting some fairly consistent readings from it. I applied a bug fixed from the original Microsoft code (they updated their code last week) so be sure to pull the updated code. The bug fix corrected the DHT22 calculation but broke the DHT11. I added a second class called Dht22 for this sensor. Now the library will work with both the DHT11 and the DHT22 (and theoretically should work with the DHT 21/22/33/44).

    If you are testing with the C# code don't forget to change the line:

    _dht = new Dht11(_pin, GpioPinDriveMode.Input);

    to use the Dht22 instead:

    _dht = new Dht22(_pin, GpioPinDriveMode.Input);

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    The DS18B20 uses the standard one wire protocol which is more complex than the DHT11. I'm wondering if a hardware approach like the DS2482-100 would be a viable solution.

    A port of one of the Raspberry Pi or Arduino libraries is another option. The only problem is that these libraries rely on some built in functions that are hard (if not impossible) to replicate.

    delayMicrosecnds() is an example of a function that is hard to replicate.

  • DHT11 /DHT22 Temperature Sensor about 4 years ago

    Thank you. I am very interested in how this version of the sensor works out. please let me know once you have tried it.

Add projectSign up / Login