Translate

Monitor Tinggi dan Berat Badan Interface Python IDE

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