Deteksi Golongan Darah Non Invasive (Masih Tahap Experimental)
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mendeteksi golongan darah secara non invasive tapi masih dalam tahap experimental belum fix, alat ini masih butuh banyak uji coba agar didapat banyak data yang bisa diambil kesimpulannya. untuk lebih jelasnya berikut adalah koding dan skemanya.
1. Skema
2. Program Arduino IDE
#include <Wire.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial (2, 3);
int dataadc1;
int zero=0;
int heatTime = 80;
int heatInterval = 255;
char printDensity = 15;
char printBreakTime = 15;
char my_str1[] = "A+";
char my_str2[] = "A-";
char my_str3[] = "B+";
char my_str4[] = "B-";
char my_str5[] = "AB+";
char my_str6[] = "AB-";
char my_str7[] = "O+";
char my_str8[] = "O-";
int datahasil;
int urutan;
int mark;
int tanda = 0;
int button = 12;
int buttonx;
void setup() {
mySerial.begin(9600);
Serial.begin(9600); // to write to our new printer
pinMode(button,INPUT_PULLUP);
initPrinter();
}
void initPrinter()
{
//Modify the print speed and heat
Serial.write(27);
Serial.write(55);
Serial.write(7); //Default 64 dots = 8*('7'+1)
Serial.write(heatTime); //Default 80 or 800us
Serial.write(heatInterval); //Default 2 or 20us
//Modify the print density and timeout
Serial.write(18);
Serial.write(35);
int printSetting = (printDensity<<4) | printBreakTime;
Serial.write(printSetting); //Combination of printDensity and printBreakTime
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang bisa memonitor turbidity air dengan interface lcd 16x2 dan menggunakan Arduino Uno sebagai kontrollernya. alat ini juga ada fitur kendali relay dan buzzer ketika turbidity sudah mencapai angka tertentu. untuk lebih jelasnya berikut adalah koding dan skemanya.
Alat Pakan Ikan Otomatis Berbasis IOT Blynk 2.0 ESP8266
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitoring pakan ikan secara online. jadi alat ini bisa memonitor volume pakan ikan sudah habis atau masih ada. alat ini menggunakan monitor Blynk 2.0 dan sensor jarak HY-SRF05. untuk lebih jelasnya berikut adalah koding dan skemanya.
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitor tekanan udara dengan sensor HX710 dengan interface VB 6.0, alat ini dapat mengukur tekanan udara dengan satuan InH20. untuk lebih jelasnya berikut adalah koding dan komponennya.
1. Sensor Hx710
2. Program Arduino IDE
#include <Wire.h> // i2C Conection Library
#include <LiquidCrystal_I2C.h> //i2C LCD Library
#include "HX710B.h"
LiquidCrystal_I2C lcd(0x27, 16, 2);
float psi1,psi2,psi3;
const int DOUT1 = 2; //sensor data pin
const int SCLK1 = 3; //sensor clock pin
const int DOUT2 = 4; //sensor data pin
const int SCLK2 = 5; //sensor clock pin
const int DOUT3 = 6; //sensor data pin
const int SCLK3 = 7; //sensor clock pin
int btup = 9;
int btdown = 8;
int btupx;
int btdownx;
float range = 80.0;
float persen;
float cfm;
float inh20sen1, inh20sen2, inh20sen3;
HX710B pressure_sensor1;
HX710B pressure_sensor2;
HX710B pressure_sensor3;
void setup() {
Serial.begin(9600);
lcd.begin();
lcd.clear();
lcd.noCursor();
pinMode(btup,INPUT_PULLUP);
pinMode(btdown,INPUT_PULLUP);
pressure_sensor1.begin(DOUT1,SCLK1);
pressure_sensor2.begin(DOUT2,SCLK2);
pressure_sensor3.begin(DOUT3,SCLK3);
}
void loop() {
psi1 = pressure_sensor1.psi();
psi2 = pressure_sensor2.psi();
psi3 = pressure_sensor3.psi();
inh20sen1 = psi1 * 27.679;
inh20sen2 = psi2 * 27.679;
inh20sen3 = psi3 * 27.679;
btupx = digitalRead(btup);
btdownx = digitalRead(btdown);
if(btupx == 0){
delay(200);
range = range + 0.1;
}
if(btdownx == 0){
delay(200);
range = range - 0.1;
}
if(range < 0){
range = 0;
}
persen = (inh20sen2 - inh20sen3) * 100.0;
cfm = persen * range;
lcd.setCursor(0, 0);
lcd.print("I/R: ");
lcd.print(inh20sen1);
lcd.print(" / ");
lcd.print(range);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("P/C: ");
lcd.print(persen);
lcd.print(" / ");
lcd.print(cfm);
lcd.print(" ");
Serial.print(inh20sen1);
Serial.print("|");
Serial.print(range);
Serial.print("|");
Serial.print(persen);
Serial.print("|");
Serial.print(cfm);
Serial.println("|");
delay(1000);
}
3. Program Interface VB 6
Option Explicit
Dim arrdata()
Dim TotalBaca As Integer
Dim BMI As Single
Dim Keterangan As String
Const MAKSBACA = 15
Private Sub berhenti_Click()
start.Enabled = True
berhenti.Enabled = False
TimerBaca.Enabled = False
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))
pisah = Split(buffer, "|")
On Error Resume Next
If buffer <> " " Then
With Text1
.SelStart = Len(.Text)
.SelText = buffer
End With
For i = 0 To 4
If 0 < 5 Then
Text2(i).Text = CStr(pisah(i))
End If
Next i
Else
buffer = " "
End If
End If
End Sub
Private Sub start_Click()
Dim u As Integer
On Error GoTo ada_eror
MSComm2.CommPort = ComboCOM.Text
MSComm2.Settings = "9600,N,8,1"
MSComm2.RThreshold = 20
MSComm2.InputLen = 20
MSComm2.InputMode = comInputModeText
MSComm2.PortOpen = True ' buka port
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
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 Text3_Change()
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
'Text1.Text = Text1.Text + strPotong + vbCrLf
'singleInput = Val(strPotong)
'Label1.Caption = singleInput
If TotalBaca >= MAKSBACA Then
TimerBaca.Enabled = False
If MSComm2.PortOpen = True Then MSComm2.PortOpen = False
Monitoring Kecepatan Angin (Anemometer) dan Arah Mata Angin Wireless Hc-12 Penampil DMD P10 + Fitur Pilih Mode Output
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat memonitoring keceatan angin dan arah mata angin dengan penampil dmd p10. alat ini memiliki 2 bagian yaitu bagian transmitter dan receiver, untuk transmitter dipasangakan 2 buah sensor, kemudian pada bagian receiver dipasangkan panel dmd p10 dengan komunikasi secara wireless. untuk lebih jelasnya berikut adalah koding dan skemanya.
1. Skema
2. Program Transmitter
#include <Wire.h> // i2C Conection Library
#include <SoftwareSerial.h>
SoftwareSerial dataserial(7, 6); // D7,D6
String data, arah_angin, s_angin;
int a, b;
int arahnya;
int kecepatanangin;
// anemometer parameters
volatile byte rpmcount; // count signals
volatile unsigned long last_micros;
unsigned long timeold;
unsigned long timemeasure = 2.00; // seconds
int timetoSleep = 1; // minutes
unsigned long sleepTime = 15; // minutes
unsigned long timeNow;
int countThing = 0;
int GPIO_pulse = 2; // Arduino = D2
float rpm, rps; // frequencies
float radius = 0.1; // meters - measure of the lenght of each the anemometer wing
float velocity_kmh; // km/h
float velocity_ms; //m/s
float omega = 0; // rad/s
float calibration_value = 2.0;
void setup() {
Serial.begin(9600);
dataserial.begin(9600);
pinMode(GPIO_pulse, INPUT_PULLUP);
digitalWrite(GPIO_pulse, LOW);
detachInterrupt(digitalPinToInterrupt(GPIO_pulse)); // force to initiate Interrupt on zero
attachInterrupt(digitalPinToInterrupt(GPIO_pulse), rpm_anemometer, RISING); //Initialize the intterrupt pin
rpmcount = 0;
rpm = 0;
timeold = 0;
timeNow = 0;
}
void loop()
{
bacaarahangin();
//Measure RPM
if ((millis() - timeold) >= timemeasure * 1000)
{
//countThing++;
detachInterrupt(digitalPinToInterrupt(GPIO_pulse)); // Disable interrupt when calculating
rps = float(rpmcount) / float(timemeasure); // rotations per second
rpm = 60 * rps; // rotations per minute
omega = 2 * PI * rps; // rad/s
velocity_ms = omega * radius * calibration_value; // m/s
Monitoring Berat dan Tinggi Badan Hasilnya bisa diprint
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mengukur berat dan tinggi badan secara langsung dengan Arduino dan sensor jarak HC-SRF04 dengan sensor berat menggunakan loadcell. untuk lebih jelasnya berikut adalah koding dan skemanya.
1. Skema
2. Program Arduino IDE
#include <Wire.h>
#include "HX711.h"
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NO_ACK);
#include <SoftwareSerial.h>
SoftwareSerial Thermal(2, 3);
// HX711.DOUT - pin #6
// HX711.PD_SCK - pin #7
#define trigPin 4
#define echoPin 5
HX711 scale(6, 7);
int btprint = 12;
int btprintx;
long duration, distance;
float tera = 0;
int berat;
float fix;
int x;
char tmp_string1[8];
char tmp_string2[8];
int zero=0;
int heatTime = 80;
int heatInterval = 255;
char printDensity = 15;
char printBreakTime = 15;
void draw(void) {
itoa(distance, tmp_string1, 8);
itoa(berat, tmp_string2, 8);
u8g.setFont(u8g_font_unifont);
u8g.drawStr(5, 25, "S= ");
u8g.drawStr(30, 25, tmp_string1);
u8g.drawStr(5, 40, "W= ");
u8g.drawStr(30, 40, tmp_string2);
}
void initPrinter()
{
//Modify the print speed and heat
Thermal.write(27);
Thermal.write(55);
Thermal.write(7); //Default 64 dots = 8*('7'+1)
Thermal.write(heatTime); //Default 80 or 800us
Thermal.write(heatInterval); //Default 2 or 20us
//Modify the print density and timeout
Thermal.write(18);
Thermal.write(35);
int printSetting = (printDensity<<4) | printBreakTime;
Thermal.write(printSetting); //Combination of printDensity and printBreakTime
}
void setup() {
Wire.begin();
Serial.begin(9600);
Thermal.begin(9600); // to write to our new printer
initPrinter();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(btprint, INPUT_PULLUP);
scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details
Kendali 8 Lampu via Blynk 2.0 Wemos D1 Mini ESP8266
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mengendalikan 8 buah lampu secara online dengan menggunakan software Blynk 2.0, alat ini juga bisa dikendalikan menggunakan handphone secara jarak jauh. untuk lebih jelasnya berikut adalah komponen dan kodingnya.
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang dapat mengendalikan 8 buah pompa untuk air mancur, selain itu alat ini juga terdapat 3 buah variasi yang bisa disetting sesuai keinginan. untuk lebih jelasnya berikut adalah koding dan skemanya.
TIMER BALAPAN TAMIYA 3 JALUR LINE PENAMPIL P10 DAN FITUR LASTLAP
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang menggunakan sensor switch untuk mendeteksi mobil tamiya yang lewat, alat ini juga terdapat fitur lastlap jadi ketika ada tamiya keluar jalur maka tombol lastlap bisa ditekan. untuk lebih jelasnya berikut adalah koding dan skemanya.
1. skema
2. Program Arduino IDE Versi 1
#include <Wire.h>
#include <SPI.h> //SPI.h must be included as DMD is written by SPI (the IDE complains otherwise)
#include <DMD.h> //Library DMD yang menyediakan fungsi penampilan teks, gambar dsb