Datalogger temperatuur + hydro

Sorry voor de domme vraag, maar wat is een breadboard ? gewoon een hobbyboard ofzo ?

[Bericht gewijzigd door JeroenI op vrijdag 29 januari 2010 22:05:18 (21%)

...en we maken met z'n allen een feest!

Ohnee, ik maak gewoon gebruik van een hobbyboard. Dus dan heb ik wel die pins nodig ?

Wat is eigenlijk de functie van JP1 ? En weet je toevallig ook hoe dat omschreven wordt bij winkels c.q. online shops ?

[edit]
ps, ik neem aan dat alle GND punten gewoon op een dood punt mogen komen ?

[edit2]
Onder welke naam bestel ik M05X2SHD want die kan ik nergens vinden.

[Bericht gewijzigd door Henry S. op zaterdag 30 januari 2010 19:15:46 (63%)

...en we maken met z'n allen een feest!
Henry S.

Moderator

Even wat waarschuwingen:
-Gebruik vaker de edit, topickicken binnen 24 uur is asociaal.
-Minder chatten, vaker de zoekfunctie gebruiken.

73's de PA2HS - ik ben een radiohead, De 2019 CO labvoeding.
fred101

Golden Member

[edit]
velleman kitjes ben ik een beetje op uitgekeken eigenlijk

Maar als je het verschil tussen stroom en spanning niet weet, geen ledjes aankunt sluiten zonder ze kapot gaan en geen schema kan lezen is het misschien nu verstandig om je af te vragen of je klaar bent voor totaal zelfbouw. Je weet dat zo'n processor ook geprogrammeerd moet worden en dat je daar software en vaak (ik weet niet in dit geval) een losse programmer voor nodig hebt.

www.pa4tim.nl, www.schneiderelectronicsrepair.nl, Reparatie van meet- en calibratie apparatuur, ook maritieme en industriele PCBs

Indien je niet zo handig bent om (grotere) schakelingen in elkaar te zetten, kun je ook middels 1wire temperaturen loggen. Ik gebruik het hierboven reeds gemelde programma digitemp.exe.
Zelf gebruik ik dit programma ook, ik roep vanuit .Net het programma digitemp.exe aan, en vang de resultaten hiervan op. Het is dan een kleine moeite om deze waarden in een database te zetten voor verdere analyse. Ik las dat je broer handig is met .Net, eventueel kan ik je ook wel helpen met mijn source code.
Het schema wat nodig is om 1wire sensoren aan te sluiten op een seriele poort bestaat uit ongeveer 6 (zener)dioden.

Code voor het genereren van events voor het getimed uitlezen van sensoren.

c code:

/// <summary>
/// Event handler for temperature timer tick event.
/// This function triggers the application to read the 
/// temperatures on the serial port
/// </summary>
/// <param name="sender">Object which triggered the event</param>
/// <param name="e">Additional parameters, not used here</param>
private void tmrTemperature_Tick(object sender, EventArgs e)
{
    Settings settings = Settings.InstanceOf();
    if (ReadTempEvent != null && settings.LogTemperature)
    {
        ReadTempEvent();
    }
}

Code voor het afhandelen van een readtemp event

c code:

/// <summary>
/// Event handler for the read temp event.
/// This function reads the values of the temperature
/// sensors attached to the serial port.
/// </summary>
private static void HandleReadTempEvent()
{
    Process process = new Process();
    process.StartInfo.UseShellExecute = false;
    process.StartInfo.RedirectStandardOutput = true;
    process.StartInfo.RedirectStandardError = true;
    process.StartInfo.CreateNoWindow = true;
    process.StartInfo.FileName = "digitemp.exe";
    process.StartInfo.Arguments = "-a -q -cdigitemp.cfg";
    process.Start();
    string result = process.StandardOutput.ReadToEnd();
    int sensor = 0;
    string sensor_pattern = "Sensor ";
    string f_pattern = "F: ";
    double temperature = 0;
    int sensor_index, f_index = 0;
    while ((sensor_index = result.IndexOf(sensor_pattern)) > 0)
    {
        sensor = Convert.ToInt16(result.Substring(sensor_index +  
            sensor_pattern.Length, 2));
        string temp = result.Substring(sensor_index + 12, 10);
        f_index = temp.IndexOf(f_pattern);
        temperature = Convert.ToDouble(temp.Substring(0, f_index));
        result = result.Substring(sensor_index + 
            sensor_pattern.Length,
            result.Length - sensor_index - sensor_pattern.Length);

        if (settings.SaveToDatabase)
        {
            Database database = Database.InstanceOf();
            database.addTemperature(sensor, temperature);
        }

        if (settings.SaveToFile)
        {
            LogFile file = LogFile.InstanceOf();
            file.addTemperature(sensor, temperature);
        }

        // Update main form
        mainForm.setTempSensorValue(sensor, temperature);
    }
}

Edit: Voorbeeldcode toegevoegd.

[Bericht gewijzigd door Jan Arjen op zondag 31 januari 2010 09:51:54 (67%)

bprosman

Golden Member

De jongere generatie loopt veel te vaak zijn PIC achterna.