Membuat Alat Monitoring Ketinggian Air (Water Level) ARDUINO via WIFI Ethernet Shield
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang digunakan untuk mengukur ketinggian air atau water level dengan menggunakan arduino dan sensor air, media pengiriman datanya menggunakan wifi dan penerimanya bisa menggunakan komputer atau handphone yang sudah dilengkapi software browser. untuk lebih jelasnya berikut adalah skema dan programnya.
Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); }
void loop() { int dataadc1 = analogRead(0); int dataadc2 = analogRead(1); int dataadc3 = analogRead(2);
EthernetClient client = server.available(); if (client) { Serial.println("new client"); // an http request ends with a blank line boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); if (readString.length() < 100) {
//store characters to string readString += c; //Serial.print(c); } if (c == '\n' && currentLineIsBlank) { client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connection: close"); client.println("Refresh: 1"); client.println(); client.println("<!DOCTYPE HTML>"); client.println("<html>"); client.println(" "); client.println("<title> Monitor Ketinggian Air </title> "); client.println("<body bgcolor = #000000>"); client.println("<center>"); client.println("<font color = yellow><center><h1>MONITOR KETINGGIAN AIR<br></h1></center><br></font>"); client.println("<font color = #FFFFFF>"); client.println("<h2>"); client.println("Sensor 1 = "); client.print(dataadc1); client.println("<br />"); client.println("Sensor 2 = "); client.print(dataadc2); client.println("<br />"); client.println("Sensor 3 = "); client.print(dataadc3); client.println("<br />"); client.println("<br />"); client.println("Ketinggian Air = ");
if((dataadc1 > x)&&(dataadc2 > x)&&(dataadc3 > x)){ client.println("Tidak ada Air "); digitalWrite(4,LOW); digitalWrite(7,LOW); }
Membuat Alat Prabayar Air Isi Ulang Otomatis Berbasis RFID RC-522 Water Flow Sensor
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat untuk topup air isi ulang menggunakan RFID, jadi seperti halnya pulsa sms yang menggunakan kartu untuk pengisian kuotanya. Alat dilengkapi dengan sensor water flow untuk menghitung debit air yang terpakai jika debit air yang mengalir sudah sama seperti kuota yang dibeli maka solenoid valve akan menutup namun jika masih ada saldo atau kuotanya maka solenoid akan hidup yang artinya air bisa mengalir. untuk lebih jelasnya berikut adalah skema dan hasilnya.
lcd.begin(); //set lcd i2c lcd.noCursor(); //biar gak ada cursor di lcd lcd.clear(); //clear lcd Serial.begin(9600); // Initiate a serial communication SPI.begin(); // Initiate SPI bus mfrc522.PCD_Init(); // Initiate MFRC522 // Serial.println("Put your card to the reader..."); // Serial.println();
delay(1000);
}
void loop() {
lcd.setCursor(0,0); lcd.print("Dekatkan Kartu");
SPI.begin(); // Initiate SPI bus mfrc522.PCD_Init(); // Initiate MFRC522 Serial.println("Put your card to the reader...");
// Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()) { //return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { //return; } //Show UID on serial monitor //lcd.setCursor(0,0); Serial.print("UID tag :"); String content= ""; byte letter; for (byte i = 0; i < mfrc522.uid.size; i++) { // Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); // Serial.print(mfrc522.uid.uidByte[i], HEX); content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); content.concat(String(mfrc522.uid.uidByte[i], HEX)); }
// Print the flow rate for this second in litres / minute Serial.print("Flow rate: "); Serial.print(int(flowRate)); // Print the integer part of the variable Serial.print("."); // Print the decimal point // Determine the fractional part. The 10 multiplier gives us 1 decimal place. frac = (flowRate - int(flowRate)) * 10; Serial.print(frac, DEC) ; // Print the fractional part of the variable Serial.print("L/min"); // Print the number of litres flowed in this second Serial.print(" Current Liquid Flowing: "); // Output separator Serial.print(flowMilliLitres); Serial.print("mL/Sec");
// Print the cumulative total of litres flowed since starting Serial.print(" Output Liquid Quantity: "); // Output separator Serial.print(totalMilliLitres); Serial.println("mL");
// Reset the pulse counter so we can start incrementing again pulseCount = 0;
// Enable the interrupt again now that we've finished sending output attachInterrupt(sensorInterrupt, pulseCounter, FALLING);
Membuat Alat Prabayar Pulsa Air Otomatis Menggunakan Arduino Keypad Matrix 4x4 dan RFID RC522 dengan Interface VB 6.0 dan dataase Ms. Access
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk topup pulsa air otomatis berbasis RFID jadi seperti halnya pulsa sms atau kuota internet yang harus di topup untuk penggunaannya, alat ini juga seperti itu namun aplikasinya untuk air, jadi kita membeli berapa liter air dan akan disimpan untuk ID kartu tersebut, setelah itu jika ingin membeli air hanya perlu dekatkan kartu kealat kemudian akan dikurangi oleh nilai pembelian sehingga akan tampak saldo yang tersisa. untuk lebih jelasnya berikut adalah skema dan programnya.
char customKey;
const byte ROWS = 4;
const byte COLS = 4;
long passwd = 0;
long isiku;
long kartu1;
long kartu2;
long kartu3;
long kartu4;
int id;
long beli;
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {2,3,4,5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {6,7,A0,A1}; //connect to the column pinouts of the keypad
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup()
{
pinMode(buzzer,OUTPUT);
digitalWrite(buzzer,LOW);
lcd.begin(); //set lcd i2c
lcd.noCursor(); //biar gak ada cursor di lcd
lcd.clear(); //clear lcd
Serial.begin(9600); // Initiate a serial communication
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
// Serial.println("Put your card to the reader...");
// Serial.println();
Public Conn As New ADODB.Connection
Public Rs As New ADODB.Recordset
Public SQl As String
Public i As Byte
Public Sub dbConnect()
Set Conn = New ADODB.Connection
Conn.ConnectionString = strConn
Conn.Open
End Sub
Public Function strConn() As String
Set Conn = New ADODB.Connection
Set Rs = New ADODB.Recordset
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\yanuar\Desktop\interface\database\dbsuhu.mdb;Persist Security Info=False"
End Function
- Form 1.frm
Option Explicit
Dim arrdata()
Dim TotalBaca As Integer
Dim BMI As Single
Dim Keterangan As String
Const MAKSBACA = 15
Dim Conn1 As ADODB.Connection
Dim Cmd1 As ADODB.Command
Dim Param1 As ADODB.Parameter
Dim Rs1 As ADODB.Recordset
Private Sub berhenti_Click()
start.Enabled = True
berhenti.Enabled = False
TimerBaca.Enabled = False
End Sub
Dim Rs As Recordset
Set Rs = New ADODB.Recordset
Rs.Open SQl, Conn, adOpenDynamic
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim i As Byte
For i = 1 To 16
ComboCOM.AddItem (i)
Next i
End Sub
Private Sub MSComm2_OnComm()
Dim buffer As String
Dim temp As String
Dim pisah() As String
Dim i As Integer
If MSComm2.CommEvent = comEvReceive Then
buffer = MSComm2.Input
pisah = Split(buffer, Chr$(13))
On Error Resume Next
If buffer <> " " Then
With Text1
.SelStart = Len(.Text)
.SelText = buffer
End With
For i = 0 To 2
If 0 < 3 Then
Text2(i).Text = CStr(pisah(i))
End If
Next i
Else
buffer = " "
End If
End If
End Sub
ReDim arrdata(1 To MAKSBACA + 1)
For u = 1 To MAKSBACA
arrdata(u) = 0
Next
TotalBaca = 0
start.Enabled = False
berhenti.Enabled = True
TimerBaca.Enabled = True
Timer1.Enabled = True
Timer2.Enabled = True
Timer3.Enabled = True
ada_eror:
If ComboCOM.ListIndex < 1 Then
MsgBox "COM berada di Nomor : " & Err.Number & vbCrLf & Err.Description, vbCritical + vbOKOnly, "ERROR"
start.Enabled = True
berhenti.Enabled = True
ComboCOM.Text = "Pilih COM"
End If
End Sub
Private Sub Timer2_Timer()
Adodc1.Refresh
Dim ok As Integer
Dim mode As Integer
End Sub
Private Sub Timer3_Timer()
MSComm2_OnComm
End Sub
Private Sub Timer4_Timer()
Label4.Caption = Format(Time, "hh:mm:ss")
Label2.Caption = Format(Date, "dd:mm:yy")
End Sub
Private Sub TimerBaca_Timer()
Dim strInput As String
Dim strPotong As String
Dim singleInput As Single
Dim u As Integer
strInput = MSComm2.Input
strPotong = strInput
If TotalBaca >= MAKSBACA Then
TimerBaca.Enabled = False
If MSComm2.PortOpen = True Then MSComm2.PortOpen = False
Call berhenti_Click
End If
Alat Kendali Pompa (Relay) Menggunakan SMS berbasis ARDUINO dan SMS Gateway SIM900A
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang bisa digunakan untuk kendali pompa dengan menggunakan SMS, pompa dipasangkan ke relay sehingga yang akan aktif adalah relay, jika relay aktif maka pompa akan aktif, jika relay off maka pompa akan off juga. alat ini dikendalikan menggunakan 2 cara yaitu dengan menggunakan sms dan dengan tombol push button. untuk lebih jelasnya berikut adalah skema dan programnya.
a. Arduino Uno
b. Modul SIM900A
c. LCD 16x2 + I2C
d. Modul relay
e. Program Arduino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "SIM900.h"
#include <SoftwareSerial.h>
#include <stdlib.h>
#include "sms.h"
SMSGSM sms;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int relay1 = 4;
int relay2 = 5;
int btstart = 10;
int btstop = 9;
int led = 6;
int btstartx = 0;
int btstopx = 0;
int mark = 0;
int cacah = 0;
if (gsm.begin(2400)) {
Serial.println("\nstatus=READY");
started=true;
} else Serial.println("\nstatus=IDLE");
if(started) {
//Enable this two lines if you want to send an SMS.
//if (sms.SendSMS("085726123456", "Alat Ready"))
//Serial.println("\nSMS sent OK");
}