{"id":961,"date":"2022-04-16T09:17:00","date_gmt":"2022-04-16T01:17:00","guid":{"rendered":"http:\/\/hower.forwebs.net\/robot\/?p=961"},"modified":"2022-04-18T11:27:59","modified_gmt":"2022-04-18T03:27:59","slug":"%e4%b8%8b%e6%9c%9f%e7%ac%ac7%e5%a0%82-%e7%89%a9%e8%81%af%e7%b6%b2iot-%e7%b6%b2%e8%b7%af%e6%99%82%e9%96%93","status":"publish","type":"post","link":"https:\/\/hower.forwebs.net\/robot\/archives\/961","title":{"rendered":"\u4e0b\u671f\u7b2c7\u5802-\u7269\u806f\u7db2IOT-\u7db2\u8def\u6642\u9593"},"content":{"rendered":"\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-15.png\" alt=\"\" class=\"wp-image-985\" width=\"353\" height=\"222\" srcset=\"https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-15.png 705w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-15-300x189.png 300w\" sizes=\"(max-width: 353px) 100vw, 353px\" \/><\/figure>\n\n\n\n<p>\u524d\u8a00<\/p>\n\n\n\n<p>\u4eca\u5929\u6703\u4ecb\u7d39\u7db2\u8def\u6821\u6b63\u6642\u9593\u7684\u65b9\u5f0f\uff0c<br>\u8b93\u4f60\u7684\u958b\u767c\u677f\u4e00\u76f4\u4e0d\u65b7\u81ea\u52d5\u6821\u6b63\u6642\u9593\uff0c\u6e96\u78ba\u7387\u5728\u6beb\u79d2\u7b49\u7d1a\u3002<\/p>\n\n\n\n<p>\u6bd4\u8d77\u4e00\u822c\u5bb6\u88e1\u7684\u6642\u9418\uff0c\u4f60\u7684\u958b\u767c\u677f\u6293\u5230\u7684\u6642\u9593\u5c07\u6703 \u2199<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-14-1024x705.png\" alt=\"\" class=\"wp-image-972\" width=\"256\" height=\"176\" srcset=\"https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-14-1024x705.png 1024w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-14-300x207.png 300w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-14-768x529.png 768w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-14.png 1041w\" sizes=\"(max-width: 256px) 100vw, 256px\" \/><\/figure>\n\n\n\n<p>\u5f88\u591a\u7684\u6a5f\u5668\u90fd\u9700\u8981\u6293\u6642\u9593\uff0c\u5c24\u5176\u662f\u8003\u52e4\u7cfb\u7d71\uff0c<br>\u4eca\u5929\u7684\u65b9\u6cd5\u8b93\u4f60\u7684\u6a5f\u5668&#8221;\u6c38\u4e0d\u904e\u6642&#8221;<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>CH340\u9a45\u52d5<\/p>\n\n\n\n<p>\u63d2\u4e0aESP8266\u4e3b\u677f<\/p>\n\n\n\n<p>\u5230\u88dd\u7f6e\u7ba1\u7406\u54e1\u770bPORT\u5728\u5e7e\u865f<\/p>\n\n\n\n<p>\u65b0\u589e\u7db2\u5740\uff1ahttp:\/\/arduino.esp8266.com\/stable\/package_esp8266com_index.json<\/p>\n\n\n\n<p>\u9078\u64c7\u4e3b\u677f<\/p>\n\n\n\n<p>\u9078\u64c7PORT<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u4e0b\u8f09\u51fd\u5f0f<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/taranais\/NTPClient\">https:\/\/github.com\/taranais\/NTPClient<\/a><\/p>\n\n\n\n<p>\u653e\u5728\u4e0b\u9762\u4f4d\u7f6e<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" width=\"319\" height=\"66\" src=\"http:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-12.png\" alt=\"\" class=\"wp-image-964\" srcset=\"https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-12.png 319w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-12-300x62.png 300w\" sizes=\"(max-width: 319px) 100vw, 319px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u6bcf\u9031\u4e00\u5e38\u8b58&#8212;GitHub<\/p>\n\n\n\n<p><a href=\"https:\/\/zh.wikipedia.org\/wiki\/GitHub\">https:\/\/zh.wikipedia.org\/wiki\/GitHub<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u7db2\u8def\u6642\u9593<br>\u8a18\u5f97\u52a0\u4e0aSSID\u8207\u5bc6\u78bc<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;ESP8266WiFi.h&gt;\n#include &lt;NTPClient.h&gt;\n#include &lt;WiFiUdp.h&gt;\n\n\/\/ \u5132\u5b58\u65e5\u671f\u53ca\u6642\u9593\u7684\u8b8a\u6578\nString formattedDate;\nString dayStamp;\nString timeStamp;\n\n\/\/ \u8a2d\u5b9a\u7121\u7dda\u57fa\u5730\u53f0SSID\u8ddf\u5bc6\u78bc\nconst char* ssid     = \"\";\nconst char* password = \"\";\n\nWiFiUDP ntpUDP;\nNTPClient timeClient(ntpUDP);\n\n\n\n\nvoid setup() {\n\n  Serial.begin(115200);\n\n  \/\/ \u9023\u63a5\u7121\u7dda\u57fa\u5730\u53f0\n  WiFi.begin(ssid, password);\n  Serial.print(\"\\n Working to connect\");\n\n  \/\/ \u7b49\u5f85\u9023\u7dda\uff0c\u4e26\u5f9e Console\u986f\u793a IP\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(\".\");\n  }\n\n  timeClient.begin();\n\n  \/\/ \u8a2d\u5b9a\u6642\u5340 *60\u5206 * 60\u79d2\uff0c\u4f8b\u5982:\n  \/\/ GMT +1 = 3600\n  \/\/ GMT +8 = 28800  \u53f0\u7063\u6642\u5340\n  \/\/ GMT 0 = 0\n  timeClient.setTimeOffset(28800);\n}\n\n\n\n\n\nvoid loop() {\n\n  while(!timeClient.update()) {\n    timeClient.forceUpdate();\n  }\n  \n  \/\/ formattedDate\u51fd\u5f0f\u53d6\u5f97\u7684\u65e5\u671f\u683c\u5f0f\u70ba\uff1a 2018-05-28T16:00:13Z\n  formattedDate = timeClient.getFormattedDate();\n  Serial.println(formattedDate);\n\n  \/\/ \u53d6\u5f97\u65e5\u671f\n  int splitT = formattedDate.indexOf(\"T\");\n  dayStamp = formattedDate.substring(0, splitT);\n  Serial.print(\"DATE: \");\n  Serial.println(dayStamp);\n\n  \/\/ \u53d6\u5f97\u6642\u9593\n  timeStamp = formattedDate.substring(splitT+1, formattedDate.length()-1);\n  Serial.print(\"TIME:\");\n  Serial.println(timeStamp);\n\n  delay(5000);\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u6253\u958bSerial Monitor\uff0c\u6b23\u8cde\u6975\u5ea6\u6e96\u78ba\u7684\u6642\u9593\u5427<\/p>\n\n\n\n<p>(\u901f\u7387 115200)<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>NTP \u5c0f\u77e5\u8b58(\u5f15\u7528\u81ea\u7dad\u57fa\u767e\u79d1)<\/p>\n\n\n\n<p>\u7db2\u8def\u6642\u9593\u5354\u5b9a\uff08\u82f1\u8a9e\uff1aNetwork Time Protocol\uff0c\u7e2e\u5beb\uff1aNTP\uff09\uff0c\u4f4d\u65bcOSI\u6a21\u578b\u7684\u61c9\u7528\u5c64\u3002\u81ea1985\u5e74\u4ee5\u4f86\uff0cNTP\u662f\u76ee\u524d\u4ecd\u5728\u4f7f\u7528\u7684\u6700\u53e4\u8001\u7684\u7db2\u969b\u7db2\u8def\u5354\u5b9a\u4e4b\u4e00\u3002<\/p>\n\n\n\n<p>NTP\u610f\u5716\u5c07\u6642\u9593\u540c\u6b65\u5230\u5e7e\u6beb\u79d2\u7684\u8aa4\u5dee\u5167\u3002<\/p>\n\n\n\n<p>NTP\u901a\u5e38\u53ef\u4ee5\u5728\u516c\u5171\u7db2\u969b\u7db2\u8def\u4fdd\u6301\u5e7e\u5341\u6beb\u79d2\u7684\u8aa4\u5dee\uff0c\u4e26\u4e14\u5728\u7406\u60f3\u7684\u5340\u57df\u7db2\u8def\u74b0\u5883\u4e2d\u53ef\u4ee5\u5be6\u73fe\u8d85\u904e1\u6beb\u79d2\u7684\u7cbe\u5ea6\u3002<\/p>\n\n\n\n<p><a href=\"https:\/\/zh.wikipedia.org\/wiki\/%E7%B6%B2%E8%B7%AF%E6%99%82%E9%96%93%E5%8D%94%E5%AE%9A\">https:\/\/zh.wikipedia.org\/wiki\/%E7%B6%B2%E8%B7%AF%E6%99%82%E9%96%93%E5%8D%94%E5%AE%9A<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"has-vivid-cyan-blue-background-color has-background\">\u7b2c2\u90e8\u5206\uff0c\u52a0\u4e0aLCD1620\u986f\u793a<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<div class=\"video-container\"><iframe loading=\"lazy\" title=\"esp8266\u958b\u767c\u7248\uff0bLCD1620\u9023\u63a5\uff0c\u88fd\u4f5c\u7db2\u8def\u6642\u9418\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/RBLXc1kqjxw?feature=oembed&#038;wmode=opaque\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/div>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"has-pale-pink-background-color has-background\">\u62d4\u4e0b\u958b\u767c\u677f<\/p>\n\n\n\n<p>\u5b89\u88dd\uff2c\uff23\uff24<br>\u6b63\u6975VCC-VIN<br>\u63a5\u5730GND-G<br>\uff33\uff24\uff21 &#8211; GPIO 4(D2)<br>\uff33\uff23\uff2c &#8211; GPIO 5(D1)<\/p>\n\n\n\n<p class=\"has-pale-pink-background-color has-background\">\u63d2\u4e0a\u958b\u767c\u677f\uff0c\u6c92\u53cd\u61c9\u7acb\u523b\u62d4\u4e0b\u4f86<\/p>\n\n\n\n<p>\u9078\u64c7\u4e3b\u677f\u985e\u578b<\/p>\n\n\n\n<p>\u9078\u64c7COM PORT<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>\u982d\u8166\u5c0f\u9ad4\u64cd<\/p>\n\n\n\n<p>\u8acb\u53c3\u8003    http:\/\/hower.forwebs.net\/robot\/archives\/44<\/p>\n\n\n\n<p>\u628a\u6642\u9593\u6253\u9032LCD\u87a2\u5e55\u5427\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-16-1024x604.png\" alt=\"\" class=\"wp-image-997\" width=\"512\" height=\"302\" srcset=\"https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-16-1024x604.png 1024w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-16-300x177.png 300w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-16-768x453.png 768w, https:\/\/hower.forwebs.net\/robot\/wp-content\/uploads\/sites\/2\/2022\/03\/image-16.png 1463w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background\">\u4eca\u65e5\u5c0f\u6311\u6230<\/p>\n\n\n\n<p class=\"has-pale-cyan-blue-background-color has-background\">\u540c\u7d44\u7684\u540c\u5b78\uff0c\u751a\u81f3\u662f\u4e00\u6574\u73ed\u7684\u540c\u5b78\uff0c\u6709\u53ef\u80fd\u8b93LED&#8221;\u540c\u6642&#8221;\u9583\u720d\u55ce?<br>\u5148\u60f3\u597d\u6d41\u7a0b\uff0c\u518d\u8a66\u8a66\u770b\u5beb\u51fa\u7a0b\u5f0f<\/p>\n\n\n\n<p class=\"has-vivid-green-cyan-background-color has-background\">\u5982\u679c\u6709\u5c0f\u7d44\u6210\u529f\uff0c\u518d\u63d0\u4f9b\u7d66\u5168\u73ed\uff0c\u8a66\u8a66\u770b\u5168\u73ed\u540c\u6b65\u9583\u720d<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p class=\"has-pale-pink-background-color has-background\">\u4ee5\u4e0b\u70ba\u4eca\u5929\u7b54\u6848\uff0c\u83ab\u6025\u7206\u96f7\uff0c\u614e\u5165<\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>NTP+LCD \u53c3\u8003\u7b54\u6848<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;ESP8266WiFi.h>\n#include &lt;NTPClient.h>\n#include &lt;WiFiUdp.h>\n#include &lt;LiquidCrystal_PCF8574.h>\n\nLiquidCrystal_PCF8574 lcd(0x27);  \/\/ \u67090x27\u548c0x3F\u5169\u7a2e\n\n\/\/ \u5132\u5b58\u65e5\u671f\u53ca\u6642\u9593\u7684\u8b8a\u6578\nString formattedDate;\nString dayStamp;\nString timeStamp;\n\n\/\/ \u8a2d\u5b9a\u7121\u7dda\u57fa\u5730\u53f0SSID\u8ddf\u5bc6\u78bc\nconst char* ssid     = \"TCGS-Student\";\nconst char* password = \"22205108\";\n\nWiFiUDP ntpUDP;\nNTPClient timeClient(ntpUDP);\n\n\n\n\nvoid setup() {\n\n  lcd.begin(16, 2); \/\/ \u521d\u59cb\u5316LCD\n\n  Serial.begin(115200);\n\n  \/\/ \u9023\u63a5\u7121\u7dda\u57fa\u5730\u53f0\n  WiFi.begin(ssid, password);\n  Serial.print(\"\\n Working to connect\");\n\n  \/\/ \u7b49\u5f85\u9023\u7dda\uff0c\u4e26\u5f9e Console\u986f\u793a IP\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(\".\");\n  }\n\n  timeClient.begin();\n\n  \/\/ \u8a2d\u5b9a\u6642\u5340 *60\u5206 * 60\u79d2\uff0c\u4f8b\u5982:\n  \/\/ GMT +1 = 3600\n  \/\/ GMT +8 = 28800  \u53f0\u7063\u6642\u5340\n  \/\/ GMT 0 = 0\n  timeClient.setTimeOffset(28800);\n}\n\n\n\n\n\nvoid loop() {\n\n  while(!timeClient.update()) {\n    timeClient.forceUpdate();\n  }\n  \n  \/\/ formattedDate\u51fd\u5f0f\u53d6\u5f97\u7684\u65e5\u671f\u683c\u5f0f\u70ba\uff1a 2018-05-28T16:00:13Z\n  formattedDate = timeClient.getFormattedDate();\n  Serial.println(formattedDate);\n\n  \/\/ \u53d6\u5f97\u65e5\u671f\n  int splitT = formattedDate.indexOf(\"T\");\n  dayStamp = formattedDate.substring(0, splitT);\n  Serial.print(\"DATE: \");\n  Serial.println(dayStamp);\n\n  \/\/ \u53d6\u5f97\u6642\u9593\n  timeStamp = formattedDate.substring(splitT+1, formattedDate.length()-1);\n  Serial.print(\"TIME:\");\n  Serial.println(timeStamp);\n\n  lcd.setBacklight(255); \/\/\u4eae\u5ea6\n  lcd.clear();\n  \n  lcd.setCursor(0, 0);  \/\/\u8a2d\u5b9a\u6e38\u6a19\u4f4d\u7f6e (\u5b57,\u884c)\n  lcd.print(dayStamp);\n  \n  lcd.setCursor(0, 1);  \/\/\u8a2d\u5b9a\u6e38\u6a19\u4f4d\u7f6e (\u5b57,\u884c)\n  lcd.print(timeStamp);\n\n  delay(1000);\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u8a00 \u4eca\u5929\u6703\u4ecb\u7d39\u7db2\u8def\u6821\u6b63\u6642\u9593\u7684\u65b9\u5f0f\uff0c\u8b93\u4f60\u7684\u958b\u767c\u677f\u4e00\u76f4\u4e0d\u65b7\u81ea\u52d5\u6821\u6b63\u6642\u9593&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":985,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/posts\/961"}],"collection":[{"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/comments?post=961"}],"version-history":[{"count":37,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/posts\/961\/revisions"}],"predecessor-version":[{"id":1070,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/posts\/961\/revisions\/1070"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/media\/985"}],"wp:attachment":[{"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/media?parent=961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/categories?post=961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hower.forwebs.net\/robot\/wp-json\/wp\/v2\/tags?post=961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}