this code for automatic weighbridges - core.ac.uk · appendix this code for automatic weighbridges...
TRANSCRIPT
APPENDIX
This code for automatic weighbridges :
1. #include <NewPing.h>2. #include <Servo.h>3. #include <SoftwareSerial.h>4. #define TRIGGER_PIN 375. #define ECHO_PIN 366. #define TRIGGER_PIN2 337. #define ECHO_PIN2 328. #define MAX_DISTANCE 2009. SoftwareSerial SIM900(0,1); //(TX,RX) GSM Shield10. int PowerKeySIM900=9; // Power Pin GSM shield11. #include "HX711.h"12. #define calibration_factor 7050.0 //This value is
obtained using the SparkFun_HX711_Calibration sketch13. #define DOUT 214. #define CLK 315. float read_gram;16. String Stringone;17. String Stringthree;18. HX711 scale(DOUT, CLK);19. Servo servoA;20. Servo servoB;21.22. NewPing ultrasonic1(TRIGGER_PIN, ECHO_PIN,
MAX_DISTANCE);23. NewPing ultrasonic2(TRIGGER_PIN2, ECHO_PIN2,
MAX_DISTANCE);24.25. const int buttonPin = 40;26. const int buttonPin2 = 53;27. const int buttonPin3 = 52;28. int ledpin = 8;29. int ledpin2 = 9;30. int ledpin3 = 21;31. int buttonState = 0;32. int buttonState2 = 0;33. int buttonState3 = 0;34.35. void setup() 36. {37. pinMode(PowerKeySIM900,OUTPUT);38. Serial.begin (9600);39. pinMode(buttonPin2,INPUT);40. pinMode(ledpin2, OUTPUT);41. pinMode(buttonPin,INPUT);42. pinMode(ledpin, OUTPUT);43.
A
44. Serial.println("HX711 scale demo");45.46. scale.set_scale(calibration_factor); //This value is
obtained by using the SparkFun_HX711_Calibration sketch47. scale.tare(); //Assuming there is no weight on the
scale at start up, reset the scale to 048.49. Serial.println("Readings:");50. servoA.attach(45);51. servoB.attach(46);52. }53.54. void SIM900power() // function memiliki fungsi sama
seperti memencet tombol power pada shield55. {56. digitalWrite(PowerKeySIM900, HIGH);57. delay(1000);58. digitalWrite(PowerKeySIM900, LOW);59. delay(5000);60. }61.62. void loop() 63. {64. /* 65. gerbang 1 buka ketika :66. ultrasonik 1 mendeteksi ada mobil, ultrasonik 2
tidak mendeteksi mobil67. gerbang 1 tutup ketika :68. ultrasonik 1 dan ultrasonik 2 tidak mendeteksi apa269. ultrasonik 1 dan ultrasonik 2 mendeteksi ada mobil 70. */71. read_gram = scale.get_units();72. Serial.print("Reading: ");73. Serial.print(read_gram, 1); //scale.get_units()
returns a float74. Serial.print(" gram"); //You can change this to kg but
you'll need to refactor the calibration_factor75. delay(500);76. Serial.println();77. Stringone="field2=";78. Stringthree = Stringone+ read_gram;79.80. delay(50);81. int US1 = ultrasonic1.ping_cm();82. int US2 = ultrasonic2.ping_cm();83. Serial.print("Hasil Sensor 1 :");84. Serial.print(US1);85. Serial.print("cm | ");86. Serial.print("Hasil Sensor 2 :");87. Serial.print(US2);88. Serial.println("cm");
B
89.90. if(US1 <= 10 && US2 >=10)91. {92. servoA.write (90); //gerbang buka93. Serial.println("gerbang buka");94. delay(5);95. }96. else if (US1 >=10 && US2 >=10) 97. {98. servoA.write(0); //gerbang tutup99. Serial.println("gerbang tutup");100. delay(5);101. }102. else if (US1 <=10 && US2 <=10)103. {104. servoA.write(0); //gerbang tutup105. Serial.print("gerbang tutup");106. delay(5);107. }108. 109. 110. 111. // kategori A112. buttonState = digitalRead(buttonPin);113. if( buttonState == HIGH) 114. { 115. if (scale.get_units() >= 10) 116. {117. servoB.write(180);118. delay(500);119. 120. digitalWrite(ledpin, HIGH);121. digitalWrite(ledpin2, LOW);122. digitalWrite(ledpin3, LOW);123. Serial.println("melebihi muatan");124. delay(500);125. Serial.println("AT+CGATT=1");//konfig apn126. delay(1000);127. Serial.println("AT+CSTT=telkomsel,\"wap\",\"wap123\""
);//Setting koneksi APN128. delay(1000);129. Serial.println("AT+CIICR");130. delay(1000);131. 132. Serial.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");
//Setting koneksi GPRS133. delay(1000);134. 135. Serial.println("AT+SAPBR=3,1,\"APN\",\"telkomsel\"")
;//setting APN kartu 136. delay(1000);
C
137. Serial.println("AT+SAPBR =1,1"); // mendapatkan IPlocal
138. delay(1000);139. Serial.println("AT+SAPBR =1,1");140. delay(1000);141. Serial.println("AT+HTTPINIT"); // inisialisasi HTTP
request142. delay(2000);143. Serial.println("AT+HTTPPARA=\"URL\",\"api.thingspeak.c
om/update?api_key=S4AZ93KHE0KPWEMD&"+ Stringthree + " \"");144. delay(1000);145. Serial.println("\"");146. delay(4500);147. Serial.println("AT+HTTPACTION=0");//mengirim request148. delay(10000);//delay mengirim data (request HTTP)149. Serial.println("AT+HTTPREAD");// membaca data dari
htpp yang diakses150. delay(300);151. Serial.println("");152. delay(100);153. }154.155. else if (scale.get_units() <= 10) 156. {157. servoB.write(90);158. delay(500);159. digitalWrite(ledpin, LOW);160. digitalWrite(ledpin2, LOW);161. digitalWrite(ledpin3, LOW);162. Serial.println("buka");163. } 164. }165. // kategori B166. buttonState2 = digitalRead(buttonPin2);167. if( buttonState2 == HIGH) 168. { 169. if (scale.get_units() >= 20) 170. {171. servoB.write(180);172. delay(500);173. 174. digitalWrite(ledpin2, HIGH);175. digitalWrite(ledpin, LOW);176. digitalWrite(ledpin3, LOW);177. 178. Serial.println("melebihi muatan");179. delay(500);180. Serial.println("AT+CGATT=1");//konfig apn181. delay(1000);182. Serial.println("AT+CSTT=telkomsel,\"wap\",\"wap123\""
);//Setting koneksi APN
D
183. delay(1000);184. Serial.println("AT+CIICR");185. delay(1000);186. Serial.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");/
/Setting koneksi GPRS187. delay(1000);188. Serial.println("AT+SAPBR=3,1,\"APN\",\"telkomsel\"")
;//setting APN kartu 189. delay(1000); 190. Serial.println("AT+SAPBR =1,1"); // mendapatkan IP
local191. delay(1000);192. Serial.println("AT+SAPBR =1,1");193. delay(1000);194. Serial.println("AT+HTTPINIT"); // inisialisasi HTTP
request195. delay(2000);196. Serial.println("AT+HTTPPARA=\"URL\",\"api.thingspeak.c
om/update?api_key=S4AZ93KHE0KPWEMD&"+ Stringthree + " \"");197. delay(1000);198. 199. Serial.println("\"");200. delay(4500);201. Serial.println("AT+HTTPACTION=0");//mengirim request202. delay(10000);//delay mengirim data (request HTTP)203. Serial.println("AT+HTTPREAD");// membaca data dari
htpp yang diakses204. delay(300);205. Serial.println("");206. delay(100);207. }208.209. else if (scale.get_units() <= 20) 210. {211. servoB.write(90);212. delay(500);213. digitalWrite(ledpin2, LOW);214. digitalWrite(ledpin, LOW);215. digitalWrite(ledpin3, LOW);216. 217. Serial.println("buka");218. } 219. }220. // kategori C221. buttonState3 = digitalRead(buttonPin3);222. if( buttonState3 == HIGH) { 223. if (scale.get_units() >= 30) {224. servoB.write(180);225. delay(500);226. digitalWrite(ledpin3, HIGH);227. digitalWrite(ledpin2, LOW);
E
228. digitalWrite(ledpin, LOW);229. Serial.println("melebihi muatan");230. Serial.println("AT+CGATT=1");//konfig apn231. delay(1000);232. Serial.println("AT+CSTT=telkomsel,\"wap\",\"wap123\""
);//Setting koneksi APN233. delay(1000);234. Serial.println("AT+CIICR");235. delay(1000);236. Serial.println("AT+SAPBR=3,1,\"Contype\",\"GPRS\"");
//Setting koneksi GPRS237. delay(1000);238. Serial.println("AT+SAPBR=3,1,\"APN\",\"telkomsel\"")
;//setting APN kartu 239. delay(1000); 240. Serial.println("AT+SAPBR =1,1"); // mendapatkan IP
local241. delay(1000);242. Serial.println("AT+SAPBR =1,1");243. delay(1000);244. Serial.println("AT+HTTPINIT"); // inisialisasi HTTP
request245. delay(2000);246. Serial.println("AT+HTTPPARA=\"URL\",\"api.thingspeak.c
om/update?api_key=S4AZ93KHE0KPWEMD&"+ Stringthree + " \"");247. delay(1000);248. Serial.println("\"");249. delay(4500);250. Serial.println("AT+HTTPACTION=0");//mengirim request251. delay(10000);//delay mengirim data (request HTTP)252. Serial.println("AT+HTTPREAD");// membaca data dari
htpp yang diakses253. delay(300);254. Serial.println("");255. delay(100);256. }257. //kategori C258. else if (scale.get_units() <= 20) {259. servoB.write(90);260. delay(500);261. digitalWrite(ledpin2, LOW);262. digitalWrite(ledpin3, LOW);263. digitalWrite(ledpin, LOW);264. Serial.println("buka");265. }266. }267. }
F