Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

DasFilisera Green House

Componenten en benodigdheden

DHT22-temperatuursensor
× 1
DS18B20
× 1
Bodemtemperatuur- en vochtigheidssensor FS200-SHT25
× 1
4-kanaals relaismodule
× 1
2-kanaals relaismodule
× 1
Ultrasone sensor - HC-SR04 (algemeen)
× 1
Arduino MKR1000
× 1

Apps en online services

DasData
Microsoft Visual Studio 2015

Over dit project

Kweek planten en groenten bewuster van hun omgevingsomstandigheden. Gewoon door een MKR1000 te gebruiken

Vereisten voor plantengroei

De groei van planten is afhankelijk van verschillende ideale omgevingsomstandigheden, zoals temperatuur, vochtigheid, licht en andere minerale voedingsstoffen of zuurstof.

De planten voldoende water geven of de normale temperatuur in de kas behouden kan een lastig proces zijn, maar niet als je het veel gemakkelijker zou kunnen doen.

Hardware-overzicht

Temperatuur / Vochtigheid

TH1 - Buitentemperatuurwaarden worden geleverd door een waterdichte DS18B20-sensor - D1-pinverbinding

TH2 - Binnentemp. / brommen. kan worden gevonden vanaf DHT22 - pin D0

TH3 - FS200/SHT25 - zal worden geïntroduceerd in bodemomstandigheden. Verbindingen zijn voor SCL &SDA-pinnen 12/11

Waterhendel

W1 - om het waterniveau te krijgen, gebruikt u een ultrasone sensor zoals HC - SR04 Verbindingen op A0 - Echo en Trigger op A1. Op basis van deze waarde kunt u een klep aansturen met R1 - 4 kanalen relais.

Luchttemperatuur / zuurstof

A1 - Op basis van temperatuur-/vochtigheidswaarden kunt u bepalen wanneer u ramen moet openen met behulp van R2-relais. Op basis van het klimaat moet je het afstemmen zoals je wilt.

Relais R1 / R2

Om sommige commando's in te stellen, zoals Windows openen of een pomp starten, kun je commando's naar de relais sturen ... R1 is verbonden met digitale pinnen 7,8,9,10 en R2 5,6

MKR1000 - aRest

Nu we alle dingen met elkaar hebben verbonden, is het tijd om wat gegevens te verzamelen en te begrijpen met behulp van aRest-bibliotheek, die een webinterface voor het MKR1000-apparaat zal bieden met een json-formaatstring. Gebruik de onderstaande bibliotheken, .ino-bestanden en wijzig uw wifi-routerverbinding dienovereenkomstig.

Gegevens en interface

Zolang we een interface op ons apparaat hebben, kunnen we deze gegevens ook consumeren en op het lokale netwerk bekijken.

We hebben Visual Studio 2015 en .net gebruikt om een ​​Windows-toepassing op te bouwen die u helpt om de omstandigheden in de broeikas te visualiseren, maar ook een beetje dagelijkse geschiedenis of alle soorten logs die u wilt integreren.

Voor de opslag in de cloud hebben we eenvoudig DasData-kasconfiguraties gebruikt of u kunt uw eigen datakanalen maken.

De volgende stap is het wijzigen van de DsKey en AKey in de Settings.txt vanuit de applicatiemap. Als alles werkt, zou je al wat gegevens online moeten zien.

Volg DasData's hackster-kanaal voor meer toekomstige updates

Kasautomatisering

U moet beslissen welke kleppen of motoren meer actie zullen creëren op basis van uw kasconfiguratie en -afmetingen. Dit alles kon worden bestuurd vanuit relais.

Code

  • Filisera_Arduino
  • bibliotheken.zip
  • Filisera - vb.zip
  • Filisera - VS
