Anda di halaman 1dari 5

Blynk

Blynk merupakan perangkat plaform Internet of Things yang berfungsi mengontrol perangkat keras,
sensor, menampilkan data, dll.

Komponen utama pada blynk :

1. Blynk App
Merupakan aplikasi yang digunakan untuk antar muka pengguna untuk memudahkan
pembuatan project dan memonitoring data.

2. Blynk Server
Merupakan perangkat yang bertanggung jawab untuk semua komunikasi antara perangkat
keras dengan smartphone.

3. Blynk Library
Merupakan modul yang digunakan untuk mempermudah komunikasi antara server dan
memproses masuk dan keluarnya perintah.

Diagram blynk
Data Yang Dikirim

Pengiriman data dari nodeMCU dilakukan dengan menggunakan fungsi void kirim_data() :

1. void kirim_data() {
2. if (NodeSerial.available() > 0) {
3. daya_standby = NodeSerial.parseFloat();
4. if (NodeSerial.read() == '\n') {
5. if (NodeSerial.available() > 0) {
6. volume_standby = NodeSerial.parseFloat();
7. if (NodeSerial.read() == '\n') {
8. if (daya_standby != 2020 || daya_standby != 3030 || daya_standby !=
1010) {
9. if (volume_standby != 2020 || volume_standby != 3030 ||
volume_standby != 1010) {
10. Serial.println(daya_standby);
11. Serial.println(volume_standby);
12. Serial.println("----- jojo -----");
13. Blynk.virtualWrite(V0, daya_standby);
14. Blynk.virtualWrite(V6, volume_standby);
15. }
16. }
17. }
18. }
19. }
20. }
21. }

Kode sumber diatas merupakan fungsi yang digunakan untuk melakukan pengiriman data. Pada baris
13 dan 14 merupakan perintah untuk pengiriman data. Dimana V0 dan V6 merupakan port yang
dituju, daya_standby dan volume_standby merupakan data yang dikirim bertipe integer.
Diagram Blok
1. void dayaa()
2. {
3. voltage_min = 1023;
4. voltage_max = 0;
5. daya = 0;
6. tot_tegangan = 0;
7. tot_arus = 0;
8. banyak_data = 0;
9. int i, ii;
10. t = tinggi + pengisian;
11. while (tinggi < t)
12. {
13. average = 0;
14. for (i = 0; i < 1000; i++)
15. {
16. average = average + (0.0264 * analogRead(A0) - 13.51);
17. }
18. average = average / 1000;
19. if (average < 0) {
20. average = average * -1;
21. }
22. for (int i = 0; i < 100; i++) {
23. sensor_Value = analogRead(analogInPin);
24. voltageOut = (sensor_Value / 1023) * 5;
25. if (voltageOut > 2.5)
26. {
27. voltage = (voltageOut - 2.5) * exp(5.375);
28. }
29. else if (voltageOut < 2.5)
30. {
31. voltage = ((voltageOut - 2.5) * exp(5.375)) + 226;
32. }
33. if (voltage < voltage_min) {
34. voltage_min = voltage;
35. }
36. if (voltage > voltage_max) {
37. voltage_max = voltage;
38. }
39. }
40. srf();
41. tinggi = tinggitong - distance;
42. energy = (((voltage_max * average) / 1000) / 3600)+energy;
43. tot_daya = voltage_max * average;
44. daya = tot_daya * 0.8; //kalau perlu di kali 0,8
45. banyak_data++;
46. Serial3.print(1010);
47. Serial3.print("\n");
48. Serial3.print(daya);
49. Serial3.print("\n");
50. Serial3.print(tinggi);
51. Serial3.print("\n");
52. Serial.print("Sampel Ke : ");
53. Serial.println(banyak_data);
54. Serial.print("Tinggi : ");
55. Serial.println(tinggi,2
56. );
57. Serial.print("Tegangan : ");
58. Serial.println(voltage_max);
59. Serial.print("Arus (A): ");
60. Serial.println(average, 5);
61. Serial.print("Daya : ");
62. Serial.println(tot_daya,5);
63. Serial.print("Total Energy : ");
64. Serial.println(energy,10);
65. Serial.println(" --- End ----");
66. Serial.print("Total Daya : ");
67. Serial.println(daya,10);
68. Serial.println(" --- End ----");
69. delay(400);
70. }
71. cetakdaya();
72. cetaktinggi();
73. cetakpersen();
74. tot_daya = 0;
75. average = 0;
76. voltage = 0;
77. energy = 0;
78. delay(200);
79. }}
Kode sumber diatas merupakan kode sumber pada arduino untuk perhitungan daya dan pengiriman
data ke nodeMCU untuk diolah. Dapat dilihat pada baris 46 hingga 51 merupakan perintah yang
digunakan untuk mengimkan data variabel daya, tinggi serta pengiriman kode “1010”. Tipe data
untuk daya dan tinggi merupakan float dan untuk kode berupa String.

Anda mungkin juga menyukai