{"id":764,"date":"2014-12-22T07:55:33","date_gmt":"2014-12-22T07:55:33","guid":{"rendered":"http:\/\/blog.moramcnt.com\/?p=764"},"modified":"2014-12-29T02:22:57","modified_gmt":"2014-12-29T02:22:57","slug":"%ec%95%84%eb%91%90%ec%9d%b4%eb%85%b8%ec%99%80-%ed%91%b8%ec%8b%9cmqtt","status":"publish","type":"post","link":"http:\/\/blog.moramcnt.com\/?p=764","title":{"rendered":"\uc544\ub450\uc774\ub178\uc640 \ud478\uc2dc(MQTT)"},"content":{"rendered":"<p>1. \uc544\ub450\uc774\ub178\uc5d0\uc11c \ud478\uc2dc\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c MQTT \ud504\ub85c\ud1a0\ucf5c\uc744 \uad6c\ud604\ud55c \ud074\ub77c\uc774\uc5b8\ud2b8\ub97c \ub2e4\uc6b4\ubc1b\ub294\ub2e4.<br \/>\n   &#8211; https:\/\/github.com\/knolleary\/pubsubclient<\/p>\n<p>2. pubsubclient \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c Import\ubc1b\uace0 \uc544\ub798\uc640 \uac19\uc774 \uad6c\ud604\ud558\uba74 \ub41c\ub2e4.<\/p>\n<pre>\r\n#include \"TemptClient.h\"\r\n#include <WiFi.h>\r\n#include <PubSubClient.h>\r\n\r\n\r\n\r\nvoid messageArrived(char* topic, byte* payload, unsigned int uIntLength);\r\n\r\nPubSubClient gClsMqttClient(gpChrServer, 1883, messageArrived, gClsWfClient);\r\n\r\nvoid messageArrived(char* topic, byte* payload, unsigned int uIntLength)\r\n{\r\n\tint intIndex = 0;\r\n\tchar pChrBuffer[uIntLength + 1];\r\n\tfor (intIndex = 0; intIndex < uIntLength; intIndex++)\r\n\t{\r\n\t    pChrBuffer[intIndex] = payload[intIndex];\r\n\t}\r\n\tpChrBuffer[intIndex] = '\\0';\r\n\r\n\tString strPayload = String(pChrBuffer);\r\n\tSerial.print(\"uIntLength:\");\r\n\tSerial.println(uIntLength);\r\n\r\n\tSerial.print(\"strPayload:\");\r\n\tSerial.println(strPayload);\r\n}\r\n\r\nvoid getMacAddress(char * pChrMacAddress)\r\n{\r\n\tbyte bytMacAddr[6];\r\n\tWiFi.macAddress(bytMacAddr);\r\n\tsnprintf(pChrMacAddress, MAC_ADDRESS_LENGTH+1, \"%02X%02X%02X%02X%02X%02X\", bytMacAddr[0], bytMacAddr[1], bytMacAddr[2], bytMacAddr[3], bytMacAddr[4], bytMacAddr[5]);\r\n}\r\n\r\n\r\nvoid setup()\r\n{\r\n\tchar pChrClientId[MAC_ADDRESS_LENGTH + 1];\r\n\tchar pChrTopic[TOPIC_LENGTH + 1];\r\n\tSerial.begin(9600);\r\n\r\n\tif (WiFi.status() == WL_NO_SHIELD)\r\n\t{\r\n\t\tSerial.println(\"WiFi shield not present\");\r\n\t\twhile (true);\r\n\t}\r\n\r\n\tString strFwVersion = WiFi.firmwareVersion();\r\n\tSerial.print(\"FirmWare:\");\r\n\tSerial.println(strFwVersion);\r\n\tif (strFwVersion != \"1.1.0\" ) Serial.println(\"Please upgrade the firmware\");\r\n\r\n    \/\/ \uc640\uc774\ud30c\uc774 \ub124\ud2b8\uc6cc\ud06c \uc5f0\uacb0 \uc2dc\ub3c4\r\n\twhile (gIntWiFiStatus != WL_CONNECTED)\r\n    {\r\n        Serial.print(\"Attempting to connect to SSID: \");\r\n        Serial.println(gpChrSsid);\r\n        gIntWiFiStatus = WiFi.begin(gpChrSsid, gpChrPasswd);\r\n        delay(1000);\r\n    }\r\n\r\n\tgetMacAddress(pChrClientId);\r\n\r\n\tif (gClsMqttClient.connect(pChrClientId))\r\n\t{\r\n\t\tsprintf(pChrTopic, \"arduino\/%s\", pChrClientId);\r\n                \/\/ \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ubc1b\uc744\uc218 \uc788\ub3c4\ub85d \ud1a0\ud53d\uc744 \uad6c\ub3c5\ud55c\ub2e4.\r\n\t\tgClsMqttClient.subscribe(pChrTopic);\r\n\r\n                \/\/ \uba54\uc2dc\uc9c0 \ud37c\ube14\ub9ac\uc2dc(\uc1a1\uc2e0)\r\n\t\tgClsMqttClient.publish(\"arduino\/99B8020EC478\", \"{'test1':200,'test2':'{babo:xxxxxx,yahoo:bbbbb}'}\");\r\n\t}\r\n}\r\n<\/pre>\n<p>3. \uac1c\ubc1c\uc2dc \uc720\uc758\uc0ac\ud56d<br \/>\n   \ud37c\ube14\ub9ac\uc26c\ud560\uc218 \uc788\ub294 \ub370\uc774\ud130\uc758 \ud06c\uae30\uac00 \uc791\uae30 \ub54c\ubb38\uc5d0 \uc2e4\uc81c \uc0ac\uc6a9\ud560\ub54c\ub294 JSON\ub610\ub294 XML\ud615\ud0dc\ub85c \uc804\uc1a1\ud558\ub294\uac83\uc740 \uc774\ub86d\uc9c0 \uc54a\uc740\uac83 \uac19\ub2e4.<br \/>\n   \ub610\ud55c \uc704 \uc18c\uc2a4\uc0c1\uc5d0 \uc788\ub294 messageArrived\uc640 \uac19\uc740 CallBack\ud568\uc218\ub97c \ud1b5\ud574 \ubc1b\uc744\uc218 \uc788\ub294 \ub370\uc774\ud130\uc758 \uae38\uc774\ub3c4 \uc791\uc73c\ubbc0\ub85c \ud478\uc2dc\uc11c\ubc84\uc5d0\uc11c<br \/>\n   \uae34 \ub370\uc774\ud130\ub97c \uc804\uc1a1\ud55c\ub2e4\uba74 \ubb38\uc81c\uac00 \ub420\uac83\uc774\ub2e4. (\uc989, \ud070 \ub370\uc774\ud130\ub294 \uc218\uc2e0 \ubabb\ud560 \uac00\ub2a5\uc131\uc774 \ub9ce\uc74c)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. \uc544\ub450\uc774\ub178\uc5d0\uc11c \ud478\uc2dc\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c MQTT \ud504\ub85c\ud1a0\ucf5c\uc744 \uad6c\ud604\ud55c \ud074\ub77c\uc774\uc5b8\ud2b8\ub97c \ub2e4\uc6b4\ubc1b\ub294\ub2e4. &#8211; https:\/\/github.com\/knolleary\/pubsubclient 2. pubsubclient \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c Import\ubc1b\uace0 \uc544\ub798\uc640 \uac19\uc774 \uad6c\ud604\ud558\uba74 \ub41c\ub2e4. #include &#8220;TemptClient.h&#8221; #include #include void messageArrived(char* topic, byte* payload, unsigned int uIntLength); PubSubClient gClsMqttClient(gpChrServer, 1883, messageArrived, gClsWfClient); void messageArrived(char* topic, byte* payload, unsigned int uIntLength) { int intIndex = 0; char pChrBuffer[uIntLength + 1]; for [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[2,35],"tags":[39,66,41,67],"class_list":["post-764","post","type-post","status-publish","format-standard","hentry","category-2","category-iot","tag-arduino","tag-mqtt","tag-41","tag-67"],"_links":{"self":[{"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/posts\/764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=764"}],"version-history":[{"count":4,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/posts\/764\/revisions"}],"predecessor-version":[{"id":786,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=\/wp\/v2\/posts\/764\/revisions\/786"}],"wp:attachment":[{"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=764"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.moramcnt.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}