Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Rumah Kaca DasFilisera

Komponen dan persediaan

Sensor Suhu DHT22
× 1
DS18B20
× 1
Sensor suhu dan kelembaban tanah FS200-SHT25
× 1
Modul Relai 4 Saluran
× 1
Modul Relai 2 Saluran
× 1
Sensor Ultrasonik - HC-SR04 (Generik)
× 1
Arduino MKR1000
× 1

Aplikasi dan layanan online

DasData
Microsoft Visual Studio 2015

Tentang proyek ini

Tumbuh tanaman dan sayuran lebih sadar akan kondisi lingkungannya. Cukup dengan menggunakan MKR1000

Persyaratan untuk Pertumbuhan Tanaman

Pertumbuhan tanaman tergantung dari beberapa kondisi lingkungan yang ideal seperti suhu, kelembaban, cahaya dan nutrisi mineral atau oksigen lainnya.

Menyediakan tanaman dengan jumlah air yang cukup atau menjaga suhu normal di rumah kaca bisa menjadi proses yang rumit tetapi tidak jika Anda bisa melakukannya dengan lebih mudah.

Ikhtisar perangkat keras

Suhu / Kelembaban

TH1 - Nilai suhu luar akan diberikan dari sensor DS18B20 tahan air - koneksi pin D1

TH2 - Di dalam suhu / hum. dapat ditemukan dari DHT22 - pin D0

TH3 - FS200/SHT25 - akan diperkenalkan dalam kondisi tanah. Koneksi akan di untuk pin SCL &SDA 12/11

Tuas air

W1 - untuk mendapatkan ketinggian air akan menggunakan sensor ultrasound seperti HC - SR04 Connections di A0 - Echo dan Trigger di A1. Berdasarkan nilai ini Anda dapat mengontrol katup menggunakan relai saluran R1 - 4 saluran.

Suhu Udara / Oksigen

A1 - Berdasarkan nilai suhu/kelembaban, Anda dapat memerintahkan kapan harus membuka jendela menggunakan relai R2. Berdasarkan iklim Anda harus menyetelnya sesuai keinginan.

Relay R1 / R2

Untuk mengatur beberapa perintah seperti membuka Windows atau memulai pompa apa pun, Anda dapat mengirim perintah ke relai ... R1 terhubung ke pin digital 7,8,9,10 dan R2 5,6

MKR1000 - istirahat

Sekarang kita menghubungkan semua hal bersama-sama adalah waktu untuk mendapatkan beberapa data dan menggunakan aRest library, yang akan menyediakan antarmuka web ke perangkat MKR1000 dengan string format json. Gunakan perpustakaan, file .ino yang disediakan di bawah ini dan ubah koneksi router Wifi Anda.

Data dan Antarmuka

Selama kami memiliki antarmuka perangkat kami, kami juga dapat menggunakan data ini dan melihatnya di jaringan lokal.

Kami telah menggunakan Visual Studio 2015 dan .net untuk membangun aplikasi Windows yang akan membantu Anda memvisualisasikan kondisi rumah kaca secara langsung, tetapi juga sedikit riwayat harian atau semua jenis log yang ingin Anda integrasikan.

Untuk penyimpanan di cloud kami cukup menggunakan konfigurasi rumah kaca DasData atau Anda dapat membuat saluran data Anda sendiri.

Langkah selanjutnya adalah memodifikasi DsKey dan AKey yang disediakan di Settings.txt dari folder aplikasi. Jika semuanya berfungsi, Anda akan melihat beberapa data online.

Ikuti saluran peretas DasData untuk pembaruan lebih lanjut di masa mendatang

Otomatisasi rumah kaca

Anda harus memutuskan katup atau motor apa yang akan menghasilkan lebih banyak tindakan berdasarkan konfigurasi dan ukuran rumah kaca Anda. Semua ini dapat dikontrol dari relay.

