Recent Posts

Pages: 1 ... 8 9 [10]
91
mc-Module / Re: NTC Thermistor Demo
« Last post by AndrewPratt on December 12, 2017, 11:09:59 am »
Update. I decided that since I only had 1 temp probe attached to the 120 I didn't need to use the resistor and pin's 0 & 6 so I swapped it over to the ground and pin7 approach with the internal pullup and it now works perfectly. This is the new code.

Define PinMode Pin7 As AnalogInputPullUp Alias USP10972_VOLTAGE

Class ThermistorTheThings
   
    Const USP10972_BETA As Integer = 3892
    Const USP10972_R25 As Integer = 10000 '10kOhm
    Const USP10972_DIVIDER_R1 As Integer = 100000 '100kOhm
   
    Shared USP10972 As NTCTermistor
   
    Shared Event Boot() 
        USP10972 = New NTCTermistor(USP10972_BETA, USP10972_R25)
    End Event
   
    Shared Event measureTemperature() RaiseEvent Every 10 Seconds
        Device.EnableOpamp()
        Thread.Sleep(10000) 
        Dim thermistorResistance As Float = USP10972_DIVIDER_R1 * (1 / ((Device.BatteryVoltage().ToFloat/ USP10972_VOLTAGE.ToFloat) - 1)) 
        Device.DisableOpamp()
       
        Dim battShort As Short = Device.BatteryVoltage()
        Dim battFloat As Float = battShort / 1000
        Dim battString As String = battFloat.ToString()
        Dim tempTMP102string As String = Temperature.GetTemp().ToString
        Dim tempPstring As String = USP10972.TemperatureCFromResistance(thermistorResistance).ToString         
       
        Dim LosantTopic As String = "losant/myDeviceID/state"
        Dim losantPayload As Json = New Json       
        Dim mcJson As Json = New Json
       
        mcJson.Add("probeTemp", tempPstring)
        mcJson.Add("temperature", tempTMP102string)
        mcJson.Add("batteryVoltage", battString)
       
        losantPayload.Add("data", mcJson)
        Lplan.Publish(LosantTopic, losantPayload.ToListOfByte)
    End Event
End Class
92
mc-Module / Re: NTC Thermistor Demo
« Last post by AndrewPratt on December 11, 2017, 04:23:01 pm »
So when I measure the 0 and 6 pin's and measure the voltage as I dip the probe in hot and cold water it does change as you'd expect it would.

This is the tempprobe code that I added to the project...

Class NTCTermistor
    Private beta As Integer
    Private R25 As Integer
    Public Sub New(betaIn As Integer, R25In As Integer)
        'set Beta value
        beta = betaIn
        'Set R25 resistance value
        R25 = R25In
    End Sub
    Public Function TemperatureFromResistance(resistance As Float) As Float
        'returns temperature in Kelvin from resistance of thermistor using Beta parameter equation
        Dim temp1 As Float = -1 * beta.ToFloat() / 298.15
        Dim temp2 As Float = resistance / (R25.ToFloat() * temp1.Exp())
        Return (beta / temp2.Log())
    End Function
    Public Function TemperatureFFromResistance(resistance As Float) As Float
        'returns temperature in Fahrenheit from resistance of thermistor
        Return (TemperatureFromResistance(resistance) * (9 / 5)) - 459.67
    End Function
    Public Function TemperatureCFromResistance(resistance As Float) As Float
        'returns temperature in Celcuis from resistance of thermistor
        Return TemperatureFromResistance(resistance) - 273.15
    End Function
End Class
93
mc-Module / Re: NTC Thermistor Demo
« Last post by mc-Josh on December 11, 2017, 04:14:09 pm »
Andrew,

It looks like you have the correct connections but that they may be intermittent since they are not soldered. Can you solder the connections to the thermistor and the resistor? Also, can you measure the voltage being provided to the resistor divider and the voltage at the sensor and ensure that the corresponding voltage is correct for the temperature? We have made quite a few of these and haven't had any issues.

Thanks,

Josh
94
mc-Module / Re: NTC Thermistor Demo
« Last post by AndrewPratt on December 11, 2017, 03:54:57 pm »
sorry I thought I'd included those. The wiring is the same as the demo only I had wire leads added to the mc120 so that we could prototype other things more easily.


Define PinMode Pin0 As AnalogInput Alias USP10972_VOLTAGE
Define PinMode Pin6 As DigitalOutput Alias USP10972_DIVIDER_ENABLE
95
mc-Module / Re: NTC Thermistor Demo
« Last post by mc-Josh on December 11, 2017, 02:50:54 pm »
Andrew,

What are USP10972_VOLTAGE and USP10972_DIVIDER_ENABLE defined as?  USP10972_DIVIDER_ENABLE is the pin that turns on the voltage to the voltage divider and USP10972_VOLTAGE is the voltage read from the divider. This voltage is then used to calculate the resistance of the thermistor which corresponds to a temperature. Can you show us how you have connected the 10k resistor and thermistor to the mod120?

