Monitor Tinggi dan Berat Badan Interface Python IDE
Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk monitor berat dan tinggi badan secara real time dan menggunakan interface Python. jadi arduino mengirimkan data ke interface Python kemudian ditampilkan ke interface, untuk lebih jelasnya berikut adalah kodingnya.
1. Koding Arduino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include "HX711.h"
// HX711.DOUT - pin #9
// HX711.PD_SCK - pin #8
#define trigPin 7
#define echoPin 6
int counter = 0; //Variabel penghitung nilai
int aState; //Variabel kondisi
int aLastState; //Variabel kondisi terakhir
HX711 scale(9, 8);
long duration, distance;
float tera = 0;
int berat;
float fix;
int x;
int jarak;
int sp = 30;
int tinggi;
void setup() {
Serial.begin(9600);
lcd.begin();
lcd.clear();
lcd.noCursor();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details
scale.tare(); // reset the scale to 0
lcd.setCursor (0,0);
lcd.print ("LOADING... ");
delay(5000);
lcd.clear();
}
void loop() {
digitalWrite(trigPin, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
jarak = 200 - distance;
berat = scale.get_units(10) * -1;
fix = (berat - 2.1036)/8.978;
if(fix < 0){
fix = 0;
}
lcd.setCursor (0,0);
lcd.print ("W/H= ");
lcd.print (fix);
lcd.print (" / ");
lcd.print (jarak);
lcd.print (" ");
Serial.print(berat);
Serial.print(",");
Serial.println(jarak);
scale.power_down();
delay(100);
scale.power_up();
if (Serial.available() > 0) {
String teststr = Serial.readString();
lcd.setCursor(0,1);
lcd.print(teststr);
}
}
2. Koding Python
import serial.tools.list_ports
ports = list(serial.tools.list_ports.comports())
for p in ports:
print(p)
# exit()
ser = serial.Serial('COM7',9600)
data = ''
old_data = ''
while True:
if ser.in_waiting > 0:
try:
data = ser.readline().decode('ascii').strip()
if data != old_data:
print(f'Data Dari Arduino: {data}')
old_data = data
except:
pass
3. VIDEO ALATNYA

No comments:
Post a Comment