{"id":2907,"date":"2022-04-28T15:42:50","date_gmt":"2022-04-28T07:42:50","guid":{"rendered":"https:\/\/www.block.tw\/blog\/?p=2907"},"modified":"2022-04-28T18:46:41","modified_gmt":"2022-04-28T10:46:41","slug":"esp-12fesp8266-max31855-mqtt-thingspeak","status":"publish","type":"post","link":"https:\/\/www.block.tw\/blog\/esp-12fesp8266-max31855-mqtt-thingspeak\/","title":{"rendered":"ESP-12F \u96f2\u7aef\u8a18\u9304\u578b K-Type \u6eab\u5ea6\u8a08(MQTT  ThingSpeak)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">\u8a2d\u5099\u8207\u6750\u6599<\/h2>\n\n\n\n<p>\u500b\u4eba\u96fb\u8166 \u00d7 1<br>ESP12F \u00d7 1<br>\u9eb5\u5305\u677f \u00d7 1<br>SW\u6309\u9215 \u00d7 1<br>MAX31855\u6a21\u7d44 \u00d7 1<br>K-Type \u71b1\u96fb\u5076 \u00d7 1<br>\u9023\u63a5\u7dda \u82e5\u5e72<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5be6\u9ad4\u63a5\u7dda\u5716<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ESP12FMAX31855.svg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u958b\u767c\u74b0\u5883<\/h2>\n\n\n\n<p>\u4f7f\u7528 Arduino IDE \u5b89\u88dd ESP8266\u958b\u767c\u677f\uff0c\u5982\u679c\u4e0d\u77e5\u9053\u5982\u4f55\u5b89\u88ddESP8266\u958b\u767c\u677f\uff0c\u53ef\u4ee5\u53c3\u8003 \u201c<a href=\"https:\/\/www.block.tw\/blog\/start_esp-12ef\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u6e96\u5099\u4f60\u7684 ESP12E\/F \u958b\u767c\u5de5\u5177<\/a>\u201d \uff0c\u5b89\u88dd\u958b\u767c\u677f\u4e4b\u5f8c\uff0c\u8a18\u5f97\u958b\u767c\u677f\u9078\u64c7 \u201cNodeMCU 1.0(ESP-12E Module)\u201d \uff0c\u4e4b\u5f8c\u5b89\u88ddMAX31855 \u7a0b\u5f0f\u5eab\uff0c\u5982\u4e0b\u5716\u6b65\u9aa4\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FPowerPlug\/pubsubclient1.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/max31855lib.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u8a2d\u5b9a ThingSpeak<\/h2>\n\n\n\n<p>\u5148\u767b\u5165\u4f60\u7684 ThingSpeak \u5e33\u865f\uff0c\u5982\u679c\u6c92\u6709\u5e33\u865f\u53ef\u4ee5\u53c3\u8003 <a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/thingspeak_account\/\" target=\"_blank\">ThingSpeak \u96f2\u7aef\u8cc7\u6599\u5eab \u5e33\u865f\u7533\u8acb<\/a> \u3002\u767b\u5165\u6309 \u201c<span style=\"color: #0693e3;\" class=\"stk-highlight\">New Channel<\/span>\u201d\uff0c\u65b0\u589e\u4f60\u7684\u65b0\u983b\u9053(\u7528\u4f86\u63a5\u6536\u7d71\u8a08 ESP-12F \u767c\u4f48\u7684\u8cc7\u6599)\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak1.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u8f38\u5165 Name\u3001 Field1\u3001 Field2\u6b04\u4f4d\u540d\u7a31(\u53ef\u652f\u63f4\u4e2d\u6587)\uff0c\u4e26\u52fe\u9078\u3002\u6ed1\u9f20\u5f80\u4e0b\u6efe\u52d5\u5f8c\uff0c\u6309\u201c<span style=\"color: #0693e3;\" class=\"stk-highlight\">Save Channel<\/span>\u201d<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak2.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br><\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak3.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u65b0\u589e\u7684 &#8220;<span style=\"color: #0693e3;\" class=\"stk-highlight\">\u6eab\u5ea6\u76e3\u63a7<\/span>&#8221; \u8cc7\u6599\u6536\u96c6\u983b\u9053(Channel)\uff0cChannel ID \u5f88\u91cd\u8981\uff0c\u4f7f\u7528 MQTT \u767c\u4f48\u8cc7\u6599\u5230\u96f2\u7aef\u8cc7\u6599\u5eab\u6703\u4f7f\u7528\u5230<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak4.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u8a2d\u5b9a \u201c\u6eab\u5ea6\u76e3\u63a7\u201d \u983b\u9053(Channel) MQTT Device\uff0c\u9019\u6a23\u624d\u53ef\u4ee5\u7528 MQTT \u767c\u4f48\u8cc7\u6599\u5230 ThingSpeak<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak5.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u65b0\u589e MQTT Devices<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak6.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u8a2d\u5b9a Name \uff0c\u4e26\u628a\u525b\u525b\u65b0\u589e\u7684\u983b\u9053(Channel)\u52a0\u9032\u4f86<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak7.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u52a0\u5165\u983b\u9053(Channel) \u5f8c\uff0c\u6309 \u201c<span style=\"color: #0693e3;\" class=\"stk-highlight\">Add Device<\/span>\u201d \u65b0\u589e MQTT Device<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak8.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u65b0\u589e\u5f8c\uff0c\u6703\u7d66\u4f60 MQTT \u9023\u7dda\u7684\u4e00\u4e9b\u8cc7\u6599\uff0c\u6309 \u201c<span style=\"color: #0693e3;\" class=\"stk-highlight\">Download Credertials<\/span>\u201d \u4e0b\u8f09\u56de\u4f86<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak9.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u9078\u64c7 \u4e0b\u8f09 \u201c<span style=\"color: #0693e3;\" class=\"stk-highlight\">Arduino (mqtt_secrets.h)<\/span>\u201d<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak10.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u6211\u662f\u958b\u555f\u6a94\u6848\u5f8c\uff0c\u76f4\u63a5\u8907\u88fd\u5230 Arduino IDE \u7684\u7a0b\u5f0f\u88e1\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak11.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u4ee5\u4e0a\u5b8c\u6210\uff0cThingSpeak \u7684\u8a2d\u5b9a\uff0c\u63a5\u8457\u5b8c\u6210\u786c\u9ad4\uff0c\u786c\u9ad4\u5b8c\u6210\u5f8c\uff0c\u7a0b\u5f0f\u71d2\u597d\uff0c\u5c31\u53ef\u4ee5\u6e2c\u8a66\u529f\u80fd\u6b63\u4e0d\u6b63\u78ba\u3002\u9700\u8981\u4fee\u6539\u5716\u5f62\u986f\u793a\u7684 &#8220;<span style=\"color: #0693e3;\" class=\"stk-highlight\">Results<\/span>&#8221; \u5f9e60\u7b46\u8cc7\u6599\u8b8a\u6210900\uff0c\u6bcf\u79d21\u7b46\uff0c\u53ef\u4ee5\u7d71\u8a0815\u5206\u9418\u3002\u6309\u5716\u5f62\u53f3\u4e0a &#8220;<span style=\"color: #0693e3;\" class=\"stk-highlight\">\u7b46\u5f62 ICON<\/span>&#8220;\uff0c\u53ef\u4ee5\u9032\u5165\u8a2d\u5b9a\u756b\u9762\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak12.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p><br>\u4f7f\u7528\u96fb\u70d9\u9435\u76f4\u63a5\u52a0\u71b1 K-Type \u71b1\u96fb\u5076\u6e2c\u8a66\u6eab\u5ea6\uff0cSW\u63a5\u8173\u5fc5\u9700\u63a5\u5730\u624d\u6703\u9001\u8cc7\u6599\u5230\u96f2\u7aef\u5594\uff01<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.block.tw\/blog\/wp-content\/uploads\/arduino\/ESP12FMAX31855\/ThingSpeak13.jpg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><br>\u7bc4\u4f8b\u7a0b\u5f0f<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*\n *  ESP-12F \u96f2\u7aef\u8a18\u9304\u578b K-Type \u6eab\u5ea6\u8a08(MQTT ThingSpeak)\n *  \u958b\u767c\u5de5\u5177 Arduino IDE \u5fc5\u9700\u81ea\u884c\u52a0\u5165ESP12F \u958b\u767c\u677f\n *  \u9700\u8981\u5b89\u88dd MQTT \u7a0b\u5f0f\u5eab(PubSubClient)\n *  \u9700\u8981\u5b89\u88dd MAX31855 \u7a0b\u5f0f\u5eab\n *  \u958b\u767c\u677f ESP12F(ESP8266)   \n *  \u6b64\u7a0b\u5f0f\u70ba\u7bc4\u4f8b\u7a0b\u5f0f\uff0cSW\u958b\u95dc\u63a5\u5730\u6642\uff0c\u6bcf\u79d2\u767c\u4f48\u74b0\u5883\u6eab\u5ea6\u8207\u71b1\u96fb\u5076\u6eab\u5ea6\u5230 ThingSpeak\n *  \u4f7f\u7528\u901a\u8a0a\u5354\u5b9a MQTT \uff0cMQTT broker \u4f7f\u7528 mqtt3.thingspeak.com\n *  mqtt3.thingspeak.com \u9700\u8981\u5148\u8a3b\u518a\u8207\u8a2d\u5b9a\n *  https:\/\/www.block.tw\/blog\n *\/\n\n\/\/Wifi\n#include &lt;ESP8266WiFi.h>\n#include &lt;WiFiClient.h>\n#include &lt;ESP8266WiFiMulti.h>\n\n\/\/MQTT LIB \u9700\u8981\u81ea\u884c\u5b89\u88dd\u7a0b\u5f0f\u5eab https:\/\/github.com\/knolleary\/pubsubclient\n#include &lt;PubSubClient.h>\n\nESP8266WiFiMulti wifiMulti;\nWiFiClient espClient;\n\nPubSubClient client(espClient);\n\n\/\/MAX31855 \u9700\u8981\u7684\u7a0b\u5f0f\u5eab\n#include &lt;MAX31855.h> \n\n\/\/MAX31855 \u63a5\u8173\n#define MAXDO   D3  \/\/ D3 GPIO 0\n#define MAXCS   D2  \/\/ D2 GPIO 4\n#define MAXCLK  D5  \/\/ D5 GPIO 14\n\n#define SW      D6   \/\/\u958b\u95dc\u63a5\u8173\n\n\/\/ \u5ba3\u544a MAX31855 \u7269\u4ef6\nMAX31855_Class MAX31855; \n\n\/\/WIFI SSID \u8ddf\u5bc6\u78bc\n#define   APSSID  \"********\"         \/\/\u4f60\u7684 SSID\n#define   APPW    \"********\"         \/\/\u4f60\u7684 wifi \u7db2\u8def\u5bc6\u78bc\n\n\/\/ MQTT ThingSpeak MQTT \u4f3a\u670d\u5668 \u9700\u8981\u63db\u6210\u4f60\u7684\u5594\uff01\n#define SECRET_MQTT_USERNAME \"DwkYEBMeAT0FAAQtBjsjMgE\"\n#define SECRET_MQTT_CLIENT_ID \"DwkYEBMeAT0FAAQtBjsjMgE\"\n#define SECRET_MQTT_PASSWORD \"*******ivWa3nudmOt\/KXBA\"\n\nconst char* brokerUser  = SECRET_MQTT_USERNAME;  \/\/\u4f7f\u7528\u8005\u540d\u7a31\nconst char* brokerPass  = SECRET_MQTT_PASSWORD;  \/\/\u4f7f\u7528\u8005\u5bc6\u78bc\nconst char* broker      = \"mqtt3.thingspeak.com\";\n\n\/\/channels\/Channel ID\/publish   \u8a18\u5f97\u63db\u6210\u4f60\u7684 Channel ID\nconst char* pubTopic       = \"channels\/1717654\/publish\";    \n\n\/\/\u767c\u4f48 MQTT \u6240\u9700\u8981\u7684\u5b57\u4e32\nchar        msg&#91;40]     ;\nString      msgStr      = \"\";\n\n\/\/\u8a08\u7b97\u6642\u9593\u7528\u7684\u8b8a\u6578\nlong        currentTime, lastTime;\n\nvoid setup(){\n  pinMode(LED_BUILTIN, OUTPUT);\n  pinMode(SW, INPUT_PULLUP);\n  \/\/\u5167\u5efa\u677f\u4e0a LED \u6ec5 D4 GPIO 2\n  digitalWrite(LED_BUILTIN, HIGH);\n\n  Serial.begin(115200);\n  setupWiFi();\n  client.setServer(broker, 1883);\n  client.setCallback(callback);\n  \n  \/\/MAX31855 \u555f\u7528\n  while (!MAX31855.begin(MAXCS,MAXDO,MAXCLK)){\n    Serial.println(F(\"Unable to start MAX31855. Waiting 3 seconds.\"));\n    delay(3000);\n  } \/\/ of loop until device is located\n\n}\n\nvoid loop(){\n  if (!client.connected()){\n    \/\/\u9023\u63a5 MQTT \u4f3a\u670d\u5668\n    MQTTconnect();\n  }\n  \/\/client.loop();\n  currentTime = millis();\n  \n  \/\/1\u79d2\u767c\u4e00\u6b21\u8a0a\u606f\n  if(currentTime - lastTime > 1000){    \n    \/\/\u8b80\u53d6\u74b0\u5883\u6eab\u5ea6\u8207\u71b1\u96fb\u5076\u6eab\u5ea6\n    float aT=(float)MAX31855.readAmbient()\/1000;\n    float pT=(float)MAX31855.readProbe()\/1000;\n    \n    \/\/\u5982\u679cSW\u63a5\u8173\u4f4e\u96fb\u4f4d\u5c31\u767c\u9001\n    if(!digitalRead(SW)){\n      Serial.print(\"Sending messages:\\t\"); \n      \/\/\u628a\u6eab\u5ea6\u8b8a\u6210\u50b3\u9001 ThingSpeak MQTT \u5b57\u4e32\u6307\u4ee4\n      msgStr=\"field1=\"+(String)aT+\"&amp;field2=\"+(String)pT;\n      \/\/\u5b57\u4e32\u8f49\u5b57\u5143\n      msgStr.toCharArray(msg,msgStr.length()+1);\n      Serial.println(msg);\n      client.publish(pubTopic,msg);    \n    }  \n    \n    lastTime = millis();\n  }\n   \n}\n\n\/\/\u8a02\u95b1\u7684\u4e3b\u984c\u6709\u4eba\u767c\u4f48\u8a0a\u606f\u6642\u7684\u8655\u7406\u51fd\u5f0f\nvoid callback(char* topic, byte* payload, unsigned int len){\n  \/\/\u7121\n}\n\n\/\/\u9023\u63a5\u7121\u7dda wifi \u7684\u8655\u7406\u51fd\u5f0f\nvoid setupWiFi(){\n  delay(100);\n\n  \/\/\u9023\u63a5\u7121\u7dda wifi\n  wifiMulti.addAP(APSSID, APPW);\n\n  Serial.println(\"Wifi Connecting ...\");\n\n  \/\/\u5167\u5efa\u677f\u4e0a LED \u4eae\n  digitalWrite(LED_BUILTIN, LOW);\n\n  while (wifiMulti.run() != WL_CONNECTED){\n    delay(250);\n    Serial.print('.');\n  }\n\n  \/\/\u5167\u5efa\u677f\u4e0a LED \u6ec5\n  digitalWrite(LED_BUILTIN, HIGH);\n\n  Serial.println('\\n');\n  Serial.print(\"Connected to:\\t\");\n  Serial.println(WiFi.SSID());\n\n  Serial.print(\"IP address:\\t\");\n  Serial.println(WiFi.localIP());\n}\n\n\nvoid MQTTconnect(){\n  while (!client.connected()){\n    \/\/\u9023\u63a5 MQTT \u4f3a\u670d\u5668\uff0cmqtt3.thingspeak.com \u8981\u8a3b\u518a \u4e0d\u53ef\u4e82\u586b\n    if (client.connect(SECRET_MQTT_CLIENT_ID, brokerUser, brokerPass)) {\n      Serial.print(\"\\nConnected to \");\n      Serial.println(broker);      \n    } else {\n      Serial.println(\"Connecting\");\n      delay(2500);\n    }\n  }\n}<\/code><\/pre>\n\n\n\n<section id=\"section-4f82d2d6-e601-43bc-aa9f-8b7f0edaa8e7\" class=\"wp-block-gutentor-tabs gutentor-section gutentor-tabs-wrapper tabs-template1 has-color-bg has-custom-bg tab-horizontal\"><div class=\"grid-container gutentor-rm-ct-space-d gutentor-rm-ct-space-t gutentor-rm-ct-space\"><div class=\"gutentor-tabs-container gutentor-grid-item-wrap\"><div class=\"gutentor-tabs tablist-left\"><span class=\"gutentor-tabs-list gutentor-single-item-0 gutentor-tab-active\" data-index=\"gutentor-single-item-0\"><div class=\"gutentor-single-item-tabs gutentor-single-item\">\u5165\u9580<\/div><\/span><span class=\"gutentor-tabs-list gutentor-single-item-1\" data-index=\"gutentor-single-item-1\"><div class=\"gutentor-single-item-tabs gutentor-single-item\">\u77e5\u8b58<\/div><\/span><span class=\"gutentor-tabs-list gutentor-single-item-2\" data-index=\"gutentor-single-item-2\"><div class=\"gutentor-single-item-tabs gutentor-single-item\">\u8a9e\u6cd5<\/div><\/span><span class=\"gutentor-tabs-list gutentor-single-item-3\" data-index=\"gutentor-single-item-3\"><div class=\"gutentor-single-item-tabs gutentor-single-item\">\u6d41\u7a0b<\/div><\/span><span class=\"gutentor-tabs-list gutentor-single-item-4\" data-index=\"gutentor-single-item-4\"><div class=\"gutentor-single-item-tabs gutentor-single-item\">\u51fd\u5f0f<\/div><\/span><span class=\"gutentor-tabs-list gutentor-single-item-5\" data-index=\"gutentor-single-item-5\"><div class=\"gutentor-single-item-tabs gutentor-single-item\">\u5be6\u7fd2<\/div><\/span><\/div><div class=\"gutentor-tabs-content-wrap text-left\"><div class=\"gutentor-single-item gutentor-tabs-content gutentor-single-item-0 gutentor-tab-content-active\"><div class=\"gutentor-single-item-tabs gutentor-single-item\"><div class=\"gutentor-single-item-content\"><p><a href=\"https:\/\/www.block.tw\/blog\/arduinoinfo\/\">Arduino \u7c21\u4ecb<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduinoide\/\">\u6e96\u5099\u4f60\u7684 Arduino \u958b\u767c\u5de5\u5177<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/start_esp-12ef\/\">\u6e96\u5099\u4f60\u7684 ESP12E\/F \u958b\u767c\u5de5\u5177<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-uno-hardware\/\">Arduino Uno \u786c\u9ad4<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-nano-pin\/\">Arduino nano \u786c\u9ad4<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/esp-12fesp8266hardware\/\">ESP-12F(ESP8266)\u786c\u9ad4<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-structure\/\">Arduino \u7a0b\u5f0f\u8a9e\u6cd5<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-lib-zip\">\u532f\u5165 zip \u7a0b\u5f0f\u5eab<\/a> <br><\/p><\/div><\/div><\/div><div class=\"gutentor-single-item gutentor-tabs-content gutentor-single-item-1\"><div class=\"gutentor-single-item-tabs gutentor-single-item\"><div class=\"gutentor-single-item-content\"><p><a href=\"https:\/\/www.block.tw\/blog\/camel-case\/\">\u99dd\u5cf0\u5f0f\u547d\u540d\u6cd5<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/uart\/\">UART \u4e32\u5217\u901a\u8a0a<\/a> <br><a href=\"https:\/\/www.block.tw\/blog\/arduino-pwm-control\/\">PWM\u63a7\u5236<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/scankeyboard\/\">\u9375\u76e4\u6383\u63cf<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/thingspeak_account\/\">ThingSpeak \u96f2\u7aef\u8cc7\u6599\u5eab \u5e33\u865f\u7533\u8acb<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/thingspeak_setup\/\">ThingSpeak \u96f2\u7aef\u8cc7\u6599\u5eab \u8a2d\u5b9a<\/a><\/p><\/div><\/div><\/div><div class=\"gutentor-single-item gutentor-tabs-content gutentor-single-item-2\"><div class=\"gutentor-single-item-tabs gutentor-single-item\"><div class=\"gutentor-single-item-content\"><p><a href=\"https:\/\/www.block.tw\/blog\/arduino-decimal\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/arduino-decimal\">Arduino \u9032\u5236\u8868\u793a<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-array\/\">Arduino \u9663\u5217<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-variable\/\">Arduino \u5e38\u6578\u8207\u8b8a\u6578<\/a><br><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-arithmetic\/\">Arduino \u7b97\u6578\u904b\u7b97\u5b50<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-compound-operator\/\">Arduino \u8907\u5408\u904b\u7b97\u5b50<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-boolean\/\">Arduino \u5e03\u6797\u904b\u7b97\u5b50<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-compare\/\">Arduino \u6bd4\u8f03\u904b\u7b97\u5b50<\/a><br><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-ide-error\">Arduino IDE \u932f\u8aa4\u8a0a\u606f<\/a><\/p><\/div><\/div><\/div><div class=\"gutentor-single-item gutentor-tabs-content gutentor-single-item-3\"><div class=\"gutentor-single-item-tabs gutentor-single-item\"><div class=\"gutentor-single-item-content\"><p><a href=\"https:\/\/www.block.tw\/blog\/arduino-for\/\">Arduino for \u8ff4\u5708<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-if\/\">Arduino if \u689d\u4ef6\u5224\u65b7<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-switch\/\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/arduino-switch\/\">Arduino switch \u9078\u64c7\u6307\u4ee4<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-while\/\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/arduino-while\/\">Arduino while \u8ff4\u5708<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-do-while\">Arduino do while \u8ff4\u5708<\/a><\/p><\/div><\/div><\/div><div class=\"gutentor-single-item gutentor-tabs-content gutentor-single-item-4\"><div class=\"gutentor-single-item-tabs gutentor-single-item\"><div class=\"gutentor-single-item-content\"><p><a href=\"https:\/\/www.block.tw\/blog\/arduino-digital\/\">Arduino \u6578\u4f4dI\/O\u51fd\u5f0f<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-%e9%a1%9e%e6%af%94i-o%e6%8c%87%e4%bb%a4\/\">Arduino \u985e\u6bd4I\/O\u51fd\u5f0f<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-time\/\">Arduino \u6642\u9593\u51fd\u5f0f<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-math\/\">Arduino \u6578\u5b78\u51fd\u5f0f<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-communication\/\">Arduino \u901a\u8a0a\u7269\u4ef6\u51fd\u5f0f<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/tone\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/tone\">Arduino \u767c\u97f3\u51fd\u5f0f<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/myfunction\/\">Arduino \u81ea\u5b9a\u51fd\u5f0f<\/a><\/p><\/div><\/div><\/div><div class=\"gutentor-single-item gutentor-tabs-content gutentor-single-item-5\"><div class=\"gutentor-single-item-tabs gutentor-single-item\"><div class=\"gutentor-single-item-content\"><p><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-output\/\" target=\"_blank\">Arduino \u8f38\u51fa\u5be6\u7fd2<\/a>(\u55ae\u71c8\u9583\u720d)<br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-output-easy\" target=\"_blank\">Arduino \u8f38\u51fa\u5be6\u7fd2<\/a>(\u8dd1\u99ac\u71c8-\u611a\u516c\u79fb\u5c71)<br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-output-for\/\" target=\"_blank\">Arduino \u8f38\u51fa\u5be6\u7fd2<\/a>(\u8dd1\u99ac\u71c8-for\u8ff4\u5708)<br><a href=\"https:\/\/www.block.tw\/blog\/arduino-digital-input\">Arduino \u6578\u4f4d\u8f38\u5165\u5be6\u7fd2<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/input-pullup\/\">Arduino \u6578\u4f4d\u8f38\u5165\u5be6\u7fd2(INPUT_PULLUP)<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-alalog-input\" target=\"_blank\">Arduino \u985e\u6bd4\u8f38\u5165\u5be6\u7fd2<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-pwm\/\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/arduino-pwm\/\" target=\"_blank\">Arduino PWM <\/a><a href=\"https:\/\/www.block.tw\/blog\/arduino-pwm\/\">\u5be6\u7fd2<\/a> (\u547c\u5438\u71c8)<br> <a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-ldr-3led\/\" data-type=\"URL\" target=\"_blank\">Arduino PWM \u5be6\u7fd2<\/a> (\u5149\u611f\u61c9\u8abf\u5149\u71c8) <br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-88-led-matrix-max7219\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/arduino-88-led-matrix-max7219\" target=\"_blank\">Arduino 8&#215;8 LED Matrix MAX7219 \u5be6\u7fd2<\/a> <br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-greenMan\" data-type=\"URL\" target=\"_blank\">Arduino \u7d05\u7da0\u71c8\u5c0f\u7da0\u4eba \u5be6\u7fd2<\/a> <br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/88-led-matrix-max7219-clock\/\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/88-led-matrix-max7219-clock\/\" target=\"_blank\">Arduino \u8a08\u6642\u5668 \u5be6\u7fd2<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/musicbox\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/musicbox\" target=\"_blank\">Arduino \u97f3\u6a02\u76d2<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/keyboard\/\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/keyboard\/\" target=\"_blank\">Arduino \u96fb\u5b50\u7434(\u9375\u76e4\u6383\u63cf)<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/dht11\/\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/dht11\/\" target=\"_blank\">Arduino DHT11 \u6eab\u6fd5\u5ea6\u611f\u61c9\u5668<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/oled\/\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/oled\/\" target=\"_blank\">Arduino OLED \u986f\u793a<\/a><br><span style=\"color: #0693e3;\" class=\"ugb-highlight\"><a href=\"https:\/\/www.block.tw\/blog\/arduino-hcsr04\/\">Arduino \u8d85\u97f3\u6ce2\u6e2c\u8ddd\u6a21\u7d44 HC-SR04<\/a><\/span><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-runtime\/\">Arduino \u57f7\u884c\u6642\u9593\u5be6\u7fd2<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/arduino-captest\/\">Arduino \u96fb\u5bb9\u6e2c\u8a66\u5668<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-irr\/\" target=\"_blank\">Arduino \u7d05\u5916\u7dda\u63a5\u6536\u5be6\u7fd2<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/arduino-irsend-epson\/\" target=\"_blank\">Arduino \u7d05\u5916\u7dda\u767c\u5c04\u5be6\u7fd2 EPSON \u6295\u5f71\u6a5f\u63a7\u5236 <\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/esp12f-iot-plug-mqtt\" target=\"_blank\">ESP-12F \u7db2\u8def\u667a\u6167\u958b\u95dc(MQTT)<\/a><br><a rel=\"noreferrer noopener\" href=\"https:\/\/www.block.tw\/blog\/esp-12fesp8266-max31855-mqtt-thingspeak\" target=\"_blank\">ESP-12F \u96f2\u7aef\u8a18\u9304\u578b K-Type \u6eab\u5ea6\u8a08(MQTT  ThingSpeak)<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/esp-12f-ircontrolbyphone\/\">ESP-12F \u624b\u6a5f\u96f2\u7aef\u7d05\u5916\u7dda\u63a7\u5236<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/esp-12f-webradio\" data-type=\"URL\" data-id=\"https:\/\/www.block.tw\/blog\/esp-12f-webradio\">ESP-12F \u7db2\u8def\u96fb\u53f0\u6536\u97f3\u6a5f<\/a><br><a href=\"https:\/\/www.block.tw\/blog\/esp12f-edrum\">ESP-12F \u96fb\u5b50\u9f13<\/a><\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/section>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8a2d\u5099\u8207\u6750\u6599 \u500b\u4eba\u96fb\u8166 \u00d7 1ESP12F \u00d7 1\u9eb5\u5305\u677f \u00d7 1SW\u6309\u9215 \u00d7 1MAX31855\u6a21\u7d44 \u00d7 1K-&hellip; <br \/> <a class=\"read-more\" href=\"https:\/\/www.block.tw\/blog\/esp-12fesp8266-max31855-mqtt-thingspeak\/\">Read more<\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70,3],"tags":[82,81,22,84,86],"class_list":["post-2907","post","type-post","status-publish","format-standard","hentry","category-internship","category-mcu","tag-esp12","tag-esp8266","tag-max31855","tag-mqtt","tag-thingspeak-2"],"gutentor_comment":0,"featured_image_urls":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":"","post-thumbnail":"","mesmerize-full-hd":""},"post_excerpt_stackable":"<p>\u8a2d\u5099\u8207\u6750\u6599 \u500b\u4eba\u96fb\u8166 \u00d7 1ESP12F \u00d7 1\u9eb5\u5305\u677f \u00d7 1SW\u6309\u9215 \u00d7 1MAX31855\u6a21\u7d44 \u00d7 1K-Type \u71b1\u96fb\u5076 \u00d7 1\u9023\u63a5\u7dda \u82e5\u5e72 \u5be6\u9ad4\u63a5\u7dda\u5716 \u958b\u767c\u74b0\u5883 \u4f7f\u7528 Arduino IDE &#8230;<\/p>\n","category_list":"<a href=\"https:\/\/www.block.tw\/blog\/category\/mcu\/internship\/\" rel=\"category tag\">Arduino \u5be6\u7fd2<\/a>, <a href=\"https:\/\/www.block.tw\/blog\/category\/mcu\/\" rel=\"category tag\">\u5fae\u8655\u7406\u6a5f<\/a>","author_info":{"name":"mcu","url":"https:\/\/www.block.tw\/blog\/author\/mcu\/"},"comments_num":"0 comments","featured_image_urls_v2":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":"","post-thumbnail":"","mesmerize-full-hd":""},"post_excerpt_stackable_v2":"<p>\u8a2d\u5099\u8207\u6750\u6599 \u500b\u4eba\u96fb\u8166 \u00d7 1ESP12F \u00d7 1\u9eb5\u5305\u677f \u00d7 1SW\u6309\u9215 \u00d7 1MAX31855\u6a21\u7d44 \u00d7 1K-Type \u71b1\u96fb\u5076 \u00d7 1\u9023\u63a5\u7dda \u82e5\u5e72 \u5be6\u9ad4\u63a5\u7dda\u5716 \u958b\u767c\u74b0\u5883 \u4f7f\u7528 Arduino IDE &#8230;<\/p>\n","category_list_v2":"<a href=\"https:\/\/www.block.tw\/blog\/category\/mcu\/internship\/\" rel=\"category tag\">Arduino \u5be6\u7fd2<\/a>, <a href=\"https:\/\/www.block.tw\/blog\/category\/mcu\/\" rel=\"category tag\">\u5fae\u8655\u7406\u6a5f<\/a>","author_info_v2":{"name":"mcu","url":"https:\/\/www.block.tw\/blog\/author\/mcu\/"},"comments_num_v2":"0 comments","_links":{"self":[{"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/posts\/2907","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/comments?post=2907"}],"version-history":[{"count":25,"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/posts\/2907\/revisions"}],"predecessor-version":[{"id":2966,"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/posts\/2907\/revisions\/2966"}],"wp:attachment":[{"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/media?parent=2907"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/categories?post=2907"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.block.tw\/blog\/wp-json\/wp\/v2\/tags?post=2907"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}