Kode

  • Filisera_Arduino
  • libraries.zip
  • Filisera - vb.zip
  • Filisera - VS
Filisera_Arduino C/C++
DASFilisera menggunakan aREST Library untuk board Arduino/Genuino MKR1000.
/* DASFilisera menggunakan aREST Library untuk board Arduino/Genuino MKR1000. aREST - Ditulis pada tahun 2016 oleh Marco Schwartz di bawah lisensi GPL.*/// Impor pustaka yang diperlukan#include #include #include #include "DHT.h"#include #include #include #include // ********************** ***// ** Senzori Temperatura **// *************************#define DHTPIN 0 // Kelembaban dalam/suhu/panas index#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321#define ONE_WIRE_BUS 1OneWire oneWire(ONE_WIRE_BUS);DallasSensor suhu(&oneWire);float umidSol =0; // Kelembaban tanahfloat umidAer =0; // Kelembaban udaraFloat tempIn =0; // Suhu infloat tempOut =0; // Suhu outfloat tempSol =0; // Wadah volumefloat umidexIn =0; // Terasa seperti temp//VOLUM #define echoPin A0 // Echo pin A0#define trigPin A1 // Trigger pin A1durasi panjang; // durasi untuk menghitung distanceint HR_dist =0; // Jarak terhitung minimumRange=5; // Jangkauan Sonar Min maksimumRange=200; //Max Sonar rangeunsigned long pulseduration=0;int nivelCm, nivelRamasCm;int nivelProc, nivelVol;int kosong =100;int penuh =100;int sqrLevel, sqrInvertLevel; // Statusint status =WL_IDLE_STATUS;// Buat aREST instanceaREST rest =aREST();// Parameter WiFichar ssid[] ="WIFI_AP";char password[] ="WIFI_PASSW";// Port untuk mendengarkan koneksi TCP yang masuk# define LISTEN_PORT 80// Membuat instance dari serverWiFiServer server(LISTEN_PORT);//INITIALIZARE SENZORI DHT dht(DHTPIN, DHTTYPE);// RELEE RELEEEint aVentil, aLateral;int inReleu1Ventil =6;int inReleu2Ventil =7;int inReleu2Ventil =7;;int inReleu4Ventil =9;int inReleu1Lateral =10;int inReleu2Lateral =11;// Mendeklarasikan fungsi untuk diekspos ke APIint ledControl(String command);void setup(void){ // Mulai Serial Serial.begin(115200); // Memulai variabel dan mengeksposnya ke REST API // rest.variable("temperature",&temperature);// rest.variable("humidity",&humidity); // Fungsi yang akan diekspos rest.function("led",ledControl); // Beri nama dan ID ke device rest.set_id("1"); rest.set_name("mkr1000"); // Sambungkan ke WiFi saat (status !=WL_CONNECTED) { Serial.print("Mencoba menyambung ke SSID:"); Serial.println(ssid); status =WiFi.begin(ssid, password); // Tunggu 10 detik untuk koneksi:delay(10000); } Serial.println("WiFi terhubung"); // Mulai server server.begin(); Serial.println("Server dimulai"); // Cetak alamat IP IPAddress ip =WiFi.localIP(); Serial.print("Alamat IP:"); Serial.println(ip); // SETUP DHT - DI DALAM DHT dht(DHTPIN, DHTTYPE);// sensor.begin(); // Suhu sensor porno di luar DS-16B20 pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); // Init variabel dan ekspos ke 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 ); //sensor.requestTemperature(); // Temperatur Keluar }void loop() { getmyDistance(); // getSoilVals(); getInsideVals();// getOutSideVals(); // Menangani panggilan REST klien WiFiClient =server.available(); if (!klien) { kembali; } while(!client.available()){ delay(1); } rest.handle(client);}void getmyDistance() { digitalWrite(trigPin,LOW); delayMicroseconds(2); digitalWrite(trigPin,TINGGI); delayMicroseconds(10); digitalWrite(trigPin,RENDAH); durasi =pulseIn(echoPin,HIGH); //hitung jarak HR_dist =durasi/58.2;// sqrLevel =kosong - HR_dist; if (HR_dist>=maximumRange || HR_dist <=minimumRange) { sqrLevel =0; } else { sqrLevel =kosong - HR_dist; Serial.println(HR_dist); } penundaan(100); }void getDistance() {digitalWrite(trigPin, LOW);delayMicroseconds(10);// sekarang kirim pulsa 10uS untuk mengaktifkan Ping digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW);// akhirnya, ukur panjang pulsa masuk durasi =pulseIn(echoPin, HIGH);// bagi panjang pulsa dengan setengah durasi pulsa =pulseduration/2;// konversi ke sentimeter.nivelRamasCm =int( pulseduration/29);nivelCm =kosong - nivelRamasCm;nivelVol =peta(nivelRamasCm, penuh, kosong, 100, 0);// Tipareste nivelul dalam 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){ } } }panjang mikrodetikToCentimeters (mikrodetik panjang) { // Kecepatan suara adalah 340 m/s atau 29 mikrodetik per sentimeter // Ping bergerak maju mundur, jadi, jaraknya adalah setengah jarak yang ditempuh return microseconds / 29 / 2;}void getInsideVals() { float h =dht.readHumidity(); // Baca suhu sebagai Celcius (default) float t =dht.readTemperature(); // Baca suhu sebagai Fahrenheit (isFahrenheit =true)// float f =dht.readTemperature(true); umidAer =h; suhuIn =t; // Periksa apakah ada pembacaan yang gagal dan keluar lebih awal (untuk mencoba lagi). if (isnan(h) || isnan(t)) { Serial.println("Gagal membaca dari sensor DHT!"); kembali; } // Hitung indeks panas dalam Fahrenheit (default) //float hif =dht.computeHeatIndex(f, h); // Hitung indeks panas dalam Celcius (isFahreheit =false) // float hic =dht.computeHeatIndex(t, h, false); // umidexIn =hik; }void getOutSideVals() { tempOut =sensor.getTempCByIndex(0); Serial.println("Suhu Keluar:"); Serial.print(tempOut); } void getSoilVals() { umidSol =SHT2x.GetHumidity(); tempSol =SHT2x.GetTemperature(); Serial.println("Kelembaban Tanah(%RH):"); Serial.print(umidSol); Serial.print("Suhu Tanah (C):"); Serial.print(tempSol); } // sensor.requestTemperatures(); // Temperatura Out // Fungsi kustom yang dapat diakses oleh APIint ledControl(String command) { // Dapatkan status dari perintah int state =command.toInt(); digitalWrite(6,status); kembali 1;} 
libraries.zipC/C++
Pustaka yang digunakan di Filisera
Tidak ada pratinjau (hanya unduhan).
Filisera - vb.zipVBScript
.net Visual Studio Project
Tidak ada pratinjau (hanya unduhan).
Filisera - VS VBScript
File .net yang akan membaca data dari arduino dan menampilkan antarmuka
Imports System.GlobalizationImports System.IOImports System.NetImports System.ThreadingImports System.Windows.Forms.DataVisualization.ChartingImports Newtonsoft.JsonPublic Class Form1 Private _deviceIP As String =""' DEVICE IP Private intVolumContainer, intUmidSol, intUmidSera, intTempAfara, intTempSera, intTempSol, intUmidex As String ' VARIABILES Private strR1, strR2 Sebagai String 'RELAYS Publik Dihitung Sebagai CountDown 'COUNTDOWN TICK Private String =""RENZATReLAYS Private String ="DEVICES 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) Menangani MyBase.Load Count =New CountDown(50, 0 ) '5 DETIK UPDATE AddHandler Count.Tick, AddressOf Count_Tick AddHandler Count.TimesOut, AddressOf Times_up Coba 'BACA PENGATURAN DARI FILE .txt Dim path As String =Directory.GetCurrentDirectory( ) Redupkan FILE_NAME As String =path &"\Settings.txt" Redupkan myText As String ="" ' If System.IO.File.Exists(FILE_NAME) =True Kemudian Redupkan objReader As New System.IO.StreamReader(FILE_NAME, System. Text.Encoding.Default) Lakukan Sementara 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 =" Perangkat IP:" &_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 ="Settings:" &myText objReader.Dispose () objReader.Close() End If Tangkap ex Sebagai Pengecualian lblDevice.Text =ex.Message.ToString End Coba cmdCheckDevice() 'SETTING LOKAL Thread.CurrentThread.CurrentCulture =New CultureInfo("en-US") 'Thread.CurrentThread.CurrentUICulture =New CultureInfo("ro-RO") cmdStartFilisera() End Sub Private Sub Count_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) cmdGetSensorValues() cmdTriggers() If CDate(dtFrom.Text).ToString("dd.MM.yyyy") =Date.Now().ToString("dd.MM.yyyy") Kemudian cmdStartFilisera() End If End Sub Private Sub Times_up(ByVal sender As System.Object, ByVal e As System.EventArgs) ' Count.Reset() 'Count.Pause() End Sub Private Sub cmdStartFilisera() Coba dtFrom.MaxDate =DateTime.Now _dasResult =_myDas.getDas(_DSKey, "json", 0, 100) cmdFillData() Tangkap ex Sebagai Pengecualian lblDevice.Text +=ex.Message.ToString End Coba Akhiri Sub Private Sub cbxEnabled_CheckedChanged(sender As Object, e As EventArgs) Menangani cbxEnabled. CheckedChanged cmdCheckDevice() End Sub Private Sub cmdCheckDevice() Coba Jika cbxDemo.Checked =False Kemudian lblDevice.Text =("Aktifkan perangkat!") lblEvenimente.Text =Date.Now.ToString("dd.MM .yyyy HH:mm:ss") If cbxEnabled.Checked =True Kemudian Redupkan pingsender Sebagai Net.NetworkInformation.Ping Baru Jika Bukan pingsender.Send(_deviceIP).Status =Net.NetworkInformation.IPStatus.Success Kemudian lblDevice.Text =(" Perangkat tidak tersedia di jaringan lokal!") cbxEnabled.Checked =False btnTemperatura.Enabled =False btnVolumContainer.Enabled =False Count.Reset() Count.Pause() MessageBox.Show("Device at " &_deviceIP &" tidak ditemukan! ") Else lblDevice.Text =("Perangkat terhubung!") btnTemperatura.Enabled =True btnVolumContainer.Enabled =True cmdGetSensorValues() Timer1.Enabled =True cmdAddData() Count.Start() End If Else End If Else btnTemperatura.Enabled True btnVolumContainer.Enabled =True cmdGetSensorValues() Timer1.Enabled =True cmdAddData() Count.Start() End If Catch ex Sebagai Pengecualian Akhir Coba Akhiri Sub Private Sub btnVolumContainer_Click(sender As Object, e As EventArgs) Menangani btnVolum' httpContainer. ://192.168.0.102/digital/7/1 'TUTUP AIR DARI TOMBOL Redup _ItemsR1() As String =s trR1.Split(",") If btnVolumContainer.Text.Contains("Open") Kemudian cmdRelay(_ItemsR1(0), 1) cmdRelay(_ItemsR1(1), 1) cmdRelay(_ItemsR1(2), 0) cmdRelay(_ItemsR1 (3), 0) btnVolumContainer.Text ="Tutup air" Lain 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) Menangani btnTemperatura.Click 'CLOSE WINDOW FROM BUTTON Dim _ItemsR2() As String =strR2.Split(",") If btnTemperatura.Text.Contains("Open") Kemudian cmdRelay(_ItemsR2(0), 1) cmdRelay(_ItemsR2(1), 1) btnTemperatura.Text ="Tutup 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) Menangani Timer1.Tick cmdAddData () End Sub Private Sub btnTestCloud_Click(sender As Object, e As EventArgs) Menangani btnTestCloud. Klik Coba cmdStartFilisera() Tangkap ex Sebagai Pengecualian MessageBox.Show("Koneksi terputus dengan DasData!") Akhir Coba Akhiri Sub Fungsi Privat cmdRelay(ByVal _DPin As String, ByVal _cmd As Int16) Coba Dim _urlCommand As String =_deviceIP &"/digital /" &_DPin &"/" &_cmd Redupkan klien Sebagai WebClient Baru() client.Headers.Add("user-agent", "Arduino/4.0 (kompatibel; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)") Redupkan data As Stream =client.OpenRead(_urlCommand) Redupkan reader As New StreamReader(data) Dim s As String =reader.ReadToEnd() ' txtInfo.Text +=(s) data. Close() reader.Close() Tangkap ex Sebagai Pengecualian Akhir Coba Akhiri Fungsi Private Sub dtFrom_ValueChanged(pengirim Sebagai Objek, e Sebagai EventArgs) Menangani dtFrom.ValueChanged Coba 'DAPATKAN NILAI BERDASARKAN SELEKSI TANGGAL _dasResult =_myDas.getDas(_DSKey, " ", 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() Coba ''DAPATKAN NILAI SENSOR DARI PERANGKAT Jika cbxDemo.Checked =False Then Dim client As New WebClient() client.Headers.Add("user-agent", "Arduino /4.0 (kompatibel; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)") Redupkan data As Stream =client.OpenRead("http://" &_deviceIP &"/index.html") Redupkan pembaca As StreamReader(data) Baru Dim s As String =reader.ReadToEnd() s =s.Replace("""", "").Ganti("}", "").Ganti("{", "").Ganti(" ", "").Ganti("variabel:", "") Dim sItems() As String =s.Split(",") intVolumContainer =cmdGetVal(sItems(0)) intUmidSol =cmdGetVal(sItems(1)) intUmidSera =cmdGetVal(sItems(2)) intTempSera =cmdGetVal(sItems(3)) intTempVfara 4)) intTempSol =cmdGetVal(sItems(5)) data.Close() reader.Close() Else intVolumContainer =_rnd(60) intUmidSol =_rnd(80) intUmidSera =_rnd(20) intTempSera =_rnd(45) intTempAfara =(57) intTempSol =_rnd(66) End If ggVolum.Value =intVolumContainer rgVolum.Value =intVolumContainer ggUmidSol.Value =intUmidSol ggUmidSera.Value =intUmidSera As ggTempInggTempSera.Value ='{"variabel" {"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} Akhiri Coba E nd Sub Private Function cmdGetVal(ByVal _sItem As String) Coba 'SPLIT STRING DAN DAPATKAN NILAI KEMBALI Dim _s() As String =_sItem.Split(":") Return _s(1) Tangkap ex Sebagai Pengecualian Akhir Coba Akhiri Fungsi Private Sub cmdAddData () Coba 'KIRIM DATA KE PENYIMPANAN CLOUD DASDATA Dim _strFiliseraDataSend As String =intVolumContainer &"|" &intUmidSol &"|" &intUmidSera &"|" &intTempAfara &"|" &intTempSera &"|" &intTempSol '| "&intUmidex &"|"&Redupkan _dasResult As String =_myDas.sendDas(_strFiliseraDataSend, _DSKey, _AKey) Tangkap ex Sebagai Pengecualian cmdLogMe("ERROR..." &ex.Message.ToString(), "error") Akhiri Coba End Sub Private Sub cmdFillData() Coba 'FILL INTERFACE AKAN SEMUA JENIS DATA Redupkan dataSet As DataSet =JsonConvert.DeserializeObject(Of DataSet)(_dasResult) Dim dataTable As DataTable =dataSet.Tables(0) 'GRIDVIEW DataGridView1.DataSource =dataSet. 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 Untuk Setiap tabel Dalam dataSet.Tables Untuk Setiap baris Dalam tabel. Baris Untuk Setiap col Dalam tabel.Kolom Dim colName As String =col.ColumnName.ToString Jika colName <> "id" Dan colName <> "AIDate" Kemudian Coba Dim serieName As String =RTrim(colName) 'VOLUME If colName.Contains( "Nivel") Kemudian 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 'HUMIDITY If colName.Contains("Umid") Kemudian 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") Kemudian 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 Tangkap ex Sebagai Pengecualian Akhir Coba Akhiri Jika Berikutnya Keluar Untuk Berikutnya Berikutnya 'FILL THE CHARTS ChartTemp.DataBind() ChartTemp.Visible =True chartUmid.DataBind() chartUmid.Visible =True chartVolum.DataBind() chartVolum.Visible =Benar Tangkap ex As Pengecualian cmdLogMe("ERROR..." &ex.Message.ToString(), "error") End Try End Sub Private Sub cmdTriggers() 'SET TRIGGERS AND STORE THE LOG Select Case intVolumContain er Kasus> 80 cmdLogMe("TINGGI TINGGI - Volume wadah - hentikan air", "0") Kotak> 70 ' cmdLogMe("TINGGI - Volume wadah - air akan mulai", "1") Kasus <20 ' cmdLogMe("RENDAH - Volume wadah rendah - air akan berhenti", "1") Kasus <10 cmdLogMe("RENDAH RENDAH - Volume wadah tinggi tinggi tinggi - mulai air", "0") Akhir Pilih Pilih Kasus intTempSera Kasus> 38 cmdLogMe("TINGGI TINGGI - Suhu di rumah kaca - buka jendela", "0") Kasus> 30 ' cmdLogMe("TINGGI - Suhu di rumah kaca - siapkan jendela", "1") Kasus <10 ' cmdLogMe("RENDAH - Suhu di rumah kaca - siapkan jendela", "1") Kasus <10 cmdLogMe("RENDAH RENDAH - Volume wadah tinggi tinggi tinggi - mulai air", "0") Akhir Pilih Akhir Sub Fungsi Publik _rnd(ByVal n As Integer) As Integer 'inisialisasi nomor acak 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) Coba Dim _strLog As String ="adeewdf4-4aa34-14ass24 -8436-aea1" 'LOG DASDATA DS KEY lstEv enimente.Items.Add((System.DateTime.Now &" " &pesan) + Constants.vbNewLine) 'STORE LOGS TO DASDATA _myDas.sendDas(message &"|" &_type, _strLog, _AKey) Tangkap ex Sebagai Pengecualian cmdLogMe( "ERROR..." &ex.Message.ToString(), "error") End Try End SubEnd Class
File sumber - Filisera
https://github.com/dasdata/DasFilisera

Skema

File PDF dengan koneksi - sensor &relai

Proses manufaktur

  1. Pencatat Suhu Raspberry Pi
  2. Ukur suhu dengan sensor DS18B20 1-kawat dan Raspberry Pi
  3. TMP006 Sensor Suhu Pustaka Python menggunakan Raspberry pi,
  4. Sensor Suhu Python dan Raspberry Pi
  5. Sensor suhu 1-kawat DS1820 di Raspberry Pi (langsung GPIO)
  6. Raspberry Pi 1- Sensor Termometer Digital Kawat (DS18B20)
  7. Sensor Suhu dan Cahaya Raspberry Pi
  8. Sensor Suhu Raspberry Pi
  9. Sensor suhu bantalan | detektor
  10. Sensor Aliran dan Suhu Lab-On-Chip