Filisera_Arduino C/C++
DASFilisera gebruikt aREST-bibliotheek voor het Arduino/Genuino MKR1000-bord.
/* DASFilisera gebruikt aREST-bibliotheek voor het Arduino/Genuino MKR1000-bord. aREST - Geschreven in 2016 door Marco Schwartz onder een GPL-licentie.*/// Importeer vereiste bibliotheken#include #include #include #include "DHT.h"#include #include #include #include // ********************* ***// ** Senzori Temperatura **// *************************#define DHTPIN 0 // Binnenvochtigheid/temperatuur/warmte index#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321#define ONE_WIRE_BUS 1OneWire oneWire(ONE_WIRE_BUS);DallasTemperature sensors(&oneWire);float umidSol =0; // Bodemvochtvlotter umidAer =0; // Luchtvochtigheid vlotter tempIn =0; // Temperatuur infloat tempOut =0; // Temperatuur uitdrijvende tempSol =0; // Containervolumefloat umidexIn =0; // Voelt als temp//VOLUM #define echoPin A0 // Echopin A0#define trigPin A1 // Triggerpin A1lange duur; // duur om distanceint te berekenen HR_dist =0; // Berekende afstandint minimumRange=5; //Min Sonarbereikint maximumRange=200; //Max sonarbereikunsigned lange pulsduur=0;int nivelCm, nivelRamasCm;int nivelProc, nivelVol;int leeg =100;int vol =100;int sqrLevel, sqrInvertLevel; // Statusint status =WL_IDLE_STATUS;// Maak aREST instantieaREST rest =aREST();// WiFi parameterschar ssid[] ="WIFI_AP";char wachtwoord[] ="WIFI_PASSW";// De poort om te luisteren naar inkomende TCP-verbindingen# definieer LISTEN_PORT 80// Maak een instantie van de serverWiFiServer-server (LISTEN_PORT);//INITIALIZARE SENZORI DHT dht(DHTPIN, DHTTYPE);// RELEE RELEEEint aVentil, aLateral;int inReleu1Ventil =6;int inReleu2Ventil3Ventil =8;int inReleu4Ventil =9;int inReleu1Lateral =10;int inReleu2Lateral =11;// Declareer functies die moeten worden blootgesteld aan de APIint ledControl(String command);void setup(void){ // Start Serial Serial.begin(115200); // Init variabelen en stel ze bloot aan REST API // rest.variable("temperature",&temperature);// rest.variable("humidity",&humidity); // Functie die moet worden blootgesteld rest.function ("led", ledControl); // Geef naam en ID aan apparaat rest.set_id ("1"); rest.set_name("mkr1000"); // Maak verbinding met wifi terwijl (status! =WL_CONNECTED) { Serial.print ("Poging om verbinding te maken met SSID:"); Serieel.println(ssid); status =WiFi.begin(ssid, wachtwoord); // Wacht 10 seconden voor verbinding:vertraging (10000); } Serial.println("WiFi verbonden"); // Start de server server.begin(); Serial.println("Server gestart"); // Druk het IP-adres af IPAddress ip =WiFi.localIP(); Serial.print("IP-adres:"); Serieel.println(ip); // SETUP DHT - INSIDE DHT dht (DHTPIN, DHTTYPE);// sensors.begin(); // Pornire temperatuursensor exterioara DS-16B20 pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); // Init variabelen en stel ze bloot aan REST API rest.variable("Vol_container",&sqrLevel ); rest.variable("Umiditate_sol",&umidSol ); rest.variable("Umiditate_aer",&umidAer ); rest.variable("Temp_in",&tempIn); rest.variable("Temp_out",&tempOut); rest.variable("Temp_sol",&tempSol); // rest.variable ("Umidex_in",&umidexIn); // sensoren.requestTemperatures(); // Temperatura Out} void loop () { getmyDistance (); // getSoilVals(); getInsideVals();// getOutSideVals(); // Behandel REST-aanroepen WiFiClient-client =server.available (); if (!client) { return; } while(!client.available()){ vertraging(1); } rest.handle(client);}void getmyDistance() {digitalWrite(trigPin,LOW); vertragingMicroseconden(2); digitalWrite (trigPin, HOOG); vertraging Microseconden (10); digitalWrite (trigPin, LAAG); duur =pulseIn(echoPin,HIGH); // bereken afstand HR_dist =duur/58,2;// sqrLevel =leeg - HR_dist; if (HR_dist>=maximumRange || HR_dist <=minimumRange) { sqrLevel =0; } else { sqrLevel =leeg - HR_dist; Serial.println(HR_dist); } vertraging(100); }void getDistance() {digitalWrite(trigPin, LOW);delayMicroseconds(10);// stuur nu de 10uS-puls uit om Ping digitalWrite(trigPin, HIGH) te activeren; vertraging Microseconden (10); digitalWrite(trigPin, LOW);// meet ten slotte de lengte van de binnenkomende puls pulseduration =pulseIn(echoPin, HIGH);// deel de pulslengte door halfpulseduration =pulseduration/2;// converteer naar centimeters.nivelRamasCm =int( pulseduration/29);nivelCm =leeg - nivelRamasCm;nivelVol =map(nivelRamasCm, vol, leeg, 100, 0);// Tipareste nivelul in centimetri if (nivelCm>=-5 &&nivelCm <=135) { double a =nivelCm / 100 * nivelVol; int sqrLevel =240 - nivelCm; int sqrInvertLevel =120 + nivelRamasCm; if (nivelCm>65 &&nivelCm <=85){ } if (nivelCm>85 &&nivelCm <=100){ } } }lange microsecondenToCentimeters (lange microseconden) { // De geluidssnelheid is 340 m/s of 29 microseconden per centimeter // De ping gaat heen en weer, dus de afstand is de helft van de afgelegde afstand retour microseconden / 29 / 2;}void getInsideVals() { float h =dht.readHumidity(); // Lees temperatuur als Celsius (de standaard) float t =dht.readTemperature (); // Lees temperatuur als Fahrenheit (isFahrenheit =true)// float f =dht.readTemperature (true); umidAer =h; tempIn =t; // Controleer of het lezen is mislukt en sluit vroeg af (om het opnieuw te proberen). if (isnan(h) || isnan(t)) { Serial.println("Kan niet lezen van DHT-sensor!"); opbrengst; } // Bereken warmte-index in Fahrenheit (de standaard) //float hif =dht.computeHeatIndex (f, h); // Bereken warmte-index in Celsius (isFahreheit =false) // float hic =dht.computeHeatIndex (t, h, false); // umidexIn =hic; }void getOutSideVals() { tempOut =sensors.getTempCByIndex(0); Serial.println("Temperatuur uit:"); Serial.print(tempOut); } void getSoilVals() { umidSol =SHT2x.GetHumidity(); tempSol =SHT2x.GetTemperature(); Serial.println ("Vochtigheid Bodem (% RH):"); Serial.print(umidSol); Serial.print ("Temperatuur Bodem (C):"); Serial.print(tempSol); } // sensoren.requestTemperatures(); // Temperatura Out // Aangepaste functie toegankelijk via de APIint ledControl (String-opdracht) {// Get state from command int state =command.toInt (); digitalWrite(6,staat); retourneer 1;} 
bibliotheken.zipC/C++
Bibliotheken gebruikt in Filisera
Geen voorbeeld (alleen downloaden).
Filisera - vb.zipVBScript
.net Visual Studio Project
Geen voorbeeld (alleen downloaden).
Filisera - VS VBScript
.net-bestand dat gegevens van arduino leest en interface toont
Imports System.GlobalizationImports System.IOImports System.NetImports System.ThreadingImports System.Windows.Forms.DataVisualization.ChartingImports Newtonsoft.JsonPublic Class Form1 Private _device 'IP As String APPARAAT IP Privé intVolumContainer, intUmidSol, intUmidSera, intTempAfara, intTempSera, intTempSol, intUmidex As String ' VARIABILES Privé strR1, strR2 As String 'RELAYS Public Count As CountDown 'COUNTDOWN TICK As Private ZOdasIRESult ' String ="" 'USER KEY DASDATA Private _DSKey As String ="" 'DATASET KEY DASDATA Private _myDas As New dasData.das Private Sub Form1_Load(sender As Object, e As EventArgs) Verwerkt MyBase.Load Count =New CountDown(50, 0 ) '5 SECONDEN UPDATE AddHandler Count.Tick, AddressOf Count_Tick AddHandler Count.TimesOut, AddressOf Times_up Probeer 'LEES INSTELLINGEN VAN .txt-BESTAND Dim pad As String =Directory.GetCurrentDirectory( ) Dim FILE_NAME As String =pad &"\Settings.txt" Dim myText As String ="" ' If System.IO.File.Exists(FILE_NAME) =True Dim vervolgens objReader als nieuw System.IO.StreamReader(FILE_NAME, System. Text.Encoding.Default) Do While objReader.Peek() <> -1 myText &=objReader.ReadLine() Loop Dim _settingItems() As String =myText.Split(" ") _deviceIP =_settingItems(0) 'IP-ul DEVICE _AKey =_settingItems(1).Replace("akey:", "") _DSKey =_settingItems(2).Replace("dskey:", "") cbxEnabled.Text ="Device:" &_deviceIP txtInfo.Text =" IP-apparaat:" &_deviceIP &vbNewLine &"AKey:" &_AKey &vbNewLine &"DSKey:" &_DSKey &vbNewLine strR1 =_settingItems(3).Replace("relay1:", "") txtInfo.Text +="Relay1 :" &strR1 &vbNewLine strR2 =_settingItems(4).Replace("relay2:", "") txtInfo.Text +="Relay2:" &strR2 &vbNewLine ' txtInfo.Text ="Instellingen:" &myText objReader.Dispose () objReader.Close() End If Catch ex As Exception lblDevice.Text =ex.Message.ToString End Probeer cmdCheckDevice() 'LOKALE INSTELLINGEN Thread.CurrentThread.CurrentCulture =New CultureInfo("en-US") 'Thread.CurrentThread.CurrentUICulture =New CultureInfo("ro-RO") cmdStartFilisera() End Sub Private Sub Count_Tick(ByVal afzender As System.Object, ByVal e As System.EventArgs) cmdGetSensorValues() cmdTriggers() If CDate(dtFrom.Text).ToString("dd.MM.yyyy") =Date.Now().ToString("dd.MM.yyyy") Dan cmdStartFilisera() End If End Sub Private Sub Times_up(ByVal afzender As System.Object, ByVal e As System.EventArgs) ' Count.Reset() 'Count.Pause() End Sub Private Sub cmdStartFilisera() Probeer dtFrom.MaxDate =DateTime.Now _dasResult =_myDas.getDas(_DSKey, "json", 0, 100) cmdFillData() Catch ex As Exception lblDevice.Text +=ex.Message.ToString End Try End Sub Private Sub cbxEnabled_CheckedChanged(sender As Object, e As EventArgs) Handvatten cbxEnabled. CheckedChanged cmdCheckDevice() End Sub Private Sub cmdCheckDevice() Try If cbxDemo.Checked =False Then lblDevice.Text =("Apparaat inschakelen!") lblEvenimente.Text =Date.Now.ToString("dd.MM .yyyy HH:mm:ss") If cbxEnabled.Checked =True Dan dimmen als nieuwe Net.NetworkInformation.Ping Indien niet pingsender.Send(_deviceIP).Status =Net.NetworkInformation.IPStatus.Success Dan lblDevice.Text =(" Apparaat niet beschikbaar op het lokale netwerk!") cbxEnabled.Checked =False btnTemperatura.Enabled =False btnVolumContainer.Enabled =False Count.Reset() Count.Pause() MessageBox.Show("Apparaat op " &_deviceIP &" niet gevonden! ") Else lblDevice.Text =("Apparaat verbonden!") btnTemperatura.Enabled =True btnVolumContainer.Enabled =True cmdGetSensorValues() Timer1.Enabled =True cmdAddData() Count.Start() End If Else End If Else btnTemperatura.Enabled =True cmdAddData() Count.Start() End If Else End If Else. True btnVolumContainer.Enabled =True cmdGetSensorValues() Timer1.Enabled =True cmdAddData() Count.Start() End If Catch ex As Exception End Try End Sub Private Sub btnVolumContainer_Click(sender As Object, e As EventClickArgs) Handvatten btnVolumContainer. ://192.168.0.102/digital/7/1 'SLUIT WATER VAN DE KNOP Dim _ItemsR1() As String =s trR1.Split(",") If btnVolumContainer.Text.Contains("Open") Dan cmdRelay(_ItemsR1(0), 1) cmdRelay(_ItemsR1(1), 1) cmdRelay(_ItemsR1(2), 0) cmdRelay(_ItemsR1 (3), 0) btnVolumContainer.Text ="Sluit water" Anders cmdRelay(_ItemsR1(0), 0) cmdRelay(_ItemsR1(1), 0) cmdRelay(_ItemsR1(2), 1) cmdRelay(_ItemsR1(3), 1 ) btnVolumContainer.Text ="Open water" End If ' Dim _url As String =_deviceIP &"digital/7/1" End Sub Private Sub btnTemperatura_Click(sender As Object, e As EventArgs) Handvatten btnTemperatura.Click 'VENSTER SLUITEN VAN KNOP Dim _ItemsR2() As String =strR2.Split(",") If btnTemperatura.Text.Contains("Open") Dan cmdRelay(_ItemsR2(0), 1) cmdRelay(_ItemsR2(1), 1) btnTemperatura.Text ="Close window" Else cmdRelay(_ItemsR2(0), 0) cmdRelay(_ItemsR2(1), 0) btnTemperatura.Text ="Open window" End If End Sub Private Sub Timer1_Tick (sender As Object, e As EventArgs) Behandelt Timer1.Tick cmdAddData () End Sub Private Sub btnTestCloud_Click (afzender als object, e als EventArgs) Behandelt btnTestCloud. Klik op Probeer cmdStartFilisera() Catch ex As Exception MessageBox.Show("Verbinding met DasData!") End Try End Sub Private Function cmdRelay(ByVal _DPin As String, ByVal _cmd As Int16) Probeer Dim _urlCommand As String =_deviceIP &"/digital /" &_DPin &"/" &_cmd Dim client As New WebClient() client.Headers.Add("user-agent", "Arduino/4.0 (compatibel; MSIE 6.0; WindowsNT 5.2; .NET CLR 1.0.3705;)") Dim data As Stream =client.OpenRead(_urlCommand) Dim reader As New StreamReader(data) Dim s As String =reader.ReadToEnd() ' txtInfo.Text +=(s) data. Close() reader.Close() Catch ex As Exception End Try End Functie Private Sub dtFrom_ValueChanged(sender As Object, e As EventArgs) Handgrepen dtFrom.ValueChanged Probeer 'GET VALUES BASED ON DATE SELECTION _dasResult =_myDas.getDas, "(_DSKeyDas) ", CDate(dtFrom.Text).ToString("dd.MM.yyyy"), CDate(dtFrom.Text).ToString("dd.MM.yyyy")) cmdFillData() Catch ex As Exception MessageBox.Show(ex .Message.ToString) End Try End Sub Private Sub cmdGetSensorValues() Probeer ''GET SENSOR VALUES FROM DEVICE If cbxDemo.Checked =False Dim client As New WebClient() client.Headers.Add("user-agent", "Arduino /4.0 (compatibel; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)") Dim data As Stream =client.OpenRead("http://" &_deviceIP &"/index.html") Dim reader As Nieuwe StreamReader(data) Dim s As String =reader.ReadToEnd() s =s.Replace("""", "").Replace("}", "").Replace("{", "").Replace(" ", "").Replace("variabelen:", "") Dim sItems() As String =s.Split(",") intVolumContainer =cmdGetVal(sItems(0)) intUmidSol =cmdGetVal(sItems(1)) intUmidSera =cmdGetVal(sItems(2)) intTempSera =cmdGetVal(sItems (3)) cmdTemptaraVal =( 4)) intTempSol =cmdGetVal(sItems(5)) data.Close() reader.Close() Else intVolumContainer =_rnd(60) intUmidSol =_rnd(80) intUmidSera =_rnd(20) intTempSera =_rnd(ara) =intTernd (57) intTempSol =_rnd(66) End If ggVolum.Value =intVolumContainer rgVolum.Value =intVolumContainer ggUmidSol.Value =intUmidSol ggUmidSera.Value =intUmidSalu inTemp.Out '{"variabelen" {"Volum_container":0, "Umiditate_sol":0.00, "Umiditate_aer":36.60, "Temp_in":26.50, "Temp_out":0.00, "Temp_sol":0.00, "Umidex_in":26.37}, " id":"1", "name":"FiliSera", "hardware":"arduino", "connected":true} End Try E nd Sub Private Function cmdGetVal(ByVal _sItem As String) Probeer 'SPLIT STRING AND GET VALUES BACK Dim _s() As String =_sItem.Split(":") Return _s(1) Catch ex As Exception End Try End Functie Private Sub cmdAddData () Probeer 'SEND GEGEVENS NAAR DASDATA CLOUDOPSLAG Dim _strFiliseraDataSend As String =intVolumContainer &"|" &intUmidSol &"|" &intUmidSera &"|" &intTempAfara &"|" &intTempSera &"|" &intTempSol '&"| "&intUmidex &"|"&Dim _dasResult As String =_myDas.sendDas(_strFiliseraDataSend, _DSKey, _AKey) Catch ex As Exception cmdLogMe("ERROR..." &ex.Message.ToString(), "error") End Try End Sub Private Sub cmdFillData() Probeer 'INTERFACE VULLEN ZAL ALLE SOORTEN GEGEVENS Dim dataSet As DataSet =JsonConvert.DeserializeObject(Of DataSet)(_dasResult) Dim dataTable As DataTable =dataSet.Tables(0) 'GRIDVIEW DataGridView1.DataSource =Tables(0) DataGridView1.AutoGenerateColumns =True 'CHARTS ChartTemp.DataSource =dataTable ChartTemp.Series.Clear() chartUmid.DataSource =dataTable ch artUmid.Series.Clear() chartVolum.DataSource =dataTable chartVolum.Series.Clear() Dim i As Integer =0 Dim j As Integer =0 Dim k As Integer =0 Voor elke tabel In dataSet.Tables Voor elke rij In tabel. Rijen voor elke col In table.Columns Dim colName As String =col.ColumnName.ToString If colName <> "id" en colName <> "AIDate" Probeer dan Dim serieName As String =RTrim(colName) 'VOLUME If colName.Contains( "Nivel") Dan chartVolum.Series.Add(serieName) chartVolum.Series(serieName).LabelFormat ="N1" chartVolum.Series(i).ChartType =SeriesChartType.Line chartVolum.Series(i).BorderWidth =2 chartVolum.Series (i).Color =Color.Aqua chartVolum.Series(i).BorderDashStyle =ChartDashStyle.Solid chartVolum.Series(serieName).YValueMembers =RTrim(colName) chartVolum.Series(serieName).XValueMember ="AIDate" i +=1 End If 'VOCHTHEID If colName.Contains("Umid") Then chartUmid.Series.Add(serieName) chartUmid.Series(serieName).LabelFormat ="N1" chartUmid.Series(j).ChartType =SeriesChartType.Line chartU mid.Series(j).BorderWidth =2 chartUmid.Series(j).BorderDashStyle =ChartDashStyle.Solid chartUmid.Series(serieName).YValueMembers =RTrim(colName) chartUmid.Series(serieName).XValueMember ="AIDate" j +=1 End If 'TEMP If colName.Contains("Temp") Then ChartTemp.Series.Add(serieName) ChartTemp.Series(serieName).LabelFormat ="N1" ChartTemp.Series(k).ChartType =SeriesChartType.Line ChartTemp.Series (k).BorderWidth =2 ChartTemp.Series(k).BorderDashStyle =ChartDashStyle.Solid ChartTemp.Series(serieName).YValueMembers =RTrim(colName) ChartTemp.Series(serieName).XValueMember ="AIDate" k +=1 End If Catch ex As Exception End Try End If Next Exit For Next Next 'VUL DE GRAFIEKEN ChartTemp.DataBind() ChartTemp.Visible =True chartUmid.DataBind() chartUmid.Visible =True chartVolum.DataBind() chartVolum.Visible =True Catch ex As Uitzondering cmdLogMe("ERROR..." &ex.Message.ToString(), "error") End Try End Sub Private Sub cmdTriggers() 'STEL TRIGGERS IN EN BEWAAR HET LOGBOEK Case selecteren intVolumContain er Case> 80 cmdLogMe("HIGH HIGH - Containervolume - stop water", "0") Case> 70 ' cmdLogMe("HIGH - Containervolume - water start", "1") Case <20 ' cmdLogMe("LOW - Containervolume laag - water stopt", "1") Case <10 cmdLogMe ("LOW LOW - Containervolume hoog hoog hoog - start water", "0") Einde Selecteren Case selecteren intTempSera Case> 38 cmdLogMe ("HIGH HIGH - Temperatuur in kas - ramen open", "0") Case> 30 ' cmdLogMe("HIGH - Temperatuur in kas - ramen voorbereiden", "1") Case <10 ' cmdLogMe("LOW - Temperatuur in kas - windows voorbereiden", "1") Case <10 cmdLogMe("LOW LOW - Container volume high high high - start water", "0") End Select End Sub Public Function _rnd(ByVal n As Integer) As Integer 'initialiseer willekeurig getal generator Dim r As New Random (System.DateTime.Now.Millisecond) Return r.Next (1, n) End Function Private Sub cmdLogMe (message As String, _type As String) Probeer Dim _strLog As String ="adeewdf4-4aa34-14ass24 -8436-aea1" 'LOG DASDATA DS KEY lstEv enimente.Items.Add((System.DateTime.Now &" " &message) + Constants.vbNewLine) 'STORE LOGS TO DASDATA _myDas.sendDas(message &"|" &_type, _strLog, _Akey) Catch ex As Exception cmdLogMe( "ERROR..." &ex.Message.ToString(), "error") End Try End SubEnd Class
Bronbestanden - Filisera
https://github.com/dasdata/DasFilisera

Schema's

PDF-bestand met aansluitingen - sensoren &relais

Productieproces

  1. Raspberry Pi Temperature Logger
  2. Meet temperaturen met een 1-draads DS18B20-sensor en Raspberry Pi
  3. TMP006 Temperature Sensor Python Library met Raspberry pi,
  4. Python- en Raspberry Pi-temperatuursensor
  5. 1-draads temperatuursensor DS1820 op Raspberry Pi (direct GPIO)
  6. Raspberry Pi 1-draads digitale thermometersensor (DS18B20)
  7. Raspberry Pi temperatuur- en lichtsensor
  8. Raspberry Pi-temperatuursensor
  9. Lagertemperatuursensor | detector
  10. Lab-on-chip stroom- en temperatuursensor
  11. Temperatuurmetingen met infraroodsensor