NHNOTES

iniSampahPy2v3

Aug 3rd, 2017
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.64 KB | None | 0 0
  1. #!PRoject SmartTrash
  2. import RPi.GPIO as GPIO
  3. #from tkinter import *
  4. #import time
  5. import os, glob, time, datetime, socket  
  6. from datetime import datetime
  7. import sys
  8. from hx711 import HX711
  9.  
  10.  
  11. GPIO.setmode(GPIO.BCM)
  12.  
  13. trigger_pin = 18
  14. echo_pin = 23
  15.  
  16. led1_pin = 20 #Merah
  17. led2_pin = 12
  18. Status1 = "Empty"
  19. Status2 = "Isi"
  20. Status3 = "Full"
  21. Stats = "Unavailable"
  22. CSVSplitter = ","
  23. a_pin = 19
  24. b_pin = 26
  25.  
  26. DT = 21
  27. SCK = 16
  28.  
  29. #------------------------New Updates------------------
  30. hx = HX711(21, 16)
  31. hx.set_reading_format("LSB", "MSB")
  32. hx.set_reference_unit(322)
  33.  
  34. hx.reset()
  35. hx.tare()
  36. #------------------------___________------------------
  37.  
  38. GPIO.setup(led1_pin, GPIO.OUT)
  39. GPIO.output(led1_pin, False)
  40.  
  41. GPIO.setup(led2_pin, GPIO.OUT)
  42. GPIO.output(led2_pin, False)
  43.  
  44. GPIO.setup(trigger_pin, GPIO.OUT)
  45. GPIO.setup(echo_pin, GPIO.IN)
  46.  
  47. GPIO.setup(SCK, GPIO.OUT)
  48.  
  49. diameter_tong = 50; #50cm
  50.  
  51. #pengambilan waktu
  52. d = datetime.now()
  53.  
  54. UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
  55.  
  56. #addr = ("localhost",5556)
  57. addr = ("192.168.0.101",5556)
  58.  
  59.  
  60. #------------------------Start Simulasi LoadCell------------------
  61.  
  62. def readCount():
  63.   Count = max(0, int(hx.get_weight(21)))
  64.  
  65.   hx.power_down()
  66.   hx.power_up()
  67.   time.sleep(0.5)
  68.  
  69.   return Count
  70. #----------------------------END SIMULASI-------------------------
  71.  
  72. def send_trigger_pulse():
  73.     GPIO.output(trigger_pin, True)
  74.     time.sleep(0.0001)
  75.     GPIO.output(trigger_pin, False)
  76.  
  77. def wait_for_echo(value, timeout):
  78.     count = timeout
  79.     while GPIO.input(echo_pin) != value and count > 0:
  80.         count = count - 1
  81.  
  82. def get_distance():
  83.     send_trigger_pulse()
  84.     wait_for_echo(True, 10000)
  85.     start = time.time()
  86.     wait_for_echo(False, 10000)
  87.     finish = time.time()
  88.     pulse_len = finish - start
  89.     distance_cm = pulse_len / 0.000058
  90.     return (distance_cm)
  91.  
  92.  
  93. def cekStatus():
  94.     Stats = "Unavailable"
  95.    
  96.     while (get_distance() < 7):
  97.         time.sleep(2)
  98.         if (get_distance()<7):#print(Status3)
  99.            Stats = Status3
  100.            return Stats
  101.  
  102.     if (get_distance() <= diameter_tong):
  103.             #print(Status2)
  104.             Stats = Status2
  105.                
  106.             return Stats
  107.        
  108.     elif (get_distance() > diameter_tong):
  109.             #print(Status1)
  110.             Stats = Status1
  111.                
  112.             return Stats
  113.     return Stats
  114.    
  115.  
  116.    
  117. def display():
  118.     waktu = "{:%H:%M:%S %d-%m-%Y}".format(d)
  119.     StatusTerkini = cekStatus()
  120.  
  121.     nilai_berat = readCount()
  122.     #print("Nilai Berat : ",nilai_berat)
  123.     berat = str(nilai_berat)
  124.    
  125.     if (cekStatus() == Status3):
  126.         print "Status : ",cekStatus(),", Nilai : ",get_distance(),", Waktu : ",waktu, ", Berat : ",nilai_berat, "gr"
  127.         UDPSock.sendto(("kel8"+ CSVSplitter + StatusTerkini + CSVSplitter + berat),addr)
  128.         GPIO.output(led1_pin, False)
  129.         GPIO.output(led2_pin, True)
  130.  
  131.     else:
  132.         GPIO.output(led1_pin, True)
  133.         GPIO.output(led2_pin, False)
  134.  
  135.        
  136.     nilai_str = "{:.2f}".format(get_distance())
  137.     nilai_berat_str = str(nilai_berat)
  138.    
  139.     f = open('sampah.log', 'a')
  140.     #f.write('Nilai : ',woco_nilai, 'Status: ',StatusIdle)
  141.     f.write('Status : ')
  142.     f.write(StatusTerkini)
  143.     f.write(' , ')
  144.        
  145.     f.write('Nilai : ')
  146.     f.write(nilai_str)
  147.     f.write(' , ')
  148.      
  149.     f.write('Berat : ')
  150.     f.write(nilai_berat_str)
  151.     f.write(' , ')
  152.  
  153.  
  154.     f.write('Waktu : ')
  155.     f.write(waktu)
  156.     f.write('\n')
  157.     f.close()
  158.    
  159.    
  160.  
  161. while True:
  162.     #print("cm=%f" % get_distance())
  163.     #cekStatus()
  164.     display()
  165.     #time.sleep(1)
Advertisement
Add Comment
Please, Sign In to add comment