Thanks,

Josh
96
mc-Module / NTC Thermistor Demo
« Last post by AndrewPratt on December 11, 2017, 01:32:21 pm »
I am having a problem trying to get the Hackster thermistor demo working that is outlined here (https://www.hackster.io/mc-Things/iot-ntc-thermistor-temps-using-thethings-io-7f6934)

I ordered the same USP10972 thermistor and believe i have the wiring correct but the values I'm getting out fluctuate a lot and are never anywhere near valid. I also get a lot of not a number errors so there's obviously something wrong! The hackster description calls for a 100 ohm resistor but the one used in the image is a 10k...I've tried both but neither solves the issue.

Ultimately I want to get it working on the 120 and then port it to the 205 so that I can read water temp's outside under the ice.

Here's the code I'm using to push the data to Losant. I also have the onboard temp and battery being pushed as well but I've remove that from the code below to keep it on topic.


Class Thermistor
   
    Const USP10972_BETA As Integer = 3892
    Const USP10972_R25 As Integer = 10000 '10kOhm
    Const USP10972_DIVIDER_R1 As Integer = 10000 '10kOhm
   
    Shared USP10972 As NTCTermistor
   
    Shared Event Boot()
        USP10972_DIVIDER_ENABLE = False
        USP10972 = New NTCTermistor(USP10972_BETA, USP10972_R25)               
    End Event
   
    Shared Event measureTemperature() RaiseEvent Every 10 Seconds         
        Dim LosantTopic As String = "losant/deviceID/state"
        Dim losantPayload As Json = New Json
       
        USP10972_DIVIDER_ENABLE = True
       
        Device.EnableOpamp()
       
        Thread.Sleep(10000)
       
        Dim thermistorResistance As Float = USP10972_DIVIDER_R1 * (1 / ((Device.BatteryVoltage().ToFloat/ USP10972_VOLTAGE.ToFloat) - 1))
       
        USP10972_DIVIDER_ENABLE = False
       
        Device.DisableOpamp()
       
        Dim tempPstring As String = USP10972.TemperatureCFromResistance(thermistorResistance).ToString
       
        Dim tempPJson As Json = New Json
        tempPJson.Add("probeTemp", tempPstring)
       
        losantPayload.Add("data", tempPJson)
       
        Lplan.Publish(LosantTopic, losantPayload.ToListOfByte)       
    End Event
End Class
97
Announcements / Hackaday coin cell contest!
« Last post by mc-T2 on December 01, 2017, 01:49:51 pm »
Hello everyone,

Just wanted to let you know that Hackaday.io (https://hackaday.io/) is running a coin-cell challenge! There are multiple prizes and categories for showcasing what you can do with electronics and a coin-cell!

This is a perfect contest for the mcModule devices because, as you know, they are already powered by a coin cell battery!

Check out the link to the contest to see the details and how to submit a project: https://hackaday.io/contest/28283-coin-cell-challenge

Good luck and we hope to see some cool projects!

Thanks!
mcThings
98
MQTT / Re: Cayenne My Devices
« Last post by mcThings on December 01, 2017, 01:46:05 pm »
@Labmaster - Great work! Thanks for keeping us posted!
99
mc-Studio / Re: Where are the McStudio Logs
« Last post by Labmaster on December 01, 2017, 11:08:45 am »
Thanks, I'll try that the next time I have the problem.  It is working for me right now.
100
MQTT / Re: Cayenne My Devices
« Last post by Labmaster on December 01, 2017, 11:06:10 am »
I actually got it working last night.  It turns out that I had 2 devices defined in MyDevices.com, and I was using the correct client ID in the gateway, and the wrong clientID in the code.

This is the most recent version of my working code:
Code: [Select]
    // MQTT topic in MyDevices.com - v1/username/things/clientID/data/channel
    Const mdTopic As String = "v1/" + mdUserId + "/things/" + mdClientId + "/data/" + mdChannel
    //Const mdTopic As String = "kevin/MyDevicesCom/test"
    Shared Event CheckTemp() RaiseEvent Every 3600 Seconds
        Dim temp As Float = TempSensor.GetTemp() // Get Temp from sensor
        Dim tempString As String = temp.ToString()
        // Create temp JSON object - { "temperature" : "23.06" }
        Dim tempJson As Json = New Json
        //tempJson.Add("temperature", tempString)
        tempJson.Add("temp,c=", "99")
        // Create Wia preferred JSON object - { "data" : {"temperature" : "23.06"}}
        Dim wiaPayload As Json = New Json
        //wiaPayload.Add("data", tempJson)
        wiaPayload.Add("temp,c=99")
        Dim mdPayload As ListOfByte = New ListOfByte
        Dim mdData As String = "temp,c=" + tempString
        //mdData = "temp,c=99"
        mdPayload.Add(mdData)
        // Publish to wia MQTT
        Lplan.Publish(mdTopic, mdPayload)
Pages: 1 ... 8 9 [10]