fork(2) download
  1. //Import library dan deklarasi program.
  2. #include <SPI.h>
  3. #include <Ethernet.h>
  4. #include <PubSubClient.h>
  5.  
  6. // Settingan network(IP Address).
  7. byte mac[] = { 0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xED };
  8. byte ip[] = { 192, 168, 100, 2 };
  9. byte dns[] = {8,8,8,8};
  10. byte gateway[] = { 192, 168, 100, 1 };
  11.  
  12. char pubschar [20];
  13. char message_buff[250];
  14. char message_buff_call[200];
  15. int ledPin = 13;
  16. EthernetClient ethClient;
  17.  
  18. // Fungsi ini yang akan dipanggil oleh MQTT jika menerima data
  19. // Pesan yang dikirim melalui MQTT tersimpan pada payload
  20. // Oleh karena itupayload lah yang akan menampung perintah
  21. // untuk device tersebut
  22.  
  23. void callback(char* topic, byte* payload, unsigned int length)
  24. {
  25. int i = 0; for(i=0; i<length; i++)
  26. {
  27. message_buff_call[i] = payload[i];
  28. }
  29. message_buff_call[i] = '\0';
  30. String msgString = String(message_buff_call);
  31. Serial.println(msgString);
  32.  
  33. if(msgString.equals("on"))
  34. {
  35. Serial.println("ON");
  36. digitalWrite(ledPin,HIGH);
  37. }
  38. if(msgString.equals("off"))
  39. {
  40. Serial.println("OFF");
  41. digitalWrite(ledPin,LOW);
  42. }
  43. }
  44.  
  45. // Tambahkan PubSubClient object
  46. PubSubClient client("geeknesia.com", 1883, callback, ethClient);
  47.  
  48. //Dibagian ini adalah bagian setup pada program, setup baud rate
  49. // serial,setupEthernet,atau menambahkan serial print debugging
  50. // program.
  51.  
  52. void setup() {
  53. // reset network
  54. system("ifdown eth0");
  55. system("ifup eth0");
  56.  
  57. // wait for accessing sensor
  58. delay(2000);
  59. Serial.begin(9600);
  60.  
  61. // Koneksi DHCP
  62. if (Ethernet.begin(mac) != 1) {
  63. // Jika gagal, maka koneksi manual
  64. Ethernet.begin(mac, ip, dns, gateway);
  65. }
  66.  
  67. Serial.print("My IP address: ");
  68. Serial.println(Ethernet.localIP());
  69. pinMode(ledPin,OUTPUT);
  70. digitalWrite(ledPin,LOW);
  71. }
  72.  
  73. // Jika mqtt client belum terkoneksi maka harus menjalankan fungsi
  74. // connect dengan parameter device id yang ada pada detail device
  75. // dan melakukan subscribe pada topic khusus untuk menerima pesan
  76. // perintah untuk device tersebut
  77. // perintah client.loop digunakan untuk memeriksa koneksi mqtt secara
  78. // berkala dan mengubah return value dari fungsi client.connected
  79.  
  80. void loop() {
  81. if (!client.connected())
  82. {
  83. client.connect("DEVICE-ID");
  84. client.subscribe("PUBLISHED TOPIC");
  85. }
  86. client.loop();
  87. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:2:10: fatal error: 'SPI.h' file not found
#include <SPI.h>
         ^
1 error generated.
stdout
Standard output is empty