tag:blogger.com,1999:blog-46209608912397322042024-03-28T02:17:05.475-07:00翻轉學習東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.comBlogger59125tag:blogger.com,1999:blog-4620960891239732204.post-5521708764903919832024-03-25T05:49:00.000-07:002024-03-25T05:49:24.857-07:00使用後端程式來進行 LINE Notify 訊息推播(Python + Google Apps Script)<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXb4BphJXfNXZccLtnYeJlRixcv7qJDUB68U9qWPwST9f7rtgHU4AcDs7bJZ8uRz0KOvFAojWemdOTEHnoUNyid34KHrehHiBGik5gWmPWRlXE3SK1OjbIeLsjJb9J1NlncVYMjr7St_ndmhQDizV_IDv6QvnB6NCz3EZrgSW3ci32Q89m86kHiiabRQ/s435/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20151932.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="328" data-original-width="435" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXb4BphJXfNXZccLtnYeJlRixcv7qJDUB68U9qWPwST9f7rtgHU4AcDs7bJZ8uRz0KOvFAojWemdOTEHnoUNyid34KHrehHiBGik5gWmPWRlXE3SK1OjbIeLsjJb9J1NlncVYMjr7St_ndmhQDizV_IDv6QvnB6NCz3EZrgSW3ci32Q89m86kHiiabRQ/w200-h151/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20151932.png" width="200" /></a></div><br />LINE Notify 是 LINE 的一項免費訊息推播服務,可以讓程式設計者或系統管理者用程式發送 LINE 訊息至指定的聊天室。<div><br /></div><div>在上一篇 LINE Notify 權杖申請與取用 的文章中已詳細說明如何進行LINE Notify的申請與使用,但LINE Notify 無法直接透過網頁前端的方式來發送訊息,所以以下是一個簡單使用 Python 來推播訊息的例子。</div><div><br /></div><div><br /></div><div>編寫 Python 程式碼如下:</div><pre class="code prettyprint">import requests
# LINE Notify 權杖
LINE_token = '你的權杖'
# 要推播的訊息
LINE_message = '這是用LINE Notify推播訊息測試'
message = {'message': LINE_message}
# 設定HTTP 標頭參數把LINE Notify 權杖帶入
headers = { "Authorization": "Bearer " + LINE_token }
# 以 requests 發送 POST 請求
requests.post("https://notify-api.line.me/api/notify", headers = headers, data = message)
<pre></pre></pre>
<span><a name='more'></a></span>本例使用 Thonny 來執行上述程式碼。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLqC2wehdTguc10JV2DRJNrNEQwwjAZUx4JKA9HYQDvg6-oUD2EmRaUK3CXrhqJgKJYMJhch_1H9smhX1yLQefWsgY6K-wFogoJwd2JWiE5lRN2Bb4u0bRtZLYJaO3pAAiQmajO0Url2I00Ytp6HXQ6bq-XHvYNYzkBX2BFhULYrhseQfzkmxLzX2yeA/s1161/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20152944.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="564" data-original-width="1161" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLqC2wehdTguc10JV2DRJNrNEQwwjAZUx4JKA9HYQDvg6-oUD2EmRaUK3CXrhqJgKJYMJhch_1H9smhX1yLQefWsgY6K-wFogoJwd2JWiE5lRN2Bb4u0bRtZLYJaO3pAAiQmajO0Url2I00Ytp6HXQ6bq-XHvYNYzkBX2BFhULYrhseQfzkmxLzX2yeA/w640-h310/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20152944.png" width="640" /></a></div><br /><h2 style="text-align: left;"><b><span style="color: #cc0000;">利用 Google Apps Script 推播訊息</span></b></h2>除了可利用 Python 來推播 LINE Notify 訊息外,也可利用 Google Apps Script 腳本平台推播訊息。 <div>進入 Google 雲端硬碟,新增一個 Google Apps Script。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0M-LIB--ax-t_WoFuQ7zxe4FVk1kNuWlHHjDTD1kmyTmNyz3p9NVipB1hjlP0ZUzIiQzJ8C8rMPuH4cvgy3HKrBpU0UWf6j45ArOZjtMldrDvDAC4IsoD8eNp6Z0gHbnFuOE5uBNS3GiG06Ev9EMY2iDh-LNQIiSpB4M_wumQ_KyFgVCFnuAwI28FzQ/s1240/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20153944.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="657" data-original-width="1240" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0M-LIB--ax-t_WoFuQ7zxe4FVk1kNuWlHHjDTD1kmyTmNyz3p9NVipB1hjlP0ZUzIiQzJ8C8rMPuH4cvgy3HKrBpU0UWf6j45ArOZjtMldrDvDAC4IsoD8eNp6Z0gHbnFuOE5uBNS3GiG06Ev9EMY2iDh-LNQIiSpB4M_wumQ_KyFgVCFnuAwI28FzQ/w640-h340/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20153944.png" width="640" /></a></div><br /></div>將未命名專案的名稱加以變更,本例變更為 LINE 推播訊息。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4ZkLCPkFFadwedE2IeiU5Mmc56dawri4FysoG7L5tFPyN9jZGNjGWhIyiel5-Ros_dXHZHJK2I2zPweRIqHG8LhTDYqGdSOvO3ryap7wSVe9LoT_HqkH2Ak4_150JJLDXog8NL0b0pfR568PUHN9gDc8opqbOR7QApFlG4d9chlflm6CN0ecONWMOcA/s1086/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20154418.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="391" data-original-width="1086" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4ZkLCPkFFadwedE2IeiU5Mmc56dawri4FysoG7L5tFPyN9jZGNjGWhIyiel5-Ros_dXHZHJK2I2zPweRIqHG8LhTDYqGdSOvO3ryap7wSVe9LoT_HqkH2Ak4_150JJLDXog8NL0b0pfR568PUHN9gDc8opqbOR7QApFlG4d9chlflm6CN0ecONWMOcA/w640-h230/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20154418.png" width="640" /></a></div><br /> 將 myFunction 函數名稱改為 doPost。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikGyaYagIDi2IguLircGTYaT_3CQrSTiIVwimD2KN2UYwyWKZruYnuAbzkDyUT159Vg3mwk0byocBG8LJYtume-JIkwgWxGR4OVig-IiL4HIE8tEQ8KSxyFp4Wgqp2i1U-RdQ2I8lyiBYTS_48804TPRCM-5qi_12pO8sR3Mx5m4o-bu68wyU4a5x5YA/s1029/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20154841.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="452" data-original-width="1029" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikGyaYagIDi2IguLircGTYaT_3CQrSTiIVwimD2KN2UYwyWKZruYnuAbzkDyUT159Vg3mwk0byocBG8LJYtume-JIkwgWxGR4OVig-IiL4HIE8tEQ8KSxyFp4Wgqp2i1U-RdQ2I8lyiBYTS_48804TPRCM-5qi_12pO8sR3Mx5m4o-bu68wyU4a5x5YA/w640-h282/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20154841.png" width="640" /></a></div><br /><br /><div>撰寫程式碼如下:
<pre class="code prettyprint">function doPost() {
UrlFetchApp.fetch('https://notify-api.line.me/api/notify', {
'headers': {
'Authorization': 'Bearer ' + '你的權杖',
},
'method': 'post',
'payload': {
'message':'利用 Google Apps Script 腳本平台推播訊息!'
}
});
}
</pre></div>接著按下功能列上的執行按鈕。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv-v5b9GMqGJh-JBquVH9Nw7_kMjvY1jd_LZ0FoUhKkyUNt69sEuWb_u2R64Egok_S4DJPuCpKz_30DacacAgPO_uK2RimspVrTdUyhD6Y4LAiC6qu4cJhWEB8Bz-tsMJ66hltyBEFwUHrhJq9qbWLfTD5LYb5GnRO9yrH8QDFVl1S3Syz4iL49LQUrA/s1053/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20155726.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="536" data-original-width="1053" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv-v5b9GMqGJh-JBquVH9Nw7_kMjvY1jd_LZ0FoUhKkyUNt69sEuWb_u2R64Egok_S4DJPuCpKz_30DacacAgPO_uK2RimspVrTdUyhD6Y4LAiC6qu4cJhWEB8Bz-tsMJ66hltyBEFwUHrhJq9qbWLfTD5LYb5GnRO9yrH8QDFVl1S3Syz4iL49LQUrA/w640-h326/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20155726.png" width="640" /></a></div><div><br /></div>因為我們 Apps Script 是外部服務,所以先出現帳號登入驗證,身分驗證通過後還會有一個存取權限的視窗,這個過程等同我們同意外部服務使用特定 Google 的帳號執行當前的程式。<table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG94V_5L-RT5MxY7i4W2QpyUrf4dh0MQfz3zeTKSrWQNEibqqtpeRbR_ZK95QpkogLaXWyrVXnWq1zq5dXOksTFQEuYMpM_SqniB87KaEQh6QdNSVQOf2IigEWLLLV_JgNG8L4_FPY4G46N5uPxrcPGACKSwkvRJJ0ID7nCKgcdpywjTo8ItN9_kgJjg/s462/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20160048.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="304" data-original-width="462" height="211" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG94V_5L-RT5MxY7i4W2QpyUrf4dh0MQfz3zeTKSrWQNEibqqtpeRbR_ZK95QpkogLaXWyrVXnWq1zq5dXOksTFQEuYMpM_SqniB87KaEQh6QdNSVQOf2IigEWLLLV_JgNG8L4_FPY4G46N5uPxrcPGACKSwkvRJJ0ID7nCKgcdpywjTo8ItN9_kgJjg/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20160048.png" width="320" /></a></div></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUWvywsoUsif-IiTE9WsA_-Mm3WD5vSA8N0RYPCQU8x0DeN2d5GED5gz44jfu8Tuhjo7bjc36cbrRqJC3UX1vVw-DbkrQLXcWYx30CnMrxuJ6iGnZVYRUWzM2Hf12GHFbCNjvciK41dOI9bfva6pdUZAZHnYASGt3Q01h6RZhwICHRlntY5TihOjh5VQ/s675/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20160220.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="675" data-original-width="467" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUWvywsoUsif-IiTE9WsA_-Mm3WD5vSA8N0RYPCQU8x0DeN2d5GED5gz44jfu8Tuhjo7bjc36cbrRqJC3UX1vVw-DbkrQLXcWYx30CnMrxuJ6iGnZVYRUWzM2Hf12GHFbCNjvciK41dOI9bfva6pdUZAZHnYASGt3Q01h6RZhwICHRlntY5TihOjh5VQ/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20160220.png" width="221" /></a></div></td></tr></tbody></table>程式執行後會在Google Apps Script 腳本平台中顯示執行紀錄。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkapS4_F-JCj6oz0F8mk8dZRm3cDj8TRjO_h4t3vB8f17KX0luFkSCxywl4CDLK87pKtw46KHt3dSsD77PSpPOEmbcKi2SO37YyfSk8f-8DytMDOZCqj_uEOft6uMRBJ4_8expyL5MzJGgzcLSEL7U8qaa-BvOhwsWheXpJzOqrIQkdGs7dhZnuHcqEA/s1053/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20160644.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="536" data-original-width="1053" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkapS4_F-JCj6oz0F8mk8dZRm3cDj8TRjO_h4t3vB8f17KX0luFkSCxywl4CDLK87pKtw46KHt3dSsD77PSpPOEmbcKi2SO37YyfSk8f-8DytMDOZCqj_uEOft6uMRBJ4_8expyL5MzJGgzcLSEL7U8qaa-BvOhwsWheXpJzOqrIQkdGs7dhZnuHcqEA/w640-h326/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20160644.png" width="640" /></a></div><br /><div>程式順利執行後就會收到 LINE Notify 推播的訊息。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkKB2NORMSKKuJJEFxJj7-Yqq1yh030pQzYRzOvvyRZgeR8uaKK5JS-SvjQnACwFVeg8xnx2_tUoM1qK6XOu5M4zQ6kM6XMvsBEg7O5030mCwzV48IQTfuKSggJHLdIOiOz5eOp8e4o7sbRritmzFIcXGY-FiT7Mh-O7o1qj8I-8tfRUc0WugE9g91GQ/s438/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20161518.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="355" data-original-width="438" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkKB2NORMSKKuJJEFxJj7-Yqq1yh030pQzYRzOvvyRZgeR8uaKK5JS-SvjQnACwFVeg8xnx2_tUoM1qK6XOu5M4zQ6kM6XMvsBEg7O5030mCwzV48IQTfuKSggJHLdIOiOz5eOp8e4o7sbRritmzFIcXGY-FiT7Mh-O7o1qj8I-8tfRUc0WugE9g91GQ/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-09-02%20161518.png" width="320" /></a></div><br /></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-51126800092477044692024-03-20T07:19:00.000-07:002024-03-20T07:19:35.019-07:00LINE Notify 權杖申請與取用LINE Notify 申請與使用
LINE 官方有一個特殊的 LINE Notify 帳號 (@linenotify),是一個 LINEBot 機器人專門用來發送訊息的服務帳號,讓用戶可以透過LINE接收GitHub、IFTTT及Mackerel等網站服務的訊息提醒。 <div><br /></div><div> 訊息接收者不需要事先加入LINE Notify 帳號,只要有訂閱任何一個 LINE Notify 通知服務就會收到訊息。任何 LINE 用戶都可以成為服務提供者(訊息推播者),可以發送推播訊息給任何人。 </div><div><br /></div><h2 style="text-align: left;"><b><span style="color: #351c75;"> LINE Notify 存取權杖申請</span></b> </h2><div>要使用 LINE Notify 推播訊息必須先取得 LINE Notify 存取權杖。開啟 <a href="https://notify-bot.line.me/zh_TW/" target="_blank">LINE Notify</a> 的網站<a href="https://notify-bot.line.me/zh_TW/">https://notify-bot.line.me/zh_TW/</a> ,並使用自己的 LINE 帳號登入。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIePBUrmYd5wWG38aJYDaz19JjyBMnedxAYgMLmYr59EFOZpPS2WtuAltqSsiyJai6xoSvwkb8Rje66I_KWBm44jsCrPEHHASIsYtl3xyz_CfvSKNn1lh_R90RrkJSq2xJkIVFZ4xH-5vbqe4XNnghyg1RBZxB8c5PkR5uS51dIUdVh_1zbYAZaqe29Q/s1181/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20221451.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="618" data-original-width="1181" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIePBUrmYd5wWG38aJYDaz19JjyBMnedxAYgMLmYr59EFOZpPS2WtuAltqSsiyJai6xoSvwkb8Rje66I_KWBm44jsCrPEHHASIsYtl3xyz_CfvSKNn1lh_R90RrkJSq2xJkIVFZ4xH-5vbqe4XNnghyg1RBZxB8c5PkR5uS51dIUdVh_1zbYAZaqe29Q/w640-h334/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20221451.png" width="640" /></a></div><br /></div><span><a name='more'></a></span><h2 style="text-align: left;"><b><span style="color: #990000;">取得 LINE Notify 存取權杖</span></b></h2>登入後點選頁面上方個人帳號,再選擇「個人頁面」項目。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNy1Y_hhwk2fCccAFQPL22YkjT8dwLRJ2iYNM_f6fEIQLkaoNGg_PI9TRaI6ZasOCERgmXtsbfU99msm1fW_KVtNGHnA0yPC_Q3Sl-SQ9xLiaH1U-hrWuRPmxABKKuE4JKk1SOGywwoLyRWgCvl09TWYu_5vJ7QnsIEPIjsF4A-NWVPNDtpjhGGzWqpg/s1176/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20222210.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="534" data-original-width="1176" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNy1Y_hhwk2fCccAFQPL22YkjT8dwLRJ2iYNM_f6fEIQLkaoNGg_PI9TRaI6ZasOCERgmXtsbfU99msm1fW_KVtNGHnA0yPC_Q3Sl-SQ9xLiaH1U-hrWuRPmxABKKuE4JKk1SOGywwoLyRWgCvl09TWYu_5vJ7QnsIEPIjsF4A-NWVPNDtpjhGGzWqpg/w640-h290/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20222210.png" width="640" /></a></div><br />捲動頁面尋找並點選「發行權杖」按鈕。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcQbXoXR-1lTGGZ8gnBLukCP_Fg86Ewa7x8of-OnL6V8SLSKK8tDbz5jrqfI7UAVdv5cG8y1mp1aVwJ78dzASvePLtzDOOr3YsREBfiCCZA0juMxw4d3kuXdes4vBy1vM-_zmnR-Oq4Eho7N_pHauJMcxL1-6R7hJuoqeFSYKsWfoRiUDM6xpQxMmHvg/s1178/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20222239.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="538" data-original-width="1178" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcQbXoXR-1lTGGZ8gnBLukCP_Fg86Ewa7x8of-OnL6V8SLSKK8tDbz5jrqfI7UAVdv5cG8y1mp1aVwJ78dzASvePLtzDOOr3YsREBfiCCZA0juMxw4d3kuXdes4vBy1vM-_zmnR-Oq4Eho7N_pHauJMcxL1-6R7hJuoqeFSYKsWfoRiUDM6xpQxMmHvg/w640-h292/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20222239.png" width="640" /></a></div><br />指定權杖名稱 ( 傳送通知訊息時所顯示的名稱 ),以及選擇訊息推播對象,可以是要一對一接收,也可以讓群組接收通知,本例使用一對一接收。按下「發行」按鈕。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw-CSHf445bErHnxcLh9ls-HDJ5KROslR7uj_j7EE_b7zArPOTfz6yIaCbSU1PKDVmdCmqrKhipoXJSmEtUe6V3W8PTmDRsrwPHN0M8SHmNtofNxTYeG9oVXgp6h0x6JeNEpLJhiket3aoWy__FUdI-xScqzPuAjT-ZgYGWeDPtMUKXHRBEwhnQUOGww/s1565/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20222459.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="799" data-original-width="1565" height="326" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw-CSHf445bErHnxcLh9ls-HDJ5KROslR7uj_j7EE_b7zArPOTfz6yIaCbSU1PKDVmdCmqrKhipoXJSmEtUe6V3W8PTmDRsrwPHN0M8SHmNtofNxTYeG9oVXgp6h0x6JeNEpLJhiket3aoWy__FUdI-xScqzPuAjT-ZgYGWeDPtMUKXHRBEwhnQUOGww/w640-h326/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20222459.png" width="640" /></a></div><div><br /></div>按下「發行」按鈕,手機上的 LINE 就會出現 LINE Notify 推播的「已發行個人存取權杖」訊息。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZeAlalB9HovUIC-Lrvi7LrhqVwiXZLzXvNVp8ueEjAtV14ORNWEd5SKF6Zzzct6LCyTCGgLJcOGXesGBMVDu0WsJFj8NlZzH_X3yIjt7GcY61cfhauwYLQNePV5Pg4u3nyZu-oqQ4RKtTdBvzHkbVIYpXHclIOUE7GF_-yQD2AMLoWb9xDxisk1b-cw/s1884/S__16580621.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="870" data-original-width="1884" height="296" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZeAlalB9HovUIC-Lrvi7LrhqVwiXZLzXvNVp8ueEjAtV14ORNWEd5SKF6Zzzct6LCyTCGgLJcOGXesGBMVDu0WsJFj8NlZzH_X3yIjt7GcY61cfhauwYLQNePV5Pg4u3nyZu-oqQ4RKtTdBvzHkbVIYpXHclIOUE7GF_-yQD2AMLoWb9xDxisk1b-cw/w640-h296/S__16580621.jpg" width="640" /></a></div><br /><br />回到申請頁面,按下「發行」按鈕,會出現一段權杖代碼,請複製這段代碼開個文字檔案貼上並儲存這段代碼,然後點選下方「關閉」按鈕。<b><span style="color: #cc0000;">權杖代碼「只會出現一次」,所以請務必小心保存</span></b>。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxq1weCQ3ADQiWafB09W0kjnqyLSHV5sk28CpyNX61PDtujDkuQ_EE_qKRLPdiBIIyDOu8LneCr4qv1Ma1PJVQN4y-A6E-B0VR799_9S2r5nsj7hDqfDZvqNVH0KC7F3ORy8u4PRpfELJ_L6eTOD1MCc9Uonm5gsrCb08NSI8DgBTSxKGyVAAFstCuxQ/s1180/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20223920.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="537" data-original-width="1180" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxq1weCQ3ADQiWafB09W0kjnqyLSHV5sk28CpyNX61PDtujDkuQ_EE_qKRLPdiBIIyDOu8LneCr4qv1Ma1PJVQN4y-A6E-B0VR799_9S2r5nsj7hDqfDZvqNVH0KC7F3ORy8u4PRpfELJ_L6eTOD1MCc9Uonm5gsrCb08NSI8DgBTSxKGyVAAFstCuxQ/w640-h292/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20223920.png" width="640" /></a></div><div><br /></div>按下「關閉」按鈕後就完成了權杖申請,在頁面的開頭就會出現我們自訂的連動服務。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLdtoQwDuMt1O8-GXtASt4vMuYkAGxijhuYO4mVVBl_v0WLh4KoVevQBPIDDk4Zljhvws8FLlGNNFBjnKxeFTeTzrIV7cR_H_-rGZQFweKy2ZWQ2v486bMxM2DQC5M0faDpSQInM-nMAIobsHb4_RubxenJmTCI-3iqI7pdsr22mQxWhy4lSsss7c7_Q/s1181/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20225315.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="618" data-original-width="1181" height="334" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLdtoQwDuMt1O8-GXtASt4vMuYkAGxijhuYO4mVVBl_v0WLh4KoVevQBPIDDk4Zljhvws8FLlGNNFBjnKxeFTeTzrIV7cR_H_-rGZQFweKy2ZWQ2v486bMxM2DQC5M0faDpSQInM-nMAIobsHb4_RubxenJmTCI-3iqI7pdsr22mQxWhy4lSsss7c7_Q/w640-h334/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-31%20225315.png" width="640" /></a></div><br />由於 LINE Notify 無法直接透過網頁前端的方式來發送訊息。<div><br /></div><div>>>以後端程式來進行 LINE Notify 訊息推播</div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-82214133484899356652024-03-11T04:48:00.000-07:002024-03-11T04:48:25.302-07:00物聯網雲端平台: Adafruit.IO 應用3 _取用金鑰與記錄物聯數據<div>在之前各單元已經學習過如何利用 ESP8266 MicroPython 網路HTTP傳輸 、 ESP8266 MicroPython 無線基地台連線、 Adafruit.IO 服務平台的申請使用,現在就來將這些相關學習串連起來。</div><div><br /></div><div>本實作將利用ESP8266建立無線網路連線將DHT11溫溼度模組所取得的溫濕度資料上傳到 Adafruit.IO 服務平台上加以記錄。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjyKlu5swidnzLdYKxYtLlYXoht_48VTZ7DcZi5oPEunH-19swS7uRQ832edRRtspJEAmnF7rh4FJRkVi82_sinJnjuaaaBhnJxInw-B6KY96RvqkyN_MStVUIPQh3OyN0FKoY0CNj3Sv3U0KrBj0fCbiI_v8hRhnD92j2FPk8uoPIEQSzwXQShQ4mQA/s1214/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20225634.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="655" data-original-width="1214" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjyKlu5swidnzLdYKxYtLlYXoht_48VTZ7DcZi5oPEunH-19swS7uRQ832edRRtspJEAmnF7rh4FJRkVi82_sinJnjuaaaBhnJxInw-B6KY96RvqkyN_MStVUIPQh3OyN0FKoY0CNj3Sv3U0KrBj0fCbiI_v8hRhnD92j2FPk8uoPIEQSzwXQShQ4mQA/w640-h346/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20225634.png" width="640" /></a></div></div><span><a name='more'></a></span><div><br /></div><div><span><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivGsFz5QkifW05ZwI8B-4n_ZFvP0dj91p-dZ-qrhyZM97SteJNysXKa5-CcSNM2FzeaqnR0ItM7Mf1RYlZLz_BfFedLkOxMNMXI-7LL8r1V4z2fp7Mg1MtiEuMHscWxTSWE0OP-MOY4PqX/s1600/14611.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivGsFz5QkifW05ZwI8B-4n_ZFvP0dj91p-dZ-qrhyZM97SteJNysXKa5-CcSNM2FzeaqnR0ItM7Mf1RYlZLz_BfFedLkOxMNMXI-7LL8r1V4z2fp7Mg1MtiEuMHscWxTSWE0OP-MOY4PqX/s320/14611.jpg" width="320" /></a></div><span style="color: #38761d;"><b>[[DHT11溫濕度測量模組]]</b></span><br />* Supply voltage: 3.3 ~ 5.5V DC<br />* Output: single-bus digital signal<br />* Measuring range: Humidity 20-90% RH, Temperature 0 ~ 50 ℃<br />* Accuracy: Humidity + -5% RH, temperature + -2 ℃<br />* Resolution: Humidity 1% RH, temperature 1 ℃<br />* Long-term stability: <± 1% RH / Year<span><!--more--></span></span></div><div><span><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgASbHSYY3ntC1vw0NLXt4yeiLuaiMXbeSwLIyK5klk90uPoLrqyTqlQ3oT8UDbPlLuWVe4NYeXbnKF6jms_97TLXIOt_c22c4xj6xzLIUp_6PQylsimf0fKgufC0l6lO6NdsaaX6Rh8TBnY015wTWmhHyDNQK5LJy8oVLDKgadC9yapXsUTU1VlVX9Xg/s4608/IMG_20220819_164529.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="2592" data-original-width="4608" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgASbHSYY3ntC1vw0NLXt4yeiLuaiMXbeSwLIyK5klk90uPoLrqyTqlQ3oT8UDbPlLuWVe4NYeXbnKF6jms_97TLXIOt_c22c4xj6xzLIUp_6PQylsimf0fKgufC0l6lO6NdsaaX6Rh8TBnY015wTWmhHyDNQK5LJy8oVLDKgadC9yapXsUTU1VlVX9Xg/s320/IMG_20220819_164529.jpg" width="320" /></a></div><span style="color: #351c75;"><b> [模組材料]</b></span> </div><div> 1. 8266 D1 mini x 1 </div><div> 2. DHT11溫溼度測量模組 x1 </div><div> 3. 杜邦連接線 x 3條</div><div><br /><span style="color: #cc0000;"><b>ESP32 與 OLED 接腳設定</b></span></div></span></div><div>【ESP8266】3.3V →【DHT11】VCC</div><div>【ESP8266】GND →【DHT11】GND</div><div>【ESP8266】D0 →【DHT11】DATA</div><div><br /></div><span></span><div><br /></div><div><br /></div><div><span style="color: #741b47;"><b>取得 Adafruit.IO 金鑰 (AIO KEY)</b></span></div><div>當我們想把資料上傳到 Adafruit.IO 的 FEED 資料欄位時,除了必要的使用者名稱 Username 外還需要金鑰 Active Key,這是最基本的身分認證資訊。所以當我們要把資料上傳時就必須同時送上專屬的 Username 與 Active Key。請登入 Adafruit.IO 後點選 <b>IO </b>頁籤-><b>My Key</b> 按鈕。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqiwMf7T9JRudD5UckdPJK3zsmaJJkdwJatgtM7oPDs5zXPnk0DAs1korvjdthXN47lNWasFF1WzmAboS2zZvQmXst_abtoNio_MUjVRZX89SY5CCbzNyFnV22evLt1yWFsa2p1av_njlGXqNKkeKVeZ6mjglcHgXSx2DE5t_PjUa-sLErMRxFsI-xbA/s1103/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20202536.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="464" data-original-width="1103" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqiwMf7T9JRudD5UckdPJK3zsmaJJkdwJatgtM7oPDs5zXPnk0DAs1korvjdthXN47lNWasFF1WzmAboS2zZvQmXst_abtoNio_MUjVRZX89SY5CCbzNyFnV22evLt1yWFsa2p1av_njlGXqNKkeKVeZ6mjglcHgXSx2DE5t_PjUa-sLErMRxFsI-xbA/w640-h270/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20202536.png" width="640" /></a></div><br /></div><div>在 YOUR ADAFRUIT IO KEY 畫面中即可見到最基本的身分認證資訊 Username 與 Active Key:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy5dxRtGqjrQtHgVwZKkTMbVbV2D4EiAwLAhhabu2Oka6-CD89Bl36E6VUc_2eMW0UM8jeutRVXxBKJsaCXb2KZszK5Cj-Y_nT-uKE2nCHL9T9_NgX2Lz2_PHlO6Sl7pG12l2Fbe9r3eQLNidLomMl9kjzAkhX5OVm2lnRmYjyQsdG6nASgXn17MAmnQ/s1133/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20203052.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="1133" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy5dxRtGqjrQtHgVwZKkTMbVbV2D4EiAwLAhhabu2Oka6-CD89Bl36E6VUc_2eMW0UM8jeutRVXxBKJsaCXb2KZszK5Cj-Y_nT-uKE2nCHL9T9_NgX2Lz2_PHlO6Sl7pG12l2Fbe9r3eQLNidLomMl9kjzAkhX5OVm2lnRmYjyQsdG6nASgXn17MAmnQ/w640-h346/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20203052.png" width="640" /></a></div><br /></div><div>上傳資料的HTTP POST請求格式如下:</div><pre class="code prettyprint">https://io.adafruit.com/api/{Username}/feeds/{feed_key}/data/data?X-AIO-Key={<span style="font-family: MingLiU; white-space: normal;">Active Key</span>}
</pre>
<pre class="code prettyprint">https://io.adafruit.com/api/{使用者名稱}/feeds/{Feeds key欄位值}/data?X-AIO-Key={金鑰}
</pre>
格式中的參數{Username}、{Active Key}請替換成正確的身分認證資訊 Username 與 Active Key,{feed_key}參數請使用 Feeds 的 key 欄位值,如下圖所示:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia6aFiD_KEv4Yg040QiGsSov21cNhn_ZTp276mJC3_Kr96sfdyYj4SXGZPK3AMlkheMt4Xwg3C-LXq84T0K8bCXcWZGmYLUJQFFGGE5j5IOPFAZDl0-chFQuPEEeGcjpdn_rhOps3MycRaXc8ycD0K9d258gTMtP_gg85MUZ4ZSNHlG0lPjli9nlRWqg/s1133/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20211020.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="1133" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia6aFiD_KEv4Yg040QiGsSov21cNhn_ZTp276mJC3_Kr96sfdyYj4SXGZPK3AMlkheMt4Xwg3C-LXq84T0K8bCXcWZGmYLUJQFFGGE5j5IOPFAZDl0-chFQuPEEeGcjpdn_rhOps3MycRaXc8ycD0K9d258gTMtP_gg85MUZ4ZSNHlG0lPjli9nlRWqg/w640-h346/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20211020.png" width="640" /></a></div><br /><span style="color: #274e13;"><b>撰寫實驗程式如下:
</b></span><pre class="code prettyprint">from machine import Pin
import dht, utime, urequests, network, ujson
sensor = dht.DHT11(Pin(16))
#指定 Adafruit.IO 使用者名稱與金鑰
IO_USERNAME="{使用者名稱}"
IO_KEY="{金鑰}"
FEED1="wen-du" #溫度FEED資料欄位的key值
FEED2="shi-du" #濕度FEED資料欄位的key值
#設定網路連線帳號密碼
SSID = "<wifi>" # WiFi名稱
PASSWORD = "<wifi>" # WiFi密碼
#自訂無線基地台連線函式
def connect_wifi(ssid, passwd):
sta = network.WLAN(network.STA_IF)
sta.active(True)
if not sta.isconnected():
print("連線中... \n")
sta.connect(ssid, passwd)
while not sta.isconnected():
pass
print("連線成功... \n")
#進行網路連線
connect_wifi(SSID, PASSWORD)
try:
while 1:
sensor.measure()
print("溫度: ", sensor.temperature())
print("溼度: ", sensor.humidity())
#建立與Adafruit.IO服務器間的標頭交換資訊,因為Adafruit IO 服務器會在標頭中查找 Adafruit IO Key
headers = {'X-AIO-Key': IO_KEY, 'Content-Type': 'application/json'}
#上傳溫度
url = "https://io.adafruit.com//api/v2/"
url += IO_USERNAME #使用者名稱
url += "/feeds/" + FEED1 #寫入溫度資料的FEED Key
url += "/data"
data1= {"value": str(sensor.temperature())} #溫度
urequests.post(url,json=data1, headers=headers) #將資料寫雲端平台
#上傳濕度
url = "https://io.adafruit.com//api/v2/"
url += IO_USERNAME #使用者名稱
url += "/feeds/" + FEED2 #寫入濕度資料的FEED Key
url += "/data"
data2 = {"value": str(sensor.humidity())} #濕度
urequests.post(url,json=data2, headers=headers) #將資料寫雲端平台
print("_______________")
utime.sleep_ms(180000) #3分鐘後重複執行迴圈
except Exception as e: print(e)
</wifi></wifi></pre>程式在Thonny執行畫面如下:<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6yR_TyaVqSJJ5KMvWhLDctXsD6O1q0HE3mOU7ybx3UUEyQSBsJ9dnCdpFsq0X1ubejdlbmPNWgNa9s9FgHvh5-psgMuMBcH7RJKH1Vn222-22m2b5XpYeCxpwMKbhLcRLYIDqPYJqaZKc7v-OTJ0rZQdCD3PnGQQ1pzo2jIhj1WgrZL65elBC8AfFrQ/s1161/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20224142.png" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="651" data-original-width="1161" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6yR_TyaVqSJJ5KMvWhLDctXsD6O1q0HE3mOU7ybx3UUEyQSBsJ9dnCdpFsq0X1ubejdlbmPNWgNa9s9FgHvh5-psgMuMBcH7RJKH1Vn222-22m2b5XpYeCxpwMKbhLcRLYIDqPYJqaZKc7v-OTJ0rZQdCD3PnGQQ1pzo2jIhj1WgrZL65elBC8AfFrQ/s600/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20224142.png" width="600" /></a></div>當上列程式碼順利執行後,取得的溫溼度資料就會上傳到 Adafruit.IO 服務平台加以記錄,在 IO->FEED 頁籤畫面中即可看到已記錄的最後資料值與最後記錄時間。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_O9ROLkAz1k9MfsgkGXmEu3i0CltGhOZkrzynUeHqXhfu7jzBrPMQG4hdBS03oa3WN25NJU8uZYkDr_XQu4Ljguc3yixfSxd6SA62olLx9auQY6CFK8mApJwVN3S8080Gg2WFuppV2q7TUopp14uZ7S6Dg_P5-Pht3NYuaoRFCtWN8myFY-jkItbmgw/s1133/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20224754.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="1133" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_O9ROLkAz1k9MfsgkGXmEu3i0CltGhOZkrzynUeHqXhfu7jzBrPMQG4hdBS03oa3WN25NJU8uZYkDr_XQu4Ljguc3yixfSxd6SA62olLx9auQY6CFK8mApJwVN3S8080Gg2WFuppV2q7TUopp14uZ7S6Dg_P5-Pht3NYuaoRFCtWN8myFY-jkItbmgw/w640-h346/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20224754.png" width="640" /></a></div><div><br /></div><div>先點選 IO-->Dashboards 頁籤,再點選相對應的儀表板項目即可看到由FEED欄位資料所轉換成的圖表,本例為:花園溫溼度記錄。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0C560GjXM433vPiY9aT8Ep6yBLxQa3Ysn4hL0QX-60UhlKiq0UbtPugoqGxJote96MSSlSwsDaXU18HzcYRO4lsDKZIy2JsBnStx-IyO_OljE3w-tO9_YUojgG9mRzHQ9UFS8HdmGE370g0qPNw69oDYJl5SRj8jWU4LYR9HY9R2jY19u1BOflNhfiA/s1100/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145433.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="436" data-original-width="1100" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0C560GjXM433vPiY9aT8Ep6yBLxQa3Ysn4hL0QX-60UhlKiq0UbtPugoqGxJote96MSSlSwsDaXU18HzcYRO4lsDKZIy2JsBnStx-IyO_OljE3w-tO9_YUojgG9mRzHQ9UFS8HdmGE370g0qPNw69oDYJl5SRj8jWU4LYR9HY9R2jY19u1BOflNhfiA/w640-h254/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145433.png" width="640" /></a></div><div><br /></div><div><a href="https://www.twbts.work/2022/08/adafruitio-1-feed.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用1 _帳號申請與新增 FEED</a></div><div><div><a href="https://www.twbts.work/2022/09/adafruitio-2.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用2 _建立儀錶板與圖表區塊</a></div><div><a href="https://www.twbts.work/2022/09/adafruitio-3.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用3 _取用金鑰與記錄物聯數據</a></div></div></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-42623223867253029442024-03-01T20:47:00.000-08:002024-03-01T20:47:06.034-08:00物聯網雲端平台: Adafruit.IO 應用2 _建立儀錶板與圖表區塊順利完成 Adafruit.IO 免費帳號申請與新增FEED資料記錄欄位後,接著就可新增儀表板,所謂的儀表板其實就是將FEED資料記錄欄位內的資料由平凡的數字轉換成圖表來顯示。<div><br /></div><div>先點選 IO-->Dashboards 頁籤。再點選畫面中的 New Dashboard 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG6xfXfWhUiXiOEYwg-VNvdxoqFIGMY_Hvh7_xN0sQ7PhHJLZRRzgZmupJkzqen6hUGcdZBeLEwN-UxMNQYzU_tOmmJ34PH65fcQGQnfZPfkN2SbRPrZZlBfmoVo3Doymo0kzfpsgON8tTPi6z-WJfYMm61487V8tuqMfBithDgqG74ljGSKpOiJNOTQ/s1125/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20144828.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="631" data-original-width="1125" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiG6xfXfWhUiXiOEYwg-VNvdxoqFIGMY_Hvh7_xN0sQ7PhHJLZRRzgZmupJkzqen6hUGcdZBeLEwN-UxMNQYzU_tOmmJ34PH65fcQGQnfZPfkN2SbRPrZZlBfmoVo3Doymo0kzfpsgON8tTPi6z-WJfYMm61487V8tuqMfBithDgqG74ljGSKpOiJNOTQ/w640-h358/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20144828.png" width="640" /></a></div><br /><div><span><a name='more'></a></span>在 Name 欄位填儀表板的名稱,本例填入"花園溫溼度記錄"。再按下 Create 按鈕。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpUZq9TlYfWmzZA-ScNOYabttm4Az-WD6uthiy_Lcf8_U3N0kgD0iUuV4bMXiNDrpa0GcAgk8BV6gv4Z2nWuGFPbh3LBQSLDMHlcsBpcMWQ_UIn05woXVvpk7yTVaDatujCNjE-3MqlzMNz8g_O8wLnBcJin1Ni-pLYnphctb92kK87Kxe4DUFV59aIA/s1125/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145225.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="631" data-original-width="1125" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpUZq9TlYfWmzZA-ScNOYabttm4Az-WD6uthiy_Lcf8_U3N0kgD0iUuV4bMXiNDrpa0GcAgk8BV6gv4Z2nWuGFPbh3LBQSLDMHlcsBpcMWQ_UIn05woXVvpk7yTVaDatujCNjE-3MqlzMNz8g_O8wLnBcJin1Ni-pLYnphctb92kK87Kxe4DUFV59aIA/w640-h358/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145225.png" width="640" /></a></div><br /></div><div>新增的"花園溫溼度記錄"儀表板出現在列表中,請點選超連結來新增區塊。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhANy_latot7gPdpsIWtUoj8-6MVdOdgr4OqzSuSBbBlQX2rXAUlcooGIU3ChOpHILGvt7gxSILXz9e8JWRWOV8W0nJcuT_oMFrmciBhly5FG4Zwa81III-5LVFtKbM_9b6KQ5MJG3ti45x8P_I909H24OIs2OE3UtVwrx_vnQ21x1vOEZM5gUrff8kIw/s1100/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145433.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="436" data-original-width="1100" height="254" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhANy_latot7gPdpsIWtUoj8-6MVdOdgr4OqzSuSBbBlQX2rXAUlcooGIU3ChOpHILGvt7gxSILXz9e8JWRWOV8W0nJcuT_oMFrmciBhly5FG4Zwa81III-5LVFtKbM_9b6KQ5MJG3ti45x8P_I909H24OIs2OE3UtVwrx_vnQ21x1vOEZM5gUrff8kIw/w640-h254/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145433.png" width="640" /></a></div><br /><div>點選畫面中齒輪向上箭頭的按鈕,再點選 Create New Block 項目連結。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkVOHLDKn6Ae0Q4SHksQQy_lbK48m5CZ6fy3qkRMDjsGEu-EGlzmgZTmTmnwAElcAQKDDp_RFTaH1Rk6JefxHNPmS0eeWkjgACQ6SIttfeMvB2O8Z2h7J7CDUjHReBg6lQXtXu7N6jj4eYLhSVhI_atge_Ll1nSByOhtV_YkJ7EyHBtIDq-LWS60vsHQ/s1125/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145529.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="631" data-original-width="1125" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkVOHLDKn6Ae0Q4SHksQQy_lbK48m5CZ6fy3qkRMDjsGEu-EGlzmgZTmTmnwAElcAQKDDp_RFTaH1Rk6JefxHNPmS0eeWkjgACQ6SIttfeMvB2O8Z2h7J7CDUjHReBg6lQXtXu7N6jj4eYLhSVhI_atge_Ll1nSByOhtV_YkJ7EyHBtIDq-LWS60vsHQ/w640-h358/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145529.png" width="640" /></a></div><br /></div><div>選取 Line Char 新增折線圖區塊。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ9q6uunpOLSvERV7JHHBKq2R4WA0oUu86Oo9UpyLDciJtpNTaEeF2NsRWbkrLVCUqYni9wbtooHBDsM-bBHoMq36I2b8JHIxdDha4irY6J4exwvycwOhd7UiDustmcpdYqx6Xtf45Itp23MK10MJD8KjXvkLPfKKlTxIXjsGAhWD8uK6GAOqX4W4kjQ/s1125/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145604.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="631" data-original-width="1125" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ9q6uunpOLSvERV7JHHBKq2R4WA0oUu86Oo9UpyLDciJtpNTaEeF2NsRWbkrLVCUqYni9wbtooHBDsM-bBHoMq36I2b8JHIxdDha4irY6J4exwvycwOhd7UiDustmcpdYqx6Xtf45Itp23MK10MJD8KjXvkLPfKKlTxIXjsGAhWD8uK6GAOqX4W4kjQ/w640-h358/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145604.png" width="640" /></a></div><br /></div><div>勾選折線圖區塊對應的FEED資料來源項目,本例勾選"溫度"。按下 Next step 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijnef3hQLhIIMRCCWxbTsVBM2DcB3OJQBjn34pIFr3A_xReVN60tZSlfJZWDZoehTX1ARRZ_JILgp3Mup6ukTujRGvBgr252BYBEFUAtjfyiqUMQStF2UhPrcM45QGgrDwhuvsXHW3yXuMKYpdJnLoBuWnaqOa-w6WJyv_2WhiK3e0X7-_rrooTc03Uw/s1147/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145651.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="684" data-original-width="1147" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijnef3hQLhIIMRCCWxbTsVBM2DcB3OJQBjn34pIFr3A_xReVN60tZSlfJZWDZoehTX1ARRZ_JILgp3Mup6ukTujRGvBgr252BYBEFUAtjfyiqUMQStF2UhPrcM45QGgrDwhuvsXHW3yXuMKYpdJnLoBuWnaqOa-w6WJyv_2WhiK3e0X7-_rrooTc03Uw/w640-h382/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145651.png" width="640" /></a></div><br /><div>接著在 Block settings 畫面中的 Block Title欄位中輸入區塊名稱,本例為"花園溫度記錄"。名稱輸入完畢後按下畫面最下方的 Create block 按鈕。</div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNj0nm7MWOcoqY4_E9pWFjbcUowDAi19AUbHZ52PXf389wZJMmKoj_uC9mE7kkWIF5WnvWOHzRI2RVDsaiQY5qqpHTZS3meJpuxUWVT03f_YP7mHMZKq_-e3XN3Q020AX26ZObarJrllkKUStaWDhsOsr2TZU54pWTZ9H7Ef_FNeVLz-GPdeWwscYrOA/s1147/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145746.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="684" data-original-width="1147" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNj0nm7MWOcoqY4_E9pWFjbcUowDAi19AUbHZ52PXf389wZJMmKoj_uC9mE7kkWIF5WnvWOHzRI2RVDsaiQY5qqpHTZS3meJpuxUWVT03f_YP7mHMZKq_-e3XN3Q020AX26ZObarJrllkKUStaWDhsOsr2TZU54pWTZ9H7Ef_FNeVLz-GPdeWwscYrOA/w640-h382/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145746.png" width="640" /></a></div><br /></div><div>完成名為"花園溫度記錄"的折線圖區塊新增動作。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaYTzVWMVJAWm3cqsXzMvRzoygHHAJEYfpQ1NHSzrR6XjKpFnEywHYPJu7ysyJA_PyzZRHdvcXMcPXEI_mpRwCgxq8Mo0X8QU4bVcQOds7sWcZcIFOKsm9hJblaS-WyeO3XpBj9XZ3EMykzrrhN1NytQQuC2bIz_m_a8-hLMSp4N0cQeVSyczM-o0EgA/s1147/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145805.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="684" data-original-width="1147" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaYTzVWMVJAWm3cqsXzMvRzoygHHAJEYfpQ1NHSzrR6XjKpFnEywHYPJu7ysyJA_PyzZRHdvcXMcPXEI_mpRwCgxq8Mo0X8QU4bVcQOds7sWcZcIFOKsm9hJblaS-WyeO3XpBj9XZ3EMykzrrhN1NytQQuC2bIz_m_a8-hLMSp4N0cQeVSyczM-o0EgA/w640-h382/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20145805.png" width="640" /></a></div><br /></div><div>請讀者自行練習在"花園溫溼度記錄"儀表板中再新增一個名為"花園溼度記錄"的儀表板區塊。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl8AIjlaGnzBFJWm7GV-Nf1glmZByElY_LxlPSJj_Mpirvg9Ypckk5jWVsr2i4G0loji-e5u_AbVh0XSp_k-Khm_rWHaS_vTEbLQMqTdK0-eAVC1ISrsadMk1l8ZSTTVWosYfU4DCcNSblkkBQFjfeIIFEcoUs5qPgEP79EHE1-WQr__F7Ho5Z6MZu_A/s1116/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20151556.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="870" data-original-width="1116" height="498" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl8AIjlaGnzBFJWm7GV-Nf1glmZByElY_LxlPSJj_Mpirvg9Ypckk5jWVsr2i4G0loji-e5u_AbVh0XSp_k-Khm_rWHaS_vTEbLQMqTdK0-eAVC1ISrsadMk1l8ZSTTVWosYfU4DCcNSblkkBQFjfeIIFEcoUs5qPgEP79EHE1-WQr__F7Ho5Z6MZu_A/w640-h498/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20151556.png" width="640" /></a></div><br /></div><div><br /></div><div><a href="https://www.twbts.work/2022/08/adafruitio-1-feed.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用1 _帳號申請與新增 FEED</a></div><div><div><a href="https://www.twbts.work/2022/09/adafruitio-2.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用2 _建立儀錶板與圖表區塊</a></div><div><a href="https://www.twbts.work/2022/09/adafruitio-3.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用3 _取用金鑰與記錄物聯數據</a></div></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-34665218302871700372024-02-25T19:51:00.000-08:002024-02-25T19:51:56.521-08:00物聯網雲端平台: Adafruit.IO 應用1 _帳號申請與新增 FEED
Adafruit IO是一個免費/付費的IoT平台,提供數據雲端化、圖像化的服務整合讓使用者自由定義傳輸上去的資料內容,只要完成註冊並新增FEED就可以建立儀表板來新增折線圖表,例如將物聯感測器的數據上傳並顯示統計圖表。<div><br /></div><div> Adafruit IO除了支援MQTT(S)、HTTP(S)、WebSocket外,也提供多樣化的API供使用者使用,大部分程式語言都可以透過HTTP或MQTT協定對AdafruitIO存取。</div><div><br /></div><div><span style="color: #351c75;"><b>申請Adafruit.IO 帳號</b></span></div><div>進入<a href="https://io.adafruit.com/" target="_blank">Adafruit.IO</a>官網,點選右上角的 Get Started for Free 的連結,進入註冊畫面。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi9qC3a4hv5BaAxaop-0WCi-QB2vSkP-ekcOnudJaky4G3p5uLsCHS4BQHLUX2NKLMjP2bJxutSnaOIg6JtuXvVyqJCR-23_Wz9k67XpiyHmaqxcQWLZqOYDrgZgdmpHqRbacqhSj9u00SPSEirBMUono6Ly6T24Fp6U84U5vAENJkrF-7Ofi7sZXC_g/s1255/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20131920.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="1255" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi9qC3a4hv5BaAxaop-0WCi-QB2vSkP-ekcOnudJaky4G3p5uLsCHS4BQHLUX2NKLMjP2bJxutSnaOIg6JtuXvVyqJCR-23_Wz9k67XpiyHmaqxcQWLZqOYDrgZgdmpHqRbacqhSj9u00SPSEirBMUono6Ly6T24Fp6U84U5vAENJkrF-7Ofi7sZXC_g/w640-h292/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20131920.png" width="640" /></a></div><br /><div><span><a name='more'></a></span>依序填寫名字、姓氏、電子信箱、使用者帳秘等資訊後,按下 CREATE ACCOUNT 按鈕建立帳號,下左圖。帳號資料輸入完成並按下CREATE ACCOUNT 按鈕後就完成免費帳號申請,畫面如下右圖。</div><table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw1cCblIU2fdKWuQZ7CgYs7iM5IbuKPz1FoxGWxVuQSLF9HxPIM00HYDIF7GRiBZ9QbeuKs1w_EIlHUNMPp8Uyu1v_DfEu5iHGz7m2RJD7DtUr2sDdS7y0ZH_3M_F0ghaDRaIMeCQZrKGxbntd7wR67gUHmJA7IkNoT96tyl0FWpFTACeT7TrThWErtw/s808/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20135659.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="808" data-original-width="774" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjw1cCblIU2fdKWuQZ7CgYs7iM5IbuKPz1FoxGWxVuQSLF9HxPIM00HYDIF7GRiBZ9QbeuKs1w_EIlHUNMPp8Uyu1v_DfEu5iHGz7m2RJD7DtUr2sDdS7y0ZH_3M_F0ghaDRaIMeCQZrKGxbntd7wR67gUHmJA7IkNoT96tyl0FWpFTACeT7TrThWErtw/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20135659.png" width="307" /></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB5IUNz3_sW0coK4AgatEqdtcKXv9i67ypdD4NSt0S1htrAI7ANtOnJgdK4d3TSmSIw-0NpdLTofob1oIKNZVuQY0z427s6XZYXq7sMXun2lmzVkVZPfBStNJrcflaaknVlupduUilbaN6t5nn1TGahFyyYzQoP89FlP5AfQePD3JIilsCKXWifbf3Ug/s1096/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20135954.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="616" data-original-width="1096" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB5IUNz3_sW0coK4AgatEqdtcKXv9i67ypdD4NSt0S1htrAI7ANtOnJgdK4d3TSmSIw-0NpdLTofob1oIKNZVuQY0z427s6XZYXq7sMXun2lmzVkVZPfBStNJrcflaaknVlupduUilbaN6t5nn1TGahFyyYzQoP89FlP5AfQePD3JIilsCKXWifbf3Ug/w400-h225/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20135954.png" width="400" /></a></div><br /></td></tr></tbody></table>註冊後,註冊時登記的信箱也會收到一封電子信箱的確認信,請記得依照信中說明進行確認。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRMeEZqUAhyqtfCA4vuTCmu7V4kPWprXyAGANe9MvQkJzMotF168EiLUoUl_DXcz59Xzj_LjAU5mwrXESXUq2kX_cwKV6bGtrMYOEjkjXhIiB5oHANiJiX-nbcuxgqxTJuEe4sDIB8xPUZbpkbOQ7x-TL8zNBKglsdzaWAuFMGFdE20M9PksQGyl6-Ug/s1096/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20141402.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="536" data-original-width="1096" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRMeEZqUAhyqtfCA4vuTCmu7V4kPWprXyAGANe9MvQkJzMotF168EiLUoUl_DXcz59Xzj_LjAU5mwrXESXUq2kX_cwKV6bGtrMYOEjkjXhIiB5oHANiJiX-nbcuxgqxTJuEe4sDIB8xPUZbpkbOQ7x-TL8zNBKglsdzaWAuFMGFdE20M9PksQGyl6-Ug/w640-h312/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20141402.png" width="640" /></a></div><br /><div><span style="color: #351c75;"><b>新增FEED</b></span></div><div>每一個FEED其實就是一個資料記錄欄位。</div><div>點選 IO 頁籤,再點選 Feeds 子頁籤。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinQqOshFzi2i2dtwSQYjn8aomsf13xU58_w8_UEToocYieo83z75kPao4O1tsiPMA15OcWn4uLrApl5gouyLjH5iPqzIKRGQcc2XaAtvyGbGk1Q8EIdysAJxerUIgYLuBEPHHdw7SWFXaTtXv8mslytEHL7YXt2yDUbaAabdXdjPQrpknWnOgtiwkmSA/s1096/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20141754.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="616" data-original-width="1096" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinQqOshFzi2i2dtwSQYjn8aomsf13xU58_w8_UEToocYieo83z75kPao4O1tsiPMA15OcWn4uLrApl5gouyLjH5iPqzIKRGQcc2XaAtvyGbGk1Q8EIdysAJxerUIgYLuBEPHHdw7SWFXaTtXv8mslytEHL7YXt2yDUbaAabdXdjPQrpknWnOgtiwkmSA/w640-h360/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20141754.png" width="640" /></a></div><div><br /></div>點選 New Feed 按鈕來新增FEED。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy-RIFvR-yVl11JupQO1SZl7iJd0TlPPauYekNZgLTwdhqcO7Q_wKiK4Cfh8RZGlA9GUnEFUo761UzhXzT_lLtnWrCb_ABcb9cKKKNsTGTHN55stwYw6ueuVv1MhOJi6Gx4sgL-BYS0YU_OdjsBd6ApSuUT-VliFbn-TVwloJ3IARH4w9Y8jaFEadOYg/s1096/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20142124.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="616" data-original-width="1096" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiy-RIFvR-yVl11JupQO1SZl7iJd0TlPPauYekNZgLTwdhqcO7Q_wKiK4Cfh8RZGlA9GUnEFUo761UzhXzT_lLtnWrCb_ABcb9cKKKNsTGTHN55stwYw6ueuVv1MhOJi6Gx4sgL-BYS0YU_OdjsBd6ApSuUT-VliFbn-TVwloJ3IARH4w9Y8jaFEadOYg/w640-h360/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20142124.png" width="640" /></a></div><br /><div>在 Name 欄位填入FEED的名稱(資料記錄欄位的名稱),本例填入"溫度"。再按下 Create 按鈕。<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNJrFjbQ8ambJdLi8wqU2GxZFc4xC81uzNxBCGbRGAm8gHehbcWLsE6c4sH9aZZFg9tnxvPodndEHSQyUNDdzPICJw0siZ-gwA5I7VPtZ9mUfIpY-TcbT-QpHJ99iDD0cZ7SMfa8tAzFXsjg0ZMBDOcpUAnqu7uyDqILX1XkGBaNXjhALALdzSuGmckw/s1096/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20142752.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="616" data-original-width="1096" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNJrFjbQ8ambJdLi8wqU2GxZFc4xC81uzNxBCGbRGAm8gHehbcWLsE6c4sH9aZZFg9tnxvPodndEHSQyUNDdzPICJw0siZ-gwA5I7VPtZ9mUfIpY-TcbT-QpHJ99iDD0cZ7SMfa8tAzFXsjg0ZMBDOcpUAnqu7uyDqILX1XkGBaNXjhALALdzSuGmckw/w640-h360/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20142752.png" width="640" /></a></div><br /><div>成功新增名為"溫度"的FEED資料記錄欄位。</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD6ircahCm1iE6PfcjdYonCQnE7IYKwEae0xYUrB8sJdkV4pV-YkJX4hw8EetHF9qQ8QtVus2olEObgPS_ZYXa_nXhTUIiI-f0mj3qdlmAkJ8MJd3nEvg4Y06cK5hhZywSskJ2z063LzqIB5Rup1753k2T9vM6MPcA_Wb6OTJloCrsCimeeNiydsxQzg/s1096/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20142823.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="616" data-original-width="1096" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD6ircahCm1iE6PfcjdYonCQnE7IYKwEae0xYUrB8sJdkV4pV-YkJX4hw8EetHF9qQ8QtVus2olEObgPS_ZYXa_nXhTUIiI-f0mj3qdlmAkJ8MJd3nEvg4Y06cK5hhZywSskJ2z063LzqIB5Rup1753k2T9vM6MPcA_Wb6OTJloCrsCimeeNiydsxQzg/w640-h360/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20142823.png" width="640" /></a></div><br /><div>請讀者自行練習再新增一個名為"濕度"的FEED資料記錄欄位。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEignDHdEcYC0WbdjF5BUIt9hWMYYnB738k-3ivWdHfKeB0iMrrvet_VcbHnghk-Oe0WpvUWCt8G2HIz12fzp2LcLwAP6l5tcTWk7sdquxjh5rpjnt_fl1q8J0F1eUBkC-pp2ZOBOPMoeQgN_d4Ej9nNC54LrK9IW7QqKl5rcRHTcW0vmDiqN2Ytdh76HA/s1125/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20143313.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="631" data-original-width="1125" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEignDHdEcYC0WbdjF5BUIt9hWMYYnB738k-3ivWdHfKeB0iMrrvet_VcbHnghk-Oe0WpvUWCt8G2HIz12fzp2LcLwAP6l5tcTWk7sdquxjh5rpjnt_fl1q8J0F1eUBkC-pp2ZOBOPMoeQgN_d4Ej9nNC54LrK9IW7QqKl5rcRHTcW0vmDiqN2Ytdh76HA/w640-h358/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-27%20143313.png" width="640" /></a></div><br /><div><div><a href="https://www.twbts.work/2022/08/adafruitio-1-feed.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用1 _帳號申請與新增 FEED</a></div><div><div><a href="https://www.twbts.work/2022/09/adafruitio-2.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用2 _建立儀錶板與圖表區塊</a></div><div><a href="https://www.twbts.work/2022/09/adafruitio-3.html" target="_blank">物聯網雲端平台: Adafruit.IO 應用3 _取用金鑰與記錄物聯數據</a></div></div></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-44524877596057395112024-02-16T02:28:00.000-08:002024-02-16T02:28:42.284-08:00利用雲端平台 ThingSpeak 記錄物聯數據<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgittxNIxrBWE2W6zh0yJBge02Wb6R6bsa3fijTSZEs5YiNNzvmNN1DtV5XdaAzhwoWvtWk4KKzM_r7O1VVJNUUBIRFCFD47jA1hsUAcuVOaD6zLPxU8-g9OV0JMuwgJMJlhOrMSob_g20ipZZg_SD6cM3nT17xaB-ybvZ8-NP8LnXgBUDKAWKdoZDtrQ/s4608/IMG_20220819_164529.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="2592" data-original-width="4608" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgittxNIxrBWE2W6zh0yJBge02Wb6R6bsa3fijTSZEs5YiNNzvmNN1DtV5XdaAzhwoWvtWk4KKzM_r7O1VVJNUUBIRFCFD47jA1hsUAcuVOaD6zLPxU8-g9OV0JMuwgJMJlhOrMSob_g20ipZZg_SD6cM3nT17xaB-ybvZ8-NP8LnXgBUDKAWKdoZDtrQ/s320/IMG_20220819_164529.jpg" width="320" /></a></div><div>在之前各單元已經學習過如何利用 ESP8266 MicroPython 網路HTTP傳輸 、 ESP8266 MicroPython 無線基地台連線、<a href="https://www.twbts.work/2022/08/thingspeak.html" target="_blank">ThingSpeak服務平台</a>的申請使用,現在就來將這些相關學習串連起來。</div><div><br /></div><div>本實作將利用ESP8266建立無線網路連線將DHT11溫溼度模組所取得的溫濕度資料上傳到 ThingSpeak 服務平台上加以記錄。</div><div><br /></div><div> [模組材料] </div><div>1. 8266 D1 mini x 1 </div><div>2. DHT11溫溼度測量模組 x1 </div><div>3. 杜邦連接線 x 3條<span><a name='more'></a></span><span><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivGsFz5QkifW05ZwI8B-4n_ZFvP0dj91p-dZ-qrhyZM97SteJNysXKa5-CcSNM2FzeaqnR0ItM7Mf1RYlZLz_BfFedLkOxMNMXI-7LL8r1V4z2fp7Mg1MtiEuMHscWxTSWE0OP-MOY4PqX/s1600/14611.jpg" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivGsFz5QkifW05ZwI8B-4n_ZFvP0dj91p-dZ-qrhyZM97SteJNysXKa5-CcSNM2FzeaqnR0ItM7Mf1RYlZLz_BfFedLkOxMNMXI-7LL8r1V4z2fp7Mg1MtiEuMHscWxTSWE0OP-MOY4PqX/s320/14611.jpg" width="320" /></a></div><span style="color: #38761d;"><b>[[DHT11溫濕度測量模組]]</b></span><br />* Supply voltage: 3.3 ~ 5.5V DC<br />* Output: single-bus digital signal<br />* Measuring range: Humidity 20-90% RH, Temperature 0 ~ 50 ℃<br />* Accuracy: Humidity + -5% RH, temperature + -2 ℃<br />* Resolution: Humidity 1% RH, temperature 1 ℃<br />* Long-term stability: <± 1% RH / Year<span><!--more--></span></span></div><div><span><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><span style="color: #cc0000;"><b><br /></b></span></div><div><span style="color: #cc0000;"><b>ESP32 與 OLED 接腳設定</b></span></div><div>【ESP8266】3.3V →【DHT11】VCC</div><div>【ESP8266】GND →【DHT11】GND</div><div>【ESP8266】D0 →【DHT11】DATA</div></span></div><div><br /></div><div><br /></div>撰寫實驗程式如下:<pre class="code prettyprint">from machine import Pin
import dht, utime, urequests, network
sensor = dht.DHT11(Pin(16))
#指定ThingSpeak寫入金鑰
WRITE_KEY = "<api>"
#設定網路連線帳號密碼
SSID = "<wifi>" # WiFi名稱
PASSWORD = "<wifi>" # WiFi密碼
#自訂無線基地台連線函式
def connect_wifi(ssid, passwd):
sta = network.WLAN(network.STA_IF)
sta.active(True)
if not sta.isconnected():
print("連線中... \n")
sta.connect(ssid, passwd)
while not sta.isconnected():
pass
print("連線成功... \n")
#進行網路連線
connect_wifi(SSID, PASSWORD)
try:
while 1:
sensor.measure()
print("溫度: ", sensor.temperature())
print("溼度: ", sensor.humidity())
url = "https://api.thingspeak.com/update?"
url += "api_key=" + WRITE_KEY #資料寫入金鑰
url += "&field1=" + str(sensor.temperature()) #溫度
url += "&field2=" + str(sensor.humidity()) #濕度
print("_______________")
urequests.get(url) #將資料寫雲端平台
utime.sleep_ms(60000) #一分鐘後重複執行迴圈
except Exception as e: print(e)
</wifi></wifi></api></pre>程式在Thonny執行畫面如下:<span style="color: #cc0000;">ThingSpeak 提供非商業使用的免費雲端服務,提供物聯網相關裝置的訊息紀錄之用,物聯裝置的免費商業使用限制訊息發送間隔必須大於15秒以上。</span><div><br /><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg52JxlaRku5AqeSBsWZjAAhsxt48IC7a6zyJmBtNd1mVIdT6c7e6jpZG7eV1riK7U6oVckqBWWsUMP65jLnHN1yRPs59uxdQYNxHDoEupyOn7Bg79d_d4ObmOJnQL33_yUvN8jMjz8jwFJnSUXGaTFpm2MQ6Bl1tUqJ5W7D3ft5mHJzlCxMkUteHuyVA/s997/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-19%20172643.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="613" data-original-width="997" height="394" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg52JxlaRku5AqeSBsWZjAAhsxt48IC7a6zyJmBtNd1mVIdT6c7e6jpZG7eV1riK7U6oVckqBWWsUMP65jLnHN1yRPs59uxdQYNxHDoEupyOn7Bg79d_d4ObmOJnQL33_yUvN8jMjz8jwFJnSUXGaTFpm2MQ6Bl1tUqJ5W7D3ft5mHJzlCxMkUteHuyVA/w640-h394/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-19%20172643.png" width="640" /></a></div><br />當上列程式碼順利執行後,取得的溫溼度資料就會上傳到 ThingSpeak 服務平台加以記錄,在 Private view 頁籤畫面中即可看到已記錄的資料圖表。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Ny_DWf4MofVZFExpTWzmW21trwUDZFb1xtasUaZuVrEYZPJQngWOHan1Q711GrO3hsPYU4dh2GKGckj070EVts7ESP8Ab4OqNrkqz0RV_brnT6JcPpvTYD4mnUw2NV6yllOaSZz98IdbiCGu9C7OCRhqv6KKLiLsZcmSezXv2sKtipNLUPoS2-J2sg/s1133/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-19%20171704.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="680" data-original-width="1133" height="384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6Ny_DWf4MofVZFExpTWzmW21trwUDZFb1xtasUaZuVrEYZPJQngWOHan1Q711GrO3hsPYU4dh2GKGckj070EVts7ESP8Ab4OqNrkqz0RV_brnT6JcPpvTYD4mnUw2NV6yllOaSZz98IdbiCGu9C7OCRhqv6KKLiLsZcmSezXv2sKtipNLUPoS2-J2sg/w640-h384/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-19%20171704.png" width="640" /></a></div><br /></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-60210592241724204782024-02-08T08:33:00.000-08:002024-02-08T08:33:55.055-08:00物聯網雲端平台: ThingSpeak<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK-OP97MwfaUGHeTDUTgw9LdjpwYwVcM--9TuwZCvYnrneZGxiQk8zgm05y2K2SgGIiWJf6eMN5CK0m0Pkx4DxLMkW70vWWxxbzCRwfhDbr9WROKZE1ljG_DIMFOaX3mJHDSuQyhwzyPXmmi0NdlI3UC1N1PxrYOvXnxp6ov3p-8cMfzLC83xTvhNJjQ/s1269/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20162653.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="732" data-original-width="1269" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK-OP97MwfaUGHeTDUTgw9LdjpwYwVcM--9TuwZCvYnrneZGxiQk8zgm05y2K2SgGIiWJf6eMN5CK0m0Pkx4DxLMkW70vWWxxbzCRwfhDbr9WROKZE1ljG_DIMFOaX3mJHDSuQyhwzyPXmmi0NdlI3UC1N1PxrYOvXnxp6ov3p-8cMfzLC83xTvhNJjQ/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20162653.png" width="320" /></a></div>ThingSpeak是用Ruby編寫的開源軟件,允許用戶與啟用Internet的設備進行通信。它通過為設備和社交網絡網站提供API來促進數據訪問,數據檢索和數據記錄。ThingSpeak最初由ioBridge在2010年推出,作為支持IoT應用程序的服務。 (維基百科)
<div><br /></div><div>ThingSpeak 提供非商業使用的免費雲端服務,提供物聯網相關裝置的訊息紀錄之用,物聯裝置的免費商業使用限制訊息發送間隔必須大於15秒以上。</div><div><br /></div><div>想使用平台服務當然得先加入會員,前往 <a href="https://thingspeak.com/" target="_blank">ThingSpeak</a> 首頁,按下左上角的人像圖形按鈕進入登入畫面,如下圖左,在按下其中的 Create one! 即可開始填寫會員加入資料,如下右圖。</div><table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SudghhbASiBKYZHk_zw_jsrHYyUxib9rgKU-Vl0iu_SqfWYe7e0VSbWAP9giSvyZqNeo6JkmKOiN48u6pyjtY51MuhMqSpyuMnTn7zBS_FLoOcpX7SHNJfFp8LlrUjnCrByOPIDFV_09wdB-odyhZ_o50u3JlnPdDyaHFiCQSAoC0PLZGERTsHIYkw/s1269/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20163029.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="732" data-original-width="1269" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1SudghhbASiBKYZHk_zw_jsrHYyUxib9rgKU-Vl0iu_SqfWYe7e0VSbWAP9giSvyZqNeo6JkmKOiN48u6pyjtY51MuhMqSpyuMnTn7zBS_FLoOcpX7SHNJfFp8LlrUjnCrByOPIDFV_09wdB-odyhZ_o50u3JlnPdDyaHFiCQSAoC0PLZGERTsHIYkw/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20163029.png" width="320" /></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIhX4wwIsE9OYe3vKlef0NdXPuCU5ukO23y0V-RQo095SmyWsH5fUdrOOnMsXHBYkWOvBtz8Yf2vLRDhWz-mrkRIUVcVyqk-KEzytyziioY3MdhbUlzPz4uWpEvJpIHFsuPJ6j3t9bXtKp2SNQP4TQlApDBl7_LCq6qTtHT9128doPpjikuZeHGnEY7Q/s1269/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20163116.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="732" data-original-width="1269" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIhX4wwIsE9OYe3vKlef0NdXPuCU5ukO23y0V-RQo095SmyWsH5fUdrOOnMsXHBYkWOvBtz8Yf2vLRDhWz-mrkRIUVcVyqk-KEzytyziioY3MdhbUlzPz4uWpEvJpIHFsuPJ6j3t9bXtKp2SNQP4TQlApDBl7_LCq6qTtHT9128doPpjikuZeHGnEY7Q/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20163116.png" width="320" /></a></div><br /></td></tr></tbody></table><span><a name='more'></a></span>註冊完畢別忘了收取驗證信進行註冊驗證。有了會員資格就可以開始使用 ThingSpeak 所提供的服務。<div><br /></div><div> ThingSpeak 資料除純單元叫做 Channel(通道) 其實就等同一張資料表,換個名稱而已,而這個 Channel(通道) 中的每一筆資料紀錄最多可以有8個欄位,假設我們要記錄場所的溫度與濕度變化,就可以建立一個 "溫溼度紀錄" 的 Channel(通道) ,而這個 Channel(通道) 裡有 "溫度" 、 "濕度" 兩個資料欄位。</div><div><br /></div><div>進入 ThingSpeak 首頁並登入,在 Channels 頁面中按下 New Channel 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixkXhMSqHf9PBW46CjJhX6TJpgRU4DM37TIwVSdSwm-r8ZeL_bTdH2wawcGzLBPrlNyZIPFiPL_3ia0x3eUdgqQ4LJliqOqnBeoe7fcq8C3RfXjo-imRcyd7CpLZ96Qc_-8MKVR30sADaHdcmGrJyck2pqUafFDsGwPmECOT4cInm4KjybG8PK-dJNqQ/s1092/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20165626.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="464" data-original-width="1092" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixkXhMSqHf9PBW46CjJhX6TJpgRU4DM37TIwVSdSwm-r8ZeL_bTdH2wawcGzLBPrlNyZIPFiPL_3ia0x3eUdgqQ4LJliqOqnBeoe7fcq8C3RfXjo-imRcyd7CpLZ96Qc_-8MKVR30sADaHdcmGrJyck2pqUafFDsGwPmECOT4cInm4KjybG8PK-dJNqQ/w640-h272/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20165626.png" width="640" /></a></div><div><br /></div>填寫 Channel(通道) 名稱,所勾所需的欄位數量並填上對應的欄位名稱。資料填寫完畢資後,將頁面捲到最下方,按下 Save Channel 按鈕。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5GWwud6vtfEtWgbLwv5Yl6ZNZHrM7uLSdVt8Th18HfRmIDyndMtGjARGp3AE1omN2GK7-NDBY0chm1UvbLKVAWpQGzY60-Bv4xty817lr2d10zak2CxXjn_A08nLYeAIx2OW969GAzBEdaWiVpGSJ6wVNraA7tkmtew8tid9HkxzqZsn4f6tayzOITQ/s1092/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20170211.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="464" data-original-width="1092" height="272" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5GWwud6vtfEtWgbLwv5Yl6ZNZHrM7uLSdVt8Th18HfRmIDyndMtGjARGp3AE1omN2GK7-NDBY0chm1UvbLKVAWpQGzY60-Bv4xty817lr2d10zak2CxXjn_A08nLYeAIx2OW969GAzBEdaWiVpGSJ6wVNraA7tkmtew8tid9HkxzqZsn4f6tayzOITQ/w640-h272/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20170211.png" width="640" /></a></div><br /><div>每一個 Channel(通道)都有一個對應的ID編號 (Channel ID) 與 Write API Key(等同寫入權限驗證碼),所以當我們要把資料上傳時就必須同時送上專屬的 API Key。建立好新 Channel(通道)後點選 API Keys 頁籤既可看到相關資料。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPU_GuKnfKLSNEg8yO9uYq-U0uiNYw8MaNeA7-1ghWkNkLWZmxPMdnTkQP2RC7Rq-8L3M1kYK2zi-tzWrpuHgod3MkqZtlu0PTx-AQ3Nf2PEefL57SqnleklMJ-bCZrUyN85v6fNXc2dMLZXo1gq8P1xQd2jlWoFXCKds0tKmY6eMyx_w5KZJV23njiw/s1081/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20170608.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="533" data-original-width="1081" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPU_GuKnfKLSNEg8yO9uYq-U0uiNYw8MaNeA7-1ghWkNkLWZmxPMdnTkQP2RC7Rq-8L3M1kYK2zi-tzWrpuHgod3MkqZtlu0PTx-AQ3Nf2PEefL57SqnleklMJ-bCZrUyN85v6fNXc2dMLZXo1gq8P1xQd2jlWoFXCKds0tKmY6eMyx_w5KZJV23njiw/w640-h316/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20170608.png" width="640" /></a></div><br /><div><h2 style="text-align: left;"><span style="color: #cc0000;">測試數據傳送</span></h2><div>當我們想把資料送交 ThingSpeak 寫入到 Channel(通道)中。可以利用查詢字串的方式(GET)來做,也就是進行網址的組合:</div></div><div><br /></div><div><b>平台網址 <span style="color: #2b00fe;">?</span> 參數1=參數值1 <span style="color: #2b00fe;">&</span> 參數2=參數值2 <span style="color: #2b00fe;">&</span> 參數2=參數值2 <span style="color: #2b00fe;">&</span> 參數3=參數值3</b></div><div>以本例來說,兩個參數溫度與濕度,所以網址就是<pre class="code prettyprint">GET https://api.thingspeak.com/update?api_key=專屬金鑰&field1=溫度值&field2=濕度值</pre></div>
每傳送一筆資料就會回傳該筆資料紀錄的編號數字,例如第一筆就是1,第十筆就是10,但如果回傳是0就代表發生寫入錯誤。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5M7wu-lr-NxUSGY6o0_h1iyktgQ91BZzaJRVSpVwZ0hVNml56G2uLlLMxMKd4dmdxbETG0Y_Df_fYO8BT5SfU1cnkA661RTTcnkq6dpM_xt_a8GrxY6OSZc7DpHd_ekrS2hV04G0LD47C4w1OFIy7oHfP3KevOeI_xTHIeJJkZyzMFOI7pE-69W4FDw/s972/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20173709.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="157" data-original-width="972" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5M7wu-lr-NxUSGY6o0_h1iyktgQ91BZzaJRVSpVwZ0hVNml56G2uLlLMxMKd4dmdxbETG0Y_Df_fYO8BT5SfU1cnkA661RTTcnkq6dpM_xt_a8GrxY6OSZc7DpHd_ekrS2hV04G0LD47C4w1OFIy7oHfP3KevOeI_xTHIeJJkZyzMFOI7pE-69W4FDw/w640-h104/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20173709.png" width="640" /></a></div><div><br /></div><span style="color: #ffa400;">免費商業使用限制訊息發送間隔必須大於15秒以上</span>。試著傳送幾筆資料後即可在 Private view 頁籤畫面中看到資料圖表。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT877gOsmPXjqQCaY6-P98NJfTuXT844b8jkCZ55OrwbxHX8Ry-dhyZejivaojNRwz8ZMveA1ChLVTp_A6yIdtilDDKqfXqBlcC0xhjzGtmMyF5KJH8NLqAO6ZJAUydXNPWM8yYEzPhVhG329HxqA5w-FI7IbJUAAV2zum2z0Fmeg1ogQfOqHNNbMdrQ/s1286/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20174544.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="799" data-original-width="1286" height="398" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT877gOsmPXjqQCaY6-P98NJfTuXT844b8jkCZ55OrwbxHX8Ry-dhyZejivaojNRwz8ZMveA1ChLVTp_A6yIdtilDDKqfXqBlcC0xhjzGtmMyF5KJH8NLqAO6ZJAUydXNPWM8yYEzPhVhG329HxqA5w-FI7IbJUAAV2zum2z0Fmeg1ogQfOqHNNbMdrQ/w640-h398/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-02%20174544.png" width="640" /></a></div><br />東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-71888445809216951462024-01-31T06:27:00.000-08:002024-01-31T06:27:24.815-08:00使用IFTTT觸發服務以Email傳送天氣資料在之前各單元已經學習過如何 <a href="https://www.twbts.work/2022/07/esp8266-micropython.html" target="_blank">利用 ESP8266 MicroPython 取得氣象網站的天氣開放資料</a> 、 <a href="https://www.twbts.work/2022/07/esp8266-micropython-http.html" target="_blank">ESP8266 MicroPython 網路HTTP傳輸</a> 、 <a href="https://www.twbts.work/2022/06/esp8266-micropython.html" target="_blank">ESP8266 MicroPython 無線基地台連線</a> 配合IFTTT 服務平台得申請使用,現在就來將這些相關學習串連起來。<div><br /></div><div>本實作將利用ESP8266建立無線網路連線取得 openweathermap 氣象網站的資料,並將相關的項資料透過 IFTTT 服務平台將天氣資料透過 EMail 寄送給特定對象。<table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRIuay7QecgyUOFjhiXx0yX82Z9v-u351QGWEHWTZqiqBzpaJeeKMx69Lnd_ItsGXSiy4YS1sUbU6wBXpJN7fWPz2zofp2JXBoda2cw7MmyM0AZZxmIQTVnPvgGiWlGgEygVkiyIc2aGPoJD0VgWsa3IovMfcb8y2FVdCHYVx7p6FXzP-J80__gFEA0A/s854/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-01%20155859.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="483" data-original-width="854" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRIuay7QecgyUOFjhiXx0yX82Z9v-u351QGWEHWTZqiqBzpaJeeKMx69Lnd_ItsGXSiy4YS1sUbU6wBXpJN7fWPz2zofp2JXBoda2cw7MmyM0AZZxmIQTVnPvgGiWlGgEygVkiyIc2aGPoJD0VgWsa3IovMfcb8y2FVdCHYVx7p6FXzP-J80__gFEA0A/w320-h181/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-01%20155859.png" width="320" /></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwk3_ezhmMczERNtttJeMbwcySPIPRszgPvHyBVdO5XvCnV6uSaUdXvK5Vdxq5EXK24oR14gG3NYGcR81SPvm0IDT3C2TUfSLddg17pOzb3GuuplbcE1m4rbUV_7R0ujvIGmMdDZ5-UD4FoQ2fw_3YOGJ0Bm1_rmSGi6ViU1MqXlC5LzM-XxFjoyITxg/s854/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-01%20155721.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="483" data-original-width="854" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwk3_ezhmMczERNtttJeMbwcySPIPRszgPvHyBVdO5XvCnV6uSaUdXvK5Vdxq5EXK24oR14gG3NYGcR81SPvm0IDT3C2TUfSLddg17pOzb3GuuplbcE1m4rbUV_7R0ujvIGmMdDZ5-UD4FoQ2fw_3YOGJ0Bm1_rmSGi6ViU1MqXlC5LzM-XxFjoyITxg/w320-h181/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-01%20155721.png" width="320" /></a></div><br /></td></tr></tbody></table><span><a name='more'></a></span>撰寫實驗程式如下:
<pre class="code prettyprint">from urlencode import urlencode
import network
import urequests, ujson
#網路天氣URI參數設定與組合
API_key = "<api>"
area = "Taipei,TW"
url = "https://api.openweathermap.org/data/2.5/weather?"
url += "q=" + area # 城市與國別
url += "&units=metric&lang=zh_tw" # 溫度單位、語言
url += "&appid=" + API_key
#指定IFTTT服務金鑰
#IFTTT_KEY = "<api>"
#設定網路連線帳號密碼
SSID = "<wifi>" # WiFi名稱
PASSWORD = "<wifi>" # WiFi密碼
#自訂無線基地台連線函式
def connect_wifi(ssid, passwd):
sta = network.WLAN(network.STA_IF)
sta.active(True)
if not sta.isconnected():
print("連線中... \n")
sta.connect(ssid, passwd)
while not sta.isconnected():
pass
print("連線成功... \n")
#進行網路連線
connect_wifi(SSID, PASSWORD)
#嘗試取回天氣資料並加以解析
try:
response = urequests.get(url)
data = ujson.loads(response.text) #轉換JSON格式資料成Python字典物件
except:
data = None
#串接IFTTT服務的網址資訊
if not data:
print("沒有查詢到天氣資料")
else:
print("天氣資料接收成功")
main = data["main"]
temp = main["temp"]
params = { "value1": "溫度 " + str(temp), "value2": "濕度 " + str(main["humidity"]) }
WEBHOOK_URL="https://maker.ifttt.com/trigger/EmailTest/with/key/" + IFTTT_KEY
WEBHOOK_URL+="/?" + urlencode(params)
#使用urequests.get()方法觸發IFTTT服務送出取得的天氣資訊
WEBHOOK = urequests.get(WEBHOOK_URL)
if WEBHOOK is not None and WEBHOOK.status_code == 200:
print("天氣資料Email傳送成功!!")
else:
print("天氣資料Email傳送失敗!!")
</wifi></wifi></api></api></pre></div>程式在Thonny執行畫面如下:<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWTd0cwN31jbqeyoLd1ff_mKGdX5qUrW5reMFNg9DL6pOGS0QDf4zd_omw_zUcdmQMxBSD4fsuIa30VjmEY92jgERlG9DfaF7NgSYcjkSCvj4kBRdZ4_p7fGWoabSWzwq3g5QvYeyJ7R0HQsF01rXikHtU0LsLkCJxg4o4hJAUacBGu8DpfNrNrgOyEw/s1161/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-01%20161511.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="651" data-original-width="1161" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWTd0cwN31jbqeyoLd1ff_mKGdX5qUrW5reMFNg9DL6pOGS0QDf4zd_omw_zUcdmQMxBSD4fsuIa30VjmEY92jgERlG9DfaF7NgSYcjkSCvj4kBRdZ4_p7fGWoabSWzwq3g5QvYeyJ7R0HQsF01rXikHtU0LsLkCJxg4o4hJAUacBGu8DpfNrNrgOyEw/w640-h358/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-01%20161511.png" width="640" /></a></div><br />當上列程式碼順利執行後,取得的天氣資料就會藉由 IFTTT 服務平台寄出信件,收到類似下圖的天氣資料信件。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcpJ_DmqaCLdSuF6aeysJ02ojfgcib9-67qfDS4LPoowIO7NluCd-fGmN_DYSJod2UC-1oE1iTHbQ3Tb-3nA-qiymBalA81fMsOv9dOdkWOJGHLqcqEMW45BLX-v0U5WO0vuOW2wLvWwcLQ81mIshtEZMfmkeltNS47GigUlHL323HvG5avQQd8sbYzw/s906/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-01%20163542.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="459" data-original-width="906" height="324" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcpJ_DmqaCLdSuF6aeysJ02ojfgcib9-67qfDS4LPoowIO7NluCd-fGmN_DYSJod2UC-1oE1iTHbQ3Tb-3nA-qiymBalA81fMsOv9dOdkWOJGHLqcqEMW45BLX-v0U5WO0vuOW2wLvWwcLQ81mIshtEZMfmkeltNS47GigUlHL323HvG5avQQd8sbYzw/w640-h324/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-08-01%20163542.png" width="640" /></a></div><br />
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-45872520799825718532024-01-21T03:32:00.000-08:002024-01-21T03:32:30.655-08:00建立 IFTTT 觸發程式與服務測試 (下)當IFTTT上的小程序 Applets建立完成後,要應用 WebHooks 服務還得取得 WebHooks 金鑰。 <div> 回到 IFTTT並登入,選擇 My Applet 。</div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXxp-5W-4wOfnNYFGcxUugdao8BIdCK0YIwb4U1PiW4Dl3_ojREpqT5yF_iYPqZ09KfB5KdF2Czy_rwPVjWJAuyWAlhT1_uy0QnJvTQlGpoKOo6g_YKftOOBrICAs0i-_tLHd0F1N4abwsZeapNv0TEh_M-c-mltqSRvyA9x4Pa2YHtfD5KygjTewy9w/s1255/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20131955.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="751" data-original-width="1255" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXxp-5W-4wOfnNYFGcxUugdao8BIdCK0YIwb4U1PiW4Dl3_ojREpqT5yF_iYPqZ09KfB5KdF2Czy_rwPVjWJAuyWAlhT1_uy0QnJvTQlGpoKOo6g_YKftOOBrICAs0i-_tLHd0F1N4abwsZeapNv0TEh_M-c-mltqSRvyA9x4Pa2YHtfD5KygjTewy9w/w400-h239/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20131955.png" width="400" /></a></div><div><br /></div><span><a name='more'></a></span>點選已建立WebHooks 服務的程序項目。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5o9pCzWEFYV4sNe34vXCyA8WXYszJlVdiHgMlidVQfaQy0xsqg6ZoFkxIHvQObtvRG8MEYW2_Q2SXzEdwMxa-hRZ8OOpOWcyD5Oh-aEXixodkQH7JZWsvzvfKm7rRnnNNuN-cUD-zZKqdU1WZp2lGF8i89NBzzOivv-InQMc7rOfKkfexljCi_UpNGw/s1255/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20132107.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="751" data-original-width="1255" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5o9pCzWEFYV4sNe34vXCyA8WXYszJlVdiHgMlidVQfaQy0xsqg6ZoFkxIHvQObtvRG8MEYW2_Q2SXzEdwMxa-hRZ8OOpOWcyD5Oh-aEXixodkQH7JZWsvzvfKm7rRnnNNuN-cUD-zZKqdU1WZp2lGF8i89NBzzOivv-InQMc7rOfKkfexljCi_UpNGw/w400-h239/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20132107.png" width="400" /></a></div><br /><div>點選頁面中的「 WebHooks 」圖示。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju5_qlRDUra7TN9N3wpvBsSqWlktwAOV1frZ7EkG7ob9ZFkdD6IdnensEbXHN5SCYG3O_J4QxPRFLEPozX3owtejJHsDzHdvlbvEAGQJPVvr1w-PNT4FXWlVaBl2lss7h-WKMb3oqzy8ExRZeokpsCTvLEhYYbMBIzooNWyyILZL0RUlkVI08xzbdoyQ/s1255/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20132449.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="751" data-original-width="1255" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEju5_qlRDUra7TN9N3wpvBsSqWlktwAOV1frZ7EkG7ob9ZFkdD6IdnensEbXHN5SCYG3O_J4QxPRFLEPozX3owtejJHsDzHdvlbvEAGQJPVvr1w-PNT4FXWlVaBl2lss7h-WKMb3oqzy8ExRZeokpsCTvLEhYYbMBIzooNWyyILZL0RUlkVI08xzbdoyQ/w400-h239/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20132449.png" width="400" /></a></div><br /><div>進入 Webhooks integrations 頁面,按下頁面中的 Documentation 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9fWC-PCN_mjRump4_n3kdAqt8SZpODdRUAbFp48sdDLGtm7iuiV67lUcZnZ44Ydio2AoS2wbo2KoW1lDiuUO-P6O6EN4CJzJx3VgjZ4d4WZP0KmAJRVrc4aHvwQCWjc9ZC8d0mhZZZG1dh4X_UWHQ2607AL3aSoatA8MgmX_YADlfanAOufbcm7HCPQ/s1255/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20132822.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="751" data-original-width="1255" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9fWC-PCN_mjRump4_n3kdAqt8SZpODdRUAbFp48sdDLGtm7iuiV67lUcZnZ44Ydio2AoS2wbo2KoW1lDiuUO-P6O6EN4CJzJx3VgjZ4d4WZP0KmAJRVrc4aHvwQCWjc9ZC8d0mhZZZG1dh4X_UWHQ2607AL3aSoatA8MgmX_YADlfanAOufbcm7HCPQ/w400-h239/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20132822.png" width="400" /></a></div><div><br /></div>顯示於 Your key is 後方的一大串英數字串就是 API 金鑰字串,如果要以 HTTP 方式觸發服務,就得在參數中附上這串金鑰字串。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6mNg8id0DE7hVYAyS3A8dNZeIIYvfcyXMz3wAHZInNVYLB87sA-cpFXb25i_0jEoDsncdpWyZo3nUNyFIgxaAzXowO5SxByOL66cFXv0HQe1q5avWmIJ6VpJ-f6sYDEJI9R0463iOR84PTvIS7sjhJT4l6vQNAHT7bUYRguI0ZXNYazD8-W4nTPNG_w/s1255/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20133216.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="751" data-original-width="1255" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6mNg8id0DE7hVYAyS3A8dNZeIIYvfcyXMz3wAHZInNVYLB87sA-cpFXb25i_0jEoDsncdpWyZo3nUNyFIgxaAzXowO5SxByOL66cFXv0HQe1q5avWmIJ6VpJ-f6sYDEJI9R0463iOR84PTvIS7sjhJT4l6vQNAHT7bUYRguI0ZXNYazD8-W4nTPNG_w/w400-h239/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20133216.png" width="400" /></a></div><br /><div>接著,我們可以在 To trigger an Event with 3 JSON values區段中的{event} 填入事件名稱, With an optional JSON body of 欄位試著填入三個測試參數值,然後按下 Test 按鈕。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4ouSmG6OLppSkrE_MlVfNa-AEUhUc-jftCwTfMT3_egjoC83ZYjN3gzSc-cUGtQbpjGVXnNhktbovGyNZmX7MTiJ33HE1LxZ7VRVekG_0eTl7ViUcYJ1T-J6NK6fnnJR4sO61YJfshgdwb7a9jF8E0AAsR7yhdq_oHXBX7IcHuIvckvR4bsp0_8pk6g/s1255/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20140956.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="751" data-original-width="1255" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4ouSmG6OLppSkrE_MlVfNa-AEUhUc-jftCwTfMT3_egjoC83ZYjN3gzSc-cUGtQbpjGVXnNhktbovGyNZmX7MTiJ33HE1LxZ7VRVekG_0eTl7ViUcYJ1T-J6NK6fnnJR4sO61YJfshgdwb7a9jF8E0AAsR7yhdq_oHXBX7IcHuIvckvR4bsp0_8pk6g/w400-h239/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20140956.png" width="400" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB-JjeAMTLqYRO1rXYQzXVZWulfWUiyRkr_8gb7PWr4C6VoPwkkVpLm3tJG6AVngIt0UjckrqK3rFwzDmUTAOTK1GBsh7rIfrKlDhuU3jQ-wMfdDeIudLoUJVidbi2AqfzaEuz4Qd61A9_k-7aVYvejebG9C-zWb-SWXc8RrcYF7pLqZmybq0jVgJDrQ/s1255/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20134046.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="751" data-original-width="1255" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB-JjeAMTLqYRO1rXYQzXVZWulfWUiyRkr_8gb7PWr4C6VoPwkkVpLm3tJG6AVngIt0UjckrqK3rFwzDmUTAOTK1GBsh7rIfrKlDhuU3jQ-wMfdDeIudLoUJVidbi2AqfzaEuz4Qd61A9_k-7aVYvejebG9C-zWb-SWXc8RrcYF7pLqZmybq0jVgJDrQ/w400-h239/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20134046.png" width="400" /></a></div><br /></div><div>試著收取信件,在 To trigger an Event with 3 JSON values區段中的 With an optional JSON body of 欄位填入的參數值將成為小程序 Applets 應用 WebHooks 服務發送的電子郵件指定項目內容。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie7k0LP2oAAqRx9IaV8Hfs1AExnnBxMRC23lEl5jJHi-i0DEE4gIQW80hOcBewj2_ZacF_XOY4HLM6gQbvAhaodASjzvF75RhdZLjPYyYv-VPNshK_Q80yCL2XlSyyKQ0cEzQR68ruMp8FVZiS8rhqn1Iv0DFWUPJHoN1SDfBF9SD6W4ylx15kczCGOw/s923/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20141246.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="460" data-original-width="923" height="199" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie7k0LP2oAAqRx9IaV8Hfs1AExnnBxMRC23lEl5jJHi-i0DEE4gIQW80hOcBewj2_ZacF_XOY4HLM6gQbvAhaodASjzvF75RhdZLjPYyYv-VPNshK_Q80yCL2XlSyyKQ0cEzQR68ruMp8FVZiS8rhqn1Iv0DFWUPJHoN1SDfBF9SD6W4ylx15kczCGOw/w400-h199/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-07%20141246.png" width="400" /></a></div><br /></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-54593235153824712062024-01-09T08:21:00.000-08:002024-01-09T08:21:43.224-08:00建立 IFTTT 觸發程式與服務測試 (上)<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi53ozrIWpvkNIKeZ_XTEOzqZ2ELHxZOA7-G-6pLjRga2xQRQoh2-j1Zz-Qt850fJpdjnqbUr2U-GLMVzWsW4wYuZgclwzreLXeekHlmLr7cwGJyfP_XGn730XFMZ-09RwzdlqNzCoMKRL8HusWo251cEIH82cLOtVtXjTRVJGR915i-Vblpc55HKl-zw/s1920/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20204233.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="1050" data-original-width="1920" height="175" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi53ozrIWpvkNIKeZ_XTEOzqZ2ELHxZOA7-G-6pLjRga2xQRQoh2-j1Zz-Qt850fJpdjnqbUr2U-GLMVzWsW4wYuZgclwzreLXeekHlmLr7cwGJyfP_XGn730XFMZ-09RwzdlqNzCoMKRL8HusWo251cEIH82cLOtVtXjTRVJGR915i-Vblpc55HKl-zw/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20204233.png" width="320" /></a></div><br />IFTTT 的 Applet 是一個小程序,能將兩個或多個應用程序或設備連接在一起。
Applet 將兩個或多個應用程序或設備連接在一起。它是兩個服務之間的自動化或集成/連接,使您能夠做這些服務無法自行完成的事情。
小程序由觸發器和動作組成,觸發器告訴 Applet 開始,動作是 Applet 運行的最終結果。<div><br /></div><div>在本範例中將使用HTTP請求為觸發,並以寄送EMAIL的程序做為 Applet。</div><div><br /></div><div>在開始建立程序之前,請先完成IFTTT的登入動作。<span><a name='more'></a></span></div><div>點擊 My Applets,查看自己的控制程序。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7RywRvOjBWQ3gGEn_zgS-n-8HPh2B2DRtk4jLPvfo7pBV30EA8tse6MLhKjJ0VL-2gb0fodIRpST60bRgn1M0bDQfii1VPqVX1mflFTukcCd3DCccKQwa4v-7UhP71jHzVB1-zUK7MlvqCgGrf4tFnZjP2zAccK5TWTzXNsiBjWbgqZP7n0ldpi3Zsg/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20210431.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7RywRvOjBWQ3gGEn_zgS-n-8HPh2B2DRtk4jLPvfo7pBV30EA8tse6MLhKjJ0VL-2gb0fodIRpST60bRgn1M0bDQfii1VPqVX1mflFTukcCd3DCccKQwa4v-7UhP71jHzVB1-zUK7MlvqCgGrf4tFnZjP2zAccK5TWTzXNsiBjWbgqZP7n0ldpi3Zsg/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20210431.png" width="400" /></a></div><br /><div>點擊網頁中的「Creat your won」。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIQ9DObYpSMYVdmoTM3AY-QDIvp2ruFrqqDsQlK_dodQn11SIzqWmUNppBv8_V7YhHar3pdlNq6pojO8FzRUVTtE1r6V9Y5pzItKWVijjxewAv_RZHZIhrEmnbRQoe4ou0VgO8uVW7a2bTWqVjfUbC9fwMpnoRMISoO4rW-TrzOXbXDQDQclgwfvahXA/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20210551.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIQ9DObYpSMYVdmoTM3AY-QDIvp2ruFrqqDsQlK_dodQn11SIzqWmUNppBv8_V7YhHar3pdlNq6pojO8FzRUVTtE1r6V9Y5pzItKWVijjxewAv_RZHZIhrEmnbRQoe4ou0VgO8uVW7a2bTWqVjfUbC9fwMpnoRMISoO4rW-TrzOXbXDQDQclgwfvahXA/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20210551.png" width="400" /></a></div><br /></div>按下 If This 後方的 Add 按鈕來新增觸發條件。<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaJt8y1MRCHfwR_RjAIrVGkkwV9QpjP1p3FN832H_bZq1kpdBX1v37Gewhic9XKR4_Uqjb8Ep3cAciGAe3ffcf83ZjOELaXjr1oyImkwI8F9GWXqeKmae-GTiIjPJAHqeM6bTpBcVvB1xdxAxRs78JlbOZfRswPfsYQDnzSC6GxM_CL4ASqUuSc3oNSA/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20210622.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaJt8y1MRCHfwR_RjAIrVGkkwV9QpjP1p3FN832H_bZq1kpdBX1v37Gewhic9XKR4_Uqjb8Ep3cAciGAe3ffcf83ZjOELaXjr1oyImkwI8F9GWXqeKmae-GTiIjPJAHqeM6bTpBcVvB1xdxAxRs78JlbOZfRswPfsYQDnzSC6GxM_CL4ASqUuSc3oNSA/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20210622.png" width="400" /></a></div><br /><div>在觸發條檢選擇驗面中的搜尋框輸入關鍵字 WEB ,在搜尋結果項目中選取使用 HTTP 請求觸發程序的 Webhooks 項目。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8HAghOvDoMblcwkeQeNK7ohYeFytdRHb503OZyvJxoErQQJNsdddTiyCVahWJHi9dWxt1jlJ27Fz5mVNG6v_cSyf6MMHr_gAWREO6XFqhsdkfBDupI8EcwYicYATLaQV5zGJI5TN8G0ioQzu4ZUNlEjMAsJJ1RLdU_TIYQj38_De7LIP00lGxjbiN0w/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20211600.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8HAghOvDoMblcwkeQeNK7ohYeFytdRHb503OZyvJxoErQQJNsdddTiyCVahWJHi9dWxt1jlJ27Fz5mVNG6v_cSyf6MMHr_gAWREO6XFqhsdkfBDupI8EcwYicYATLaQV5zGJI5TN8G0ioQzu4ZUNlEjMAsJJ1RLdU_TIYQj38_De7LIP00lGxjbiN0w/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20211600.png" width="400" /></a></div><br /><div>選取收到 HTTP 請求就觸發程序的 Receive a web request 項目,Receive a web request 服務收到通知事件的 Web 請求時,都會觸發此觸發器。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9ybIgJVx9KeozP4GXijtre-o8VumhC6YjrrxCp5EQ84MOm7bVu40rYaxk71AFG-rrfWZmumx9U3ge05P55IgVUEU6vHOwR06cSWye7plFsglk3HBWC_lfdgzpEl_HDZ8jWjTVUU-oDNXp1LKgpCuDEftL3DI-_wSLdo26TsVH97_uXI59OSX2gC4rUw/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20212102.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9ybIgJVx9KeozP4GXijtre-o8VumhC6YjrrxCp5EQ84MOm7bVu40rYaxk71AFG-rrfWZmumx9U3ge05P55IgVUEU6vHOwR06cSWye7plFsglk3HBWC_lfdgzpEl_HDZ8jWjTVUU-oDNXp1LKgpCuDEftL3DI-_wSLdo26TsVH97_uXI59OSX2gC4rUw/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20212102.png" width="400" /></a></div><br /></div><div>連接Webhooks服務,並授權Webhooks權限。按下 Connect 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIMwe09XI_KOm5fb7T8P3VyWJj8Ubbqk7TZgU3QgZ0JVDd2swh45RDGX2b2tTvmHLpwiyqAwK0sNGPETaJBMPDiyE2AXUzYYTKpILE3wAK3aOry73DZsNQ29ue5Fk7aLZ0oVPUcE0VaXdjil__Ikz3Z-_nWtvoXwf4XDyGtFok1WplNh9GVLPTIHWIA/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20212822.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtIMwe09XI_KOm5fb7T8P3VyWJj8Ubbqk7TZgU3QgZ0JVDd2swh45RDGX2b2tTvmHLpwiyqAwK0sNGPETaJBMPDiyE2AXUzYYTKpILE3wAK3aOry73DZsNQ29ue5Fk7aLZ0oVPUcE0VaXdjil__Ikz3Z-_nWtvoXwf4XDyGtFok1WplNh9GVLPTIHWIA/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20212822.png" width="400" /></a></div><br /><div><br /></div><div>輸入事件名稱,本例為 "EmailTest",然後按下 Create trigger 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiUCRnKBF48QZ7J559pJsQsKTo_Ut7FLJ2ywe1-QyM5RI_wOx_dxbjQHMMwB8xOKBMmi8SKE1t1LMzVx9zFMRhBAcjB-l970ytvy67MwWwhOMUldfbtChf6IPVpoySX-cvCoynlSxiL4QBApr5c42iFaY2EDxXdDpvT_Jnyh9w6Emuunq40Jsupkb95Q/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20212953.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiUCRnKBF48QZ7J559pJsQsKTo_Ut7FLJ2ywe1-QyM5RI_wOx_dxbjQHMMwB8xOKBMmi8SKE1t1LMzVx9zFMRhBAcjB-l970ytvy67MwWwhOMUldfbtChf6IPVpoySX-cvCoynlSxiL4QBApr5c42iFaY2EDxXdDpvT_Jnyh9w6Emuunq40Jsupkb95Q/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20212953.png" width="400" /></a></div><br /><div>建立條件滿足時要做的事,也就是事件被觸發後要做的事。按下 Then That 後方的 Add 按鈕來新增對應的 WEB 服務。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1To1dvpr6pOCIbsoPsyMxpAdZwVcYG-y-4mt8TZuogpfQJVqVqWZ6_bCT5_1I7ICFmlmgcHrunEJee_2LBcAukDhFU-8II7HvKlQV1SAD84Lljmrk0g6o1Kxj2wQkWtlVKm1wJFRRXW0DYK9H0J8JhAoHCDnwDg5D-D8Wl1xrl4C3rujhsPIm2XQg7w/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20213350.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1To1dvpr6pOCIbsoPsyMxpAdZwVcYG-y-4mt8TZuogpfQJVqVqWZ6_bCT5_1I7ICFmlmgcHrunEJee_2LBcAukDhFU-8II7HvKlQV1SAD84Lljmrk0g6o1Kxj2wQkWtlVKm1wJFRRXW0DYK9H0J8JhAoHCDnwDg5D-D8Wl1xrl4C3rujhsPIm2XQg7w/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20213350.png" width="400" /></a></div><br /></div><div><div>搜尋 Email , 按下 Email 圖案。</div></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimliVoLztZDB1aZJiVZKjBPLGft6-o1-kKQ7L8A79B11_AVNbA82QxJIpeir_q5jfoB77jmvvQcqlugV3mxyUu-WAmT5B4u0J7QiMP1zjEvAUnfLnBJcmf2KEjkpc8u7nBpwRbCR_Pl2T2nwIYH4sr6kOjBhMBkL8hKvIffgDzuEH8GrOOOoobkS6M_g/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20213704.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimliVoLztZDB1aZJiVZKjBPLGft6-o1-kKQ7L8A79B11_AVNbA82QxJIpeir_q5jfoB77jmvvQcqlugV3mxyUu-WAmT5B4u0J7QiMP1zjEvAUnfLnBJcmf2KEjkpc8u7nBpwRbCR_Pl2T2nwIYH4sr6kOjBhMBkL8hKvIffgDzuEH8GrOOOoobkS6M_g/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20213704.png" width="400" /></a></div><br /><div>選擇 Send me an email 寄送電子郵件給自己。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoRaYAgt2a2921wqJvraUoMYDbJgeJgkNPfWL5fyqJQzPm-q6oC-1OOpSOvyqUoU0iebZiG99Vz7LOyRJHARSm5WxVnlob-Fa1irdlbB9SEdYzxX0otTgn5V8T-U2zjjOfZojgqRR-170WVm5feDA7Q16Y4m3iCQJNELf-pp-TlVDAIcfTI4X1F3sBgA/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20214038.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoRaYAgt2a2921wqJvraUoMYDbJgeJgkNPfWL5fyqJQzPm-q6oC-1OOpSOvyqUoU0iebZiG99Vz7LOyRJHARSm5WxVnlob-Fa1irdlbB9SEdYzxX0otTgn5V8T-U2zjjOfZojgqRR-170WVm5feDA7Q16Y4m3iCQJNELf-pp-TlVDAIcfTI4X1F3sBgA/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20214038.png" width="400" /></a></div><br /><div>設定信件內容,其中EvenName、OccuredAt、Value1、Value2、Value3 分別是會自動填入的事件名稱、觸發時間與我們可以自訂的三個參數。按下 Create action 按鈕</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoLy-2vL9UIniZp8N06n2JaWinsj8pUJtzElpaVMZr3H1Z-spi4vVnvs7jxPIX2krEXdy26FD15HXHjKXgRPpGIqzDWrEki2YI-4guavCI8b5xJLwJMo0BBKkPuFS-Pj4OcW7sGAoJFTM5_sMt_QGLNCi7MM7F773sxms9FqbFpPQ_UqOqd_6oI0YmWQ/s970/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20214421.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="673" data-original-width="970" height="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoLy-2vL9UIniZp8N06n2JaWinsj8pUJtzElpaVMZr3H1Z-spi4vVnvs7jxPIX2krEXdy26FD15HXHjKXgRPpGIqzDWrEki2YI-4guavCI8b5xJLwJMo0BBKkPuFS-Pj4OcW7sGAoJFTM5_sMt_QGLNCi7MM7F773sxms9FqbFpPQ_UqOqd_6oI0YmWQ/w400-h278/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20214421.png" width="400" /></a></div><br /><div>按下 Contiue 繼續按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie75en31DOyazhFdNauO8jIQlTA5nO820KEAwsI3JzPLYAdf9M2baOojRMd0yJY9oNX2CWjPfBcBD84VrlUAwBzhDc0rkVGroyjVsAJE3O0M6og9dIfQRZnG8nTApSxEcfaJ8g1B92QY83dk3OBQKN0VBklhQqHOAutSNX0AF6VJKy06awxgHMdvWuGA/s970/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20215017.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="673" data-original-width="970" height="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie75en31DOyazhFdNauO8jIQlTA5nO820KEAwsI3JzPLYAdf9M2baOojRMd0yJY9oNX2CWjPfBcBD84VrlUAwBzhDc0rkVGroyjVsAJE3O0M6og9dIfQRZnG8nTApSxEcfaJ8g1B92QY83dk3OBQKN0VBklhQqHOAutSNX0AF6VJKy06awxgHMdvWuGA/w400-h278/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20215017.png" width="400" /></a></div><br /><div><br /></div><div>查看建立的 Applet 小程序內容,如果沒有問題就可按下 Finish 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7C8z4BhC3KvVK23rzLoEJ_4qJOPVSufJCt0k0wmQhgGvJ0j1-TCT5kmcqxWm7scnr8xaJ2phzPsM7PWuzhBvMfOsmY05h0G4OOIo9lWXKOmis_YiQsT68fcvgejUqw8H5TlGepYu50Jct-jjX9IKCnPz-iQMsVNJHXr60zHN_C-3zLmkmHkR_hw8ZLg/s970/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20215139.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="673" data-original-width="970" height="278" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7C8z4BhC3KvVK23rzLoEJ_4qJOPVSufJCt0k0wmQhgGvJ0j1-TCT5kmcqxWm7scnr8xaJ2phzPsM7PWuzhBvMfOsmY05h0G4OOIo9lWXKOmis_YiQsT68fcvgejUqw8H5TlGepYu50Jct-jjX9IKCnPz-iQMsVNJHXr60zHN_C-3zLmkmHkR_hw8ZLg/w400-h278/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20215139.png" width="400" /></a></div><br /><div>完成新增Applet 小程序,頁面中的狀態 Connected 代表Applet 小程序已可開始使用。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghJf4R5QkDtMpsNtVrD3iRltZ5sP_vGpQMgafID0tj0mVDcCkD59okz8W4ext3doNqQBzU1262_c24lJEEh2nvWQ_BGA_XGZ03u8WzgfTKsWaOceKp5o2Sf-v1FSHCB4ZMRffh3r2BUV7GYqMSp09NVnSKf5MLUr9HBIIzkuedXIme4jDrb2yJH-Z3ug/s1218/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20215247.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="837" data-original-width="1218" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghJf4R5QkDtMpsNtVrD3iRltZ5sP_vGpQMgafID0tj0mVDcCkD59okz8W4ext3doNqQBzU1262_c24lJEEh2nvWQ_BGA_XGZ03u8WzgfTKsWaOceKp5o2Sf-v1FSHCB4ZMRffh3r2BUV7GYqMSp09NVnSKf5MLUr9HBIIzkuedXIme4jDrb2yJH-Z3ug/w400-h275/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20215247.png" width="400" /></a></div><br /><div>再次點擊 My Applets,即可看到剛剛建立的控制程序列表在其中。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcFMH5F1tm7uMActpxeFpVyrNs_XCyiz5rRwmxFsYjqeOrjRS77LtGFI7t-UhUzFte3kNUW175n5qPyMYYf0qfRKa134GxMJoOZ1tWf7W3HTniEx2sS_KQGjgdyGAq7hchS6a-jQRFkpLJPgutDrqKXMBgILpkKNGQic3hji2WHlRmq5jQcY2cLsiQmw/s1218/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20215918.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="837" data-original-width="1218" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcFMH5F1tm7uMActpxeFpVyrNs_XCyiz5rRwmxFsYjqeOrjRS77LtGFI7t-UhUzFte3kNUW175n5qPyMYYf0qfRKa134GxMJoOZ1tWf7W3HTniEx2sS_KQGjgdyGAq7hchS6a-jQRFkpLJPgutDrqKXMBgILpkKNGQic3hji2WHlRmq5jQcY2cLsiQmw/w400-h275/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20215918.png" width="400" /></a></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-59217797328958984682023-12-21T09:56:00.000-08:002023-12-21T09:56:02.594-08:00IFTTT 申請<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrtd13-7PoHW7CuB515bB7U0Si7qmFW0S44uepj_7Pr_-lW7sfjFJjNcOAOnskINypA7XV1AZDlkO9D4fcBt6NxzAlV1UMWWJcQo2Y2b4HPRVL5ZPlj8HL-8d_xHZNYfJ4-TludKnPTkaJZLOmvznCzTg78gI3hPgkeXiawfbUVRaB3sXLc3YeGoiu4Q/s1047/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20180135.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="676" data-original-width="1047" height="207" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrtd13-7PoHW7CuB515bB7U0Si7qmFW0S44uepj_7Pr_-lW7sfjFJjNcOAOnskINypA7XV1AZDlkO9D4fcBt6NxzAlV1UMWWJcQo2Y2b4HPRVL5ZPlj8HL-8d_xHZNYfJ4-TludKnPTkaJZLOmvznCzTg78gI3hPgkeXiawfbUVRaB3sXLc3YeGoiu4Q/s320/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20180135.png" width="320" /></a></div><br />IFTTT,是一個新生的網絡服務平台,通過其他不同平台的條件來決定是否執行下一條命令,即對網絡服務通過其他網絡服務作出反應。<div><br /><div>IFTTT Agent 採用了目前最受歡迎的網路自動化服務-IFTTT ( If This Then That ),能自由地將 NAS 與手機裝置或喜愛的 App 結合,像是:Facebook、Gmail™、Twitter 等,量身訂做一個個 NAS 或物聯網服務,自動執行備份或監控等眾多任務。</div></div><div><br /></div><div>IFTTT 讓使用者能指定某個網路服務A(Channel A)在發生某個條件後,觸發(trigger)另一個網路服務B(Channel B)進行某個反應行動(Action),這整個流程就被稱為一個自動化任務(Recipe)。<span><br /></span></div><div><br /></div><span><a name='more'></a></span><div><br /></div><div><br /></div><div>IFTT 網址 <a href="https://ifttt.com/">https://ifttt.com/</a> 點擊首頁右上方 Get started,就可以註冊帳號:</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisz8TUpI0MEh9PguyNs9U3lz1RKGwYg_Oi5J2y-pky1butaPJGfjtnDe8m23rLyFvR-Fk9_klbsa2RzKOCBcMoPGD-Yo32c1H7vJGiqWpMRUVSotSgxWEtBJcZzonZi00uZxxB2IQR53BpwruqHBw9WOIcZ9qFjVVPzOWcSBU53hh4xTfRyHaoMrhobA/s1162/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20181045.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="587" data-original-width="1162" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisz8TUpI0MEh9PguyNs9U3lz1RKGwYg_Oi5J2y-pky1butaPJGfjtnDe8m23rLyFvR-Fk9_klbsa2RzKOCBcMoPGD-Yo32c1H7vJGiqWpMRUVSotSgxWEtBJcZzonZi00uZxxB2IQR53BpwruqHBw9WOIcZ9qFjVVPzOWcSBU53hh4xTfRyHaoMrhobA/w400-h203/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20181045.png" width="400" /></a></div><br /><div>選擇註冊方式,選擇帳號的註冊方式,包含Apple、Google、Facebook與自訂,本例使用Email註冊。點選 Sign up 連結。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuE_Af_KZdLmmfmgN7Ud3QLpQdcajoHCBUBBbcyfnmB7NcIpupxhS8c9GZZxp5npg11LxARMtne651bDWyZWX-A55ZsWN5j21_r6xZWJE2d9eTKESufqbWfoHnrbxnUNN5vauDaS-rLwtpvwtRGw9_hvUk5GsNIiJXRc9UvkBrjgY_zUHvI8sSCZ4xXA/s1162/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20181339.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="587" data-original-width="1162" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuE_Af_KZdLmmfmgN7Ud3QLpQdcajoHCBUBBbcyfnmB7NcIpupxhS8c9GZZxp5npg11LxARMtne651bDWyZWX-A55ZsWN5j21_r6xZWJE2d9eTKESufqbWfoHnrbxnUNN5vauDaS-rLwtpvwtRGw9_hvUk5GsNIiJXRc9UvkBrjgY_zUHvI8sSCZ4xXA/w400-h203/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20181339.png" width="400" /></a></div><div><br /></div>輸入自訂的Email與密碼,按下 Get started 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbf8hYl_RizgDAPRMN2hq3NX17OLABDp8vax458_ny68imF6IGGQvhecr0lvUq1ftW-jSHAVGw4THnhv20WE_kihbSdVL_rCbInnZiTZA5ffh2eVtDcAhY264nK9otP_IDfXaW10VTsJDjIbak80JyWASyH1pT2Qbgh25vb18CxAKnhOL3DvRpKkFLCQ/s1162/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20181756.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="587" data-original-width="1162" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbf8hYl_RizgDAPRMN2hq3NX17OLABDp8vax458_ny68imF6IGGQvhecr0lvUq1ftW-jSHAVGw4THnhv20WE_kihbSdVL_rCbInnZiTZA5ffh2eVtDcAhY264nK9otP_IDfXaW10VTsJDjIbak80JyWASyH1pT2Qbgh25vb18CxAKnhOL3DvRpKkFLCQ/w400-h203/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20181756.png" width="400" /></a></div><br /><div>註冊完成進入歡迎頁面,請勾選去您有興趣的服務種類。按下網頁下方的 Continue 按鈕。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA6qbDBRcVugdOT8Z5_KUoo4KFfQdZ_57V5jJ5kUkCugF7Eu471H6p2sbFf070nqJChjkPYiXltLoeYT2a8u8fGBPmOfDpIunBUhR3Xt-cxGB7WD4lqIII9q2FHVQTZng_verjgs7eS6HYbgh6v33mnIyiMqyQRR4REYFFqAHmMJ3-t3GnR-eEM_bzWg/s1162/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20182805.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="587" data-original-width="1162" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA6qbDBRcVugdOT8Z5_KUoo4KFfQdZ_57V5jJ5kUkCugF7Eu471H6p2sbFf070nqJChjkPYiXltLoeYT2a8u8fGBPmOfDpIunBUhR3Xt-cxGB7WD4lqIII9q2FHVQTZng_verjgs7eS6HYbgh6v33mnIyiMqyQRR4REYFFqAHmMJ3-t3GnR-eEM_bzWg/w400-h203/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20182805.png" width="400" /></a></div><br /><div>完成申請。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD7H4s94WelJz9e0_I_b7K14PHclfTIBRrMFGKrr1AFFcI1PtXj5m3qU5xrgWEG-FApMtiIydw0Rga8DbpyWvd_iz4GQje4HSeTjD_7WhyH2Nux1XGG_25qZ3gbg0MWZ3h2wmODn4j3bxF8XyR4ZLcfrNueCzGF0mTCMHmHXJos2T2aq6Drrs1WvRk_A/s1162/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20182915.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="587" data-original-width="1162" height="203" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD7H4s94WelJz9e0_I_b7K14PHclfTIBRrMFGKrr1AFFcI1PtXj5m3qU5xrgWEG-FApMtiIydw0Rga8DbpyWvd_iz4GQje4HSeTjD_7WhyH2Nux1XGG_25qZ3gbg0MWZ3h2wmODn4j3bxF8XyR4ZLcfrNueCzGF0mTCMHmHXJos2T2aq6Drrs1WvRk_A/w400-h203/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20182915.png" width="400" /></a></div><br /><div>完成申請後,IFTTT 會寄出一封註冊認證信來驗證登記成會員的電子信箱。</div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJW8FGdcmrjm6zCVAcb_yzOMSZNVHZ9I-uykh_lffVqn4eZWWShdJda-IrRUBhC4RB_4Fr542tdfr3Xfu9jiURnEh6PT2oZZNPoA_JwQkO0UCI-FQiDONvdYv6H5NkveoUEdeO-4HTqZ0pEPAtRb3pAuzf8EBMFrQlzA8_ARAvLPegWigvV8_JOp9PNw/s1082/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20202832.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="574" data-original-width="1082" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJW8FGdcmrjm6zCVAcb_yzOMSZNVHZ9I-uykh_lffVqn4eZWWShdJda-IrRUBhC4RB_4Fr542tdfr3Xfu9jiURnEh6PT2oZZNPoA_JwQkO0UCI-FQiDONvdYv6H5NkveoUEdeO-4HTqZ0pEPAtRb3pAuzf8EBMFrQlzA8_ARAvLPegWigvV8_JOp9PNw/w400-h213/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20202832.png" width="400" /></a></div><div><br /></div>電子信箱通過驗證後,即可開始使用 IFTTT 所提供的服務。<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8UhCH5bddF0Uyn9HSlYwXU7v2Ax8f1OJKXI4dQ4etzc7SxwKpt2Angcd4er_B_vRN0zs_de8lT_2Xo6UrElTh9oJORiHrlwIxJ5wpOVpeT66gJexH2czpaTSh__9K94wYtJFthG3Ch2dwuhExs0wStGfy85g0neqKneqGSNsDt1DoyD2M_ZjgG4Q_hQ/s947/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20204233.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="540" data-original-width="947" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8UhCH5bddF0Uyn9HSlYwXU7v2Ax8f1OJKXI4dQ4etzc7SxwKpt2Angcd4er_B_vRN0zs_de8lT_2Xo6UrElTh9oJORiHrlwIxJ5wpOVpeT66gJexH2czpaTSh__9K94wYtJFthG3Ch2dwuhExs0wStGfy85g0neqKneqGSNsDt1DoyD2M_ZjgG4Q_hQ/w400-h228/%E8%9E%A2%E5%B9%95%E6%93%B7%E5%8F%96%E7%95%AB%E9%9D%A2%202022-07-06%20204233.png" width="400" /></a></div><br /><div><br /><div><br /></div></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-28515062613068509222023-12-13T17:42:00.000-08:002023-12-13T17:42:17.484-08:00可控制運轉角度的伺服馬達(2)<b><span style="color: red;">材</span></b><b><span style="color: red;">料:</span></b>Arduino主板一個、擴張版一個、雙母頭杜邦線7條、伺服馬達一個、1602A 液晶顯示器(含 I2C 匯流牌)。<br />
<br />
<b style="color: #674ea7;">效用:</b>控制伺服馬達由20到160度往復旋轉,以10度為一個移動單位,每移動一個單位停留0.5秒,並將當前的角度位置顯示在液晶顯示器上。<br />
<b style="color: #674ea7;"><br /></b>
<span style="color: #674ea7;"><b style="color: black; font-weight: bold;">應用:</b><span style="color: black;">機械手臂。</span></span><br />
<b style="color: #674ea7;"><span style="color: magenta;"><br /></span></b>
<b style="color: #674ea7;"><span style="color: magenta;">電路接法:</span></b><br />
<br />
<div style="text-align: center;">
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/TuaVo3VL5f0" width="560"></iframe>
</div>
<span style="color: magenta; font-weight: 700;"><b style="color: #38761d;"></b></span><br />
<a name='more'></a><span style="color: magenta; font-weight: 700;"><b style="color: #38761d;">圖形程式方塊</b></span><b style="color: #38761d;">:</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2EXhwPBXzUdupCrjQFARZgB9CDiVkbfKziQ8_aqOgiaxdK9DzXEDAgV5ETYJkdarHVHVtYySezwQ6DRJ2u_ZX7F2IGJDkw8_c4qxDr4a-ub9KPCgWTXYsnmRuljq5-XaeteM2sWjb3KM3/s1600/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2EXhwPBXzUdupCrjQFARZgB9CDiVkbfKziQ8_aqOgiaxdK9DzXEDAgV5ETYJkdarHVHVtYySezwQ6DRJ2u_ZX7F2IGJDkw8_c4qxDr4a-ub9KPCgWTXYsnmRuljq5-XaeteM2sWjb3KM3/s640/1.png" width="488" /></a></div>
<b style="color: #38761d;"><br /></b>
<b style="color: #38761d;"><b style="color: #38761d;"><b style="color: #38761d;"><b style="color: #f1c232;">程式碼:</b></b></b></b><b style="color: #38761d;"><b style="color: #38761d;"><b style="color: #38761d;"><b style="color: #f1c232;"></b></b></b></b><br />
#include <Servo.h><br />
#include <Wire.h><br />
#include <LCD.h><br />
#include <LiquidCrystal_I2C.h><br />
<br />
int _ABVAR_1_variablename = 0 ;<br />
Servo servo_pin_5;<br />
<br />
LiquidCrystal_I2C lcd_I2C_27(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);<br />
<br />
void setup()<br />
{<br />
servo_pin_5.attach(5);<br />
lcd_I2C_27.begin (16, 2);<br />
lcd_I2C_27.setBacklight(HIGH);<br />
}<br />
<br />
void loop()<br />
{<br />
for(_ABVAR_1_variablename = 20;<br />
20<=160?_ABVAR_1_variablename <= 160:_ABVAR_1_variablename >= 160;<br />
20<=160?_ABVAR_1_variablename = _ABVAR_1_variablename + 10:_ABVAR_1_variablename = _ABVAR_1_variablename - 10)<br />
{<br />
servo_pin_5.write( _ABVAR_1_variablename );<br />
lcd_I2C_27.setCursor( (1) - 1, (1) - 1 );<br />
lcd_I2C_27.print( "Current ang:" );<br />
lcd_I2C_27.print( _ABVAR_1_variablename );<br />
lcd_I2C_27.setCursor( (1) - 1, (2) - 1 );<br />
lcd_I2C_27.print( "Round trip" );<br />
delay( 500 );<br />
lcd_I2C_27.setCursor( (1) - 1, (1.) - 1 );<br />
lcd_I2C_27.print( "---------------" );<br />
}<br />
delay( 1000 );<br />
for(_ABVAR_1_variablename = 160;<br />
160<=20?_ABVAR_1_variablename <= 20:_ABVAR_1_variablename >= 20;<br />
160<=20?_ABVAR_1_variablename = _ABVAR_1_variablename + 10:_ABVAR_1_variablename = _ABVAR_1_variablename - 10)<br />
{<br />
servo_pin_5.write( _ABVAR_1_variablename );<br />
lcd_I2C_27.setCursor( (1) - 1, (1) - 1 );<br />
lcd_I2C_27.print( "Current ang:" );<br />
lcd_I2C_27.print( _ABVAR_1_variablename );<br />
delay( 500 );<br />
lcd_I2C_27.setCursor( (1) - 1, (1) - 1 );<br />
lcd_I2C_27.print( "----------------" );<br />
}<br />
delay( 1000 );<br />
}<br />
<br />
<br />東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-23948716958985299102023-12-05T04:49:00.000-08:002023-12-05T04:49:57.222-08:00可控制運轉角度的伺服馬達(1)<b><span style="color: red;">材</span></b><b><span style="color: red;">料:</span></b>Arduino主板一個、擴張版一個、雙母頭杜邦線6條、綠紅LED各1、伺服馬達一個、麵包版一個。.<br />
<br />
<b style="color: #674ea7;">效用:</b>控制<b>伺服</b>馬達由20到160度往復旋轉,伺服馬達順時鐘轉到底亮綠燈;伺服馬達逆時鐘轉到底亮紅燈。<br />
<br />
<b>應用:汽車擋風玻璃上的雨刷。</b><br />
<br />
<span style="color: magenta; font-weight: 700;">電路接法:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="270" src="https://www.youtube.com/embed/hAQZiZWBRSc" width="480"></iframe>
</div>
<a name='more'></a><span style="color: magenta; font-weight: 700;"><b style="color: #38761d;">圖形程式方塊</b></span><b style="color: #38761d;">:</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Qg16Bnnf6pwMWc12g3yfjoVaHmWHfrX7jveazx-a09-uAGc5bXnaVngIBPqijosgAjSMcSB8nGau6GjoccC6MroFAx1AZZ7WQC1Hl7LsSjuId3os4RqkBd7iuPwfzqpikkEjD0-DTUiK/s1600/bandicam+2018-07-03+15-14-20-317.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Qg16Bnnf6pwMWc12g3yfjoVaHmWHfrX7jveazx-a09-uAGc5bXnaVngIBPqijosgAjSMcSB8nGau6GjoccC6MroFAx1AZZ7WQC1Hl7LsSjuId3os4RqkBd7iuPwfzqpikkEjD0-DTUiK/s640/bandicam+2018-07-03+15-14-20-317.jpg" width="458" /></a></div>
<b style="color: #38761d;"><br /></b>
<b style="color: #38761d;"><b style="color: #38761d;"><b style="color: #f1c232;">程式碼:</b></b></b><br />
#include <Servo.h><br />
<br />
int _ABVAR_1_variablename = 0 ;<br />
Servo servo_pin_3;<br />
<br />
void setup()<br />
{<br />
pinMode( 5 , OUTPUT);<br />
pinMode( 6 , OUTPUT);<br />
servo_pin_3.attach(3);<br />
digitalWrite(5 , HIGH);<br />
<br />
digitalWrite(6 , HIGH);<br />
}<br />
<br />
void loop()<br />
{<br />
for(_ABVAR_1_variablename = 20;<br />
20<=160?_ABVAR_1_variablename <= 160:_ABVAR_1_variablename >= 160;<br />
20<=160?_ABVAR_1_variablename = _ABVAR_1_variablename + 1:_ABVAR_1_variablename = _ABVAR_1_variablename - 1)<br />
{<br />
servo_pin_3.write( _ABVAR_1_variablename );<br />
delay( 10 );<br />
}<br />
digitalWrite(6 , LOW);<br />
delay( 1000 );<br />
digitalWrite(6 , HIGH);<br />
for(_ABVAR_1_variablename = 160;<br />
160<=20?_ABVAR_1_variablename <= 20:_ABVAR_1_variablename >= 20;<br />
160<=20?_ABVAR_1_variablename = _ABVAR_1_variablename + 1:_ABVAR_1_variablename = _ABVAR_1_variablename - 1)<br />
{<br />
servo_pin_3.write( _ABVAR_1_variablename );<br />
delay( 10 );<br />
}<br />
digitalWrite(5 , LOW);<br />
delay( 1000 );<br />
digitalWrite(5 , HIGH);<br />
}<br />
<br />東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-88188646018605317882023-11-28T00:52:00.000-08:002023-11-28T00:52:26.192-08:00LM393循軌自走車<div style="text-align: left;">
<div style="text-align: center;">
<div style="text-align: left;">
<b><span style="color: #660000;">材料:</span></b>D2-1小車套件。</div>
</div>
</div>
<div style="text-align: left;">
<br /></div>
<span style="color: #7f6000; font-weight: bold;">原理:</span>利用LM393電晶體隨時比較兩個光敏電阻的大小,當有不平衡時,立即控制一側馬達停轉,另一側馬達加速旋轉,使小車修正方向。<br />
<br />
<b><span style="color: #20124d;">應用:</span></b>餐廳送餐機器人(迴轉壽司軌道)。<br />
<br />
<b><span style="color: #4c1130;">實驗成品: </span></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7wKjwe86HyDg1r069U_Bwo9IRMwLQVbxdVmCWFgqQnZMQpHn7ySL3sNfUmxYF7CmVCgJnCMGs8sKxblemCuB2msDQZ8ShRcZrM9RzHisitibDxwSJ-kRBWjiYp56NjRSAm5V2AdCz3fhD/s1600/14390.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7wKjwe86HyDg1r069U_Bwo9IRMwLQVbxdVmCWFgqQnZMQpHn7ySL3sNfUmxYF7CmVCgJnCMGs8sKxblemCuB2msDQZ8ShRcZrM9RzHisitibDxwSJ-kRBWjiYp56NjRSAm5V2AdCz3fhD/s640/14390.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<a name='more'></a><br />
LM393電路圖:(圖片來源:https://www.theengineeringprojects.com/2017/08/introduction-to-lm393.html)<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: center;">
<img alt="LM393 Pinout, LM393 basics, basics of LM393, getting started with LM393, how to get start LM393, LM393 proteus, Proteus LM393, LM393 Proteus simulation" class="imgBorders aligncenter wp-image-86099" height="464" sizes="(max-width: 600px) 100vw, 600px" src="https://www.theengineeringprojects.com/wp-content/uploads/2017/08/LM393-Pinout.png" srcset="https://www.theengineeringprojects.com/wp-content/uploads/2017/08/LM393-Pinout.png 926w, https://www.theengineeringprojects.com/wp-content/uploads/2017/08/LM393-Pinout-300x232.png 300w, https://www.theengineeringprojects.com/wp-content/uploads/2017/08/LM393-Pinout-768x594.png 768w" width="600" /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b><span style="color: #4c1130;">D2-1循軌小車套件參考電路接法:</span></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFq2csZW9MPn-Nn2lHnaD7aenagI4boxDs5e1MHADBBqWIfcxPxPncWyJTOYnzqYnqxvOoKp1Rj7EgBdViOXRa3mBqf-4UcwQO2hHxF1S5nMxt94rh9fjDe27Efk_mMWrOGEmAsxmnf_RP/s1600/T22KzSXwdaXXXXXXXX-49758426.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="347" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFq2csZW9MPn-Nn2lHnaD7aenagI4boxDs5e1MHADBBqWIfcxPxPncWyJTOYnzqYnqxvOoKp1Rj7EgBdViOXRa3mBqf-4UcwQO2hHxF1S5nMxt94rh9fjDe27Efk_mMWrOGEmAsxmnf_RP/s640/T22KzSXwdaXXXXXXXX-49758426.jpg" width="640" /></a></div>
<b><span style="color: #4c1130;"> </span></b><br />
<div style="text-align: center;">
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
<div style="text-align: center;">
<b><span style="color: #134f5c;"><iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/WWbSHXhHBJ4?rel=0" width="560"></iframe></span></b></div>
<div style="text-align: center;">
<div style="text-align: center;">
<b><span style="color: #134f5c;"><br /></span></b></div>
<div style="text-align: left;">
<div style="text-align: center;">
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/8xeUxAtq3g8?rel=0" width="560"></iframe></div>
<b style="text-align: center;"><span style="color: #134f5c;"><b style="text-align: center;"><span style="color: #134f5c;"><br /></span></b>完成感想:</span></b><span style="text-align: center;">這次的自走車製作我覺得很有趣,因為這讓我焊錫的技巧越來越好,同時也讓家人感到驚艷。這是第一代的無人自走車,也是我的第一台自走車。</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivhgxzFAFLSPJ0Hg0GlvChPww7Xvf_NxmUm2jXLFgGngmV7MyGuKdbzmMP_L1fIDtkAkQy70kQoEur_Q7xAOGP-terX3nVJO3eov_iUM3o2N6tfSVYKgfE54iXxZvFFddn1vWzSqI812Q7/s1600/14392.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivhgxzFAFLSPJ0Hg0GlvChPww7Xvf_NxmUm2jXLFgGngmV7MyGuKdbzmMP_L1fIDtkAkQy70kQoEur_Q7xAOGP-terX3nVJO3eov_iUM3o2N6tfSVYKgfE54iXxZvFFddn1vWzSqI812Q7/s400/14392.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSm_TrYlyitMUazRCAQYVI7S6gYDArQCl_LRn99ZOJHEDpchYOaQ6iL9SOvj9RelhaOUb2JE66s0BWRRiOagz1v5gyRK-pjxJGTCqkNQQNgz0H8hr4cnH2wZ7mB2qermPfoJe8z05ZpuuE/s1600/14394.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSm_TrYlyitMUazRCAQYVI7S6gYDArQCl_LRn99ZOJHEDpchYOaQ6iL9SOvj9RelhaOUb2JE66s0BWRRiOagz1v5gyRK-pjxJGTCqkNQQNgz0H8hr4cnH2wZ7mB2qermPfoJe8z05ZpuuE/s400/14394.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF9fWGUcZK11qwVq4m2NkW0pAn-YAvdOqdd9C7mSCcDlMtf5xRViURZ_ryrvcrLmIgPKI07XdpEk2_6H0qZOQdQ9qvRTqIvh0axXdJ7sl0HjmfrwmxsTfp7DHWxt_NVcVVkSXvyoeYQ_UP/s1600/14397.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF9fWGUcZK11qwVq4m2NkW0pAn-YAvdOqdd9C7mSCcDlMtf5xRViURZ_ryrvcrLmIgPKI07XdpEk2_6H0qZOQdQ9qvRTqIvh0axXdJ7sl0HjmfrwmxsTfp7DHWxt_NVcVVkSXvyoeYQ_UP/s400/14397.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinpE42Trh3B77Wv6U8-7ogJChFgW4s6yqnTdtwP1rdfEKYhzfD6RKLhNDOJAUTG9aaU-8syYXjGix6PRSIXDaY98wrDhlL7MW-tTslULiN_yZqbakIUuC2yZGqR4xvrlcNgFSYp3V7mxu8/s1600/14391.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinpE42Trh3B77Wv6U8-7ogJChFgW4s6yqnTdtwP1rdfEKYhzfD6RKLhNDOJAUTG9aaU-8syYXjGix6PRSIXDaY98wrDhlL7MW-tTslULiN_yZqbakIUuC2yZGqR4xvrlcNgFSYp3V7mxu8/s400/14391.jpg" width="400" /></a></div>
</div>
</div>
</div>
</div>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-28125315905065470472023-11-21T00:37:00.000-08:002023-11-21T00:37:54.093-08:00利用DS1302 RTC 模組及TM1637 顯示器模組製作數位時鐘<b><span style="color: red;">材</span></b><b><span style="color: red;">料:</span></b>Arduino主板一個、雙公頭杜邦線11條、DS1302 RTC 模組 一個、TM1637 顯示器模組一個。<br />
TM1637 四位數七段顯示器模組規格請參考:<a href="http://www.kinsten.com.tw/index.php?route=product/product&product_id=47443" target="_blank">TM1637</a>。<br />
DS1302 RTC模組規格請參考:<a href="http://shop.cpu.com.tw/product/47782/info/" target="_blank">DS1302</a>。<br />
<br />
<b style="color: #674ea7;">效用:</b>利用 DS1302 RTC 模組及 TM1637 顯示器模組製作數位時鐘。<br />
<b style="color: #674ea7;"><br /></b><span style="color: orange; font-weight: bold;">應用:</span><span style="background-color: white;">取代傳統的指針時鐘。</span><br />
<span style="background-color: white;"><br /></span><span style="background-color: white;"><span style="color: red;"><b>提示:</b></span>1.本實作的 DS1302 RTC 模組 Vcc 接腳連接 3.3V 電源。</span><br />
<span style="background-color: white;"> 2.</span><span style="background-color: white;">DS1302 晶片不太精確,要獲得準確時間可改用 DS3231。</span><br />
<span style="color: #674ea7;"><b><br /></b></span><span style="color: #990000;"><b><span style="color: #990000;">電路接法:</span></b></span><br />
<div style="text-align: center;">
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/tZAPMp2q1O0?rel=0" width="560"></iframe></div>
<a href="https://www.blogger.com/null" name="more"></a><span style="color: #990000;"><b></b></span><br />
<a name='more'></a><span style="color: #990000;"><b><br /></b></span><b style="color: #38761d;"><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><span style="color: #bf9000;">程式碼:</span></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b><br />
#include "TM1637Display.h"<br />
#include <DS1302.h><br />
// DS1302 初始化設定<br />
DS1302 rtc(2, 3, 4);<br />
<br />
// 設定 TM1637 接腳<br />
#define CLK 9<br />
#define DIO 8<br />
<br />
TM1637Display display(CLK, DIO);<br />
boolean colon = true ;<br />
<br />
String dw = "";<br />
String hh = "";<br />
String mm = "";<br />
String ss = "";<br />
float t = 0;<br />
<br />
void setup()<br />
{<br />
rtc.halt(false);<br />
rtc.writeProtect(false);<br />
<br />
// Setup Serial connection<br />
Serial.begin(9600);<br />
display.setBrightness(0xA);<br />
<br />
// 第一次設定寫入 DS1302 RTC時鐘,之後可以加上註解<br />
//rtc.setDOW(FRIDAY); // 設定每週星期幾?<br />
//rtc.setTime(00, 27, 30); // 設定24小時時間 20:16:30<br />
//rtc.setDate(12, 8, 2017); // 設定日期(日, 月, 年)<br />
}<br />
void loop()<br />
{<br />
Serial.print(rtc.getDOWStr());<br />
Serial.print(" ");<br />
<br />
Serial.print(rtc.getDateStr());<br />
Serial.print(" -- ");<br />
<br />
dw = rtc.getTimeStr();<br />
Serial.println(dw);<br />
<br />
hh = dw.substring(0,2); <br />
mm = dw.substring(3,5); <br />
ss = dw.substring(6,8); <br />
uint8_t segto;<br />
int value = 1000;<br />
int t = hh.toInt()*100 + mm.toInt();<br />
segto = 0x80 | display.encodeDigit((t / 100)%10);<br />
display.setSegments(&segto, 1, 1);<br />
delay(500);<br />
display.showNumberDec(t, true);<br />
delay(500);<br />
<span style="color: #38761d;"><span style="color: #bf9000;"></span></span><br />
}<br />
<div>
<br /></div>
<b><b style="color: #38761d;"><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><span style="color: #bf9000;"><u><span style="color: red;">此實驗程式碼參考:<a href="http://atceiling.blogspot.com/2017/03/arduino-rtc-tm1637.html" target="_blank">Arduino筆記:即時時鐘 RTC 與 TM1637 四位數顯示器</a>。</span></u></span></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b><br />
<b><b style="color: #38761d;"><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><span style="color: #bf9000;"><u><span style="color: red;"><br /></span></u></span></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b><b><b style="color: #38761d;"><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><b><span style="color: #bf9000;"><u><span style="color: red;"><br /></span></u></span></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b></b>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-43070800695370613462023-11-14T00:55:00.000-08:002023-11-14T00:55:16.229-08:00DHT11溫溼度量測與LCD顯示<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAN5mwXEJSwC8usjHhpRRZxma7FlguFYx-RwmafTxku7m8KNzIwbHFPuACHZvPJrS2lDTQTakdgCZTwXrdM9Tm8vcpb3meWTzXprHeyB7usTMvpU6DbjVjzhl79XQLVlZkMJWFv7koWz0A/s1600/14608.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAN5mwXEJSwC8usjHhpRRZxma7FlguFYx-RwmafTxku7m8KNzIwbHFPuACHZvPJrS2lDTQTakdgCZTwXrdM9Tm8vcpb3meWTzXprHeyB7usTMvpU6DbjVjzhl79XQLVlZkMJWFv7koWz0A/s320/14608.jpg" width="320" /></a></div>
<br />
<br />
<b><span style="color: #351c75;">[演練功能]</span></b><br />
1. 測量溫濕度並將量測得知的溫濕度顯示於序列監控視窗中。<br />
2. 測量溫濕度並將量測得知的溫濕度顯示於LCD模組中。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmtGn0Tkd38k8sLb_WG2-xTxVkpUJ5YBswX8f7iWOWAq2o-QRekAf6v0z4eF8GAWFCpmrB0TALLsr0S8lO4ZVgfXnFQ0GYncB2pyfROMDv8ME9EIHUZ4I_Z7QWCK6ylUTVG6GYoXpoUgxr/s1600/14610.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmtGn0Tkd38k8sLb_WG2-xTxVkpUJ5YBswX8f7iWOWAq2o-QRekAf6v0z4eF8GAWFCpmrB0TALLsr0S8lO4ZVgfXnFQ0GYncB2pyfROMDv8ME9EIHUZ4I_Z7QWCK6ylUTVG6GYoXpoUgxr/s320/14610.jpg" width="320" /></a></div>
<b><span style="color: #b45f06;">[模組材料]</span></b><br />
1. Arduino Nanox 1<br />
2. Nano 擴張板 x 1<br />
3. DHT11溫溼度測量模組 x1<br />
4. LCD模組 2004A x1<br />
5. I2C匯流排 x1(簡化LCD模組控制線路)<br />
6. 杜邦連接線 x 7條<br />
<br />
<br />
<a name='more'></a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivGsFz5QkifW05ZwI8B-4n_ZFvP0dj91p-dZ-qrhyZM97SteJNysXKa5-CcSNM2FzeaqnR0ItM7Mf1RYlZLz_BfFedLkOxMNMXI-7LL8r1V4z2fp7Mg1MtiEuMHscWxTSWE0OP-MOY4PqX/s1600/14611.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivGsFz5QkifW05ZwI8B-4n_ZFvP0dj91p-dZ-qrhyZM97SteJNysXKa5-CcSNM2FzeaqnR0ItM7Mf1RYlZLz_BfFedLkOxMNMXI-7LL8r1V4z2fp7Mg1MtiEuMHscWxTSWE0OP-MOY4PqX/s320/14611.jpg" width="320" /></a></div>
<span style="color: #38761d;"><b>[[DHT11溫濕度測量模組]]</b></span><br />
<br />
* Supply voltage: 3.3 ~ 5.5V DC<br />
* Output: single-bus digital signal<br />
* Measuring range: Humidity 20-90% RH, Temperature 0 ~ 50 ℃<br />
* Accuracy: Humidity + -5% RH, temperature + -2 ℃<br />
* Resolution: Humidity 1% RH, temperature 1 ℃<br />
* Long-term stability: <± 1% RH / Year<br />
<ul>
</ul>
<br />
<div>
<div>
<br />
<span style="color: #38761d;"><b>[[LCD模組]]</b></span></div>
<div>
<ul>
<li>此次實驗的顯示模組採用 2004A,此款LCD模組是最基本、常見的字元型LCD,使用的電壓為5V,4行顯示,每行可顯示20個字元。</li>
<li>為了簡化顯示模組配線,另配合I2C匯流排來通訊傳輸,因此最終的LCD顯示模組只有四隻接腳,分別為Vcc、GND、SDA、SCL。</li>
<li>I2C匯流排能夠讓兩個裝置之間以穩定、高速、雙向的方式只使用兩條線來進行通訊,一條時脈線(SCL)和一條數據線(SDA),所以I2C匯流排所使用的通訊協定也被稱之為「雙線」通訊協定。</li>
</ul>
</div>
</div>
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4cwoqxHSA5FCM2MMoUDdYXAgFtUnFiT3BAZGkUyym4y9Dl-ogit17iL-sRwBPWjgPZSNX2KJHFhhbtTC9HC0GVgBzSSaQQa1wO1_wsNz0thjE-SkcdqF79tkoj-yFZjoEncesqAGqa7QF/s1600/14615.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4cwoqxHSA5FCM2MMoUDdYXAgFtUnFiT3BAZGkUyym4y9Dl-ogit17iL-sRwBPWjgPZSNX2KJHFhhbtTC9HC0GVgBzSSaQQa1wO1_wsNz0thjE-SkcdqF79tkoj-yFZjoEncesqAGqa7QF/s320/14615.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtWUkLSIs8sRrDyCSVmYQsNSaUEAr8zsQYE0fwGO5PK6Ro1PRsdDEYQcRmExQMlOdy7M5vcjpLhnON_lz3Vm_fClRvniKIzGsASpOZbqBJVNXgUnwQaiWY6GSITuEiUIsnrHpQVcx8Xy8N/s1600/14614.jpg" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtWUkLSIs8sRrDyCSVmYQsNSaUEAr8zsQYE0fwGO5PK6Ro1PRsdDEYQcRmExQMlOdy7M5vcjpLhnON_lz3Vm_fClRvniKIzGsASpOZbqBJVNXgUnwQaiWY6GSITuEiUIsnrHpQVcx8Xy8N/s320/14614.jpg" width="320" /></a></div>
<br />
<br /></div>
<div>
<div>
<span style="color: #990000;"><b>演練一</b></span>:利用DHT11模組測量溫濕度,並將量測得知的溫濕度顯示於序列監控視窗中<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixUjyWT6srzWnkjjnhjnbASC5Ej5wrZVmPPDLOzT2y-865bX5TSRw1_EsSxj95oLKwNKikz0OjsSQWxkk5vpsEx9c1Ku2JPvfUCzqBPYFyQuKvQQwoI0HlQycwrNtLoHmlQmDskXfIhDac/s1600/2018-07-20_17-49-39.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="405" data-original-width="817" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixUjyWT6srzWnkjjnhjnbASC5Ej5wrZVmPPDLOzT2y-865bX5TSRw1_EsSxj95oLKwNKikz0OjsSQWxkk5vpsEx9c1Ku2JPvfUCzqBPYFyQuKvQQwoI0HlQycwrNtLoHmlQmDskXfIhDac/s320/2018-07-20_17-49-39.jpg" width="300" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCrbqBg-aMIlXCR-FLYxPovFcle0JH3c1-yW1tWZilBOv4_SHYbkfIlhffzwI8eJwDih_eqlMZe3OyxWJT8Xm3-4zzSj1DwUGPAXb5AlExXh1sXjqJnw-JOwxHKXr5YZcxk-dSDVwxnu1/s1600/14612.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCrbqBg-aMIlXCR-FLYxPovFcle0JH3c1-yW1tWZilBOv4_SHYbkfIlhffzwI8eJwDih_eqlMZe3OyxWJT8Xm3-4zzSj1DwUGPAXb5AlExXh1sXjqJnw-JOwxHKXr5YZcxk-dSDVwxnu1/s320/14612.jpg" width="300" /></a></div>
<pre class="code prettyprint">#include <DHT.h> //https://github.com/adafruit/DHT-sensor-library
#define DHTPIN 3 //設定DHT的接腳
#define DHTTYPE DHT11 //DHT 11 定義DHT的類型為DHT11
DHT myDHT(DHTPIN, DHTTYPE); //建立溫溼度模組物件
void setup() {
Serial.begin(9600);
delay(500);
Serial.println("溫溼度測試\n");
delay(3000);
}
void loop() {
//讀取濕度
float h = myDHT.readHumidity();
//讀取攝氏溫度
float t = myDHT.readTemperature();
//讀取華氏溫度
float f = myDHT.readTemperature(true);
//輸出溫溼度資訊
Serial.print("濕度 = ");
Serial.print(h);
Serial.print("% ");
Serial.print("攝氏 = ");
Serial.print(t);
Serial.print("C ; 華氏 = ");
Serial.print(f);
Serial.println("F");
delay(2000);
}
</pre>
</div>
<div>
<br /></div>
<div>
<b><span style="color: #cc0000;">演練二</span></b>:利用DHT11模組測量溫濕度,並將量測得知的溫濕度顯示於LCD模組中</div>
</div>
<pre class="code prettyprint">#include <DHT.h> //https://github.com/adafruit/DHT-sensor-library
#define DHTPIN 3 //設定DHT的接腳
#define DHTTYPE DHT11 //DHT 11 定義DHT的類型為DHT11
DHT myDHT(DHTPIN, DHTTYPE); //建立溫溼度模組物件
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
// 設定 LCD I2C 位址
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup() {
// 初始化 LCD,一行 20 的字元,共 4 行,預設開啟背光
lcd.begin(20, 4);
// 輸出啟動訊息
lcd.setCursor(0, 0); // 設定游標位置在第一行行首
lcd.print("SYSTEM START!!");
delay(500);
lcd.clear(); //顯示清除
lcd.print("DHT Sensor Test ...");
myDHT.read();
delay(2000);
}
void loop() {
//讀取濕度
float h = myDHT.readHumidity();
//讀取攝氏溫度
float t = myDHT.readTemperature();
//讀取華氏溫度
float f = myDHT.readTemperature(true);
//輸出溫溼度資訊
lcd.setCursor(0, 1); // 設定游標位置在第二行行首
lcd.print("Humidity: ");
lcd.setCursor(10, 1); // 設定游標位置在第二行,11的位置
lcd.print(h);
lcd.print(" %");
lcd.setCursor(0, 2); // 設定游標位置在第三行行首
lcd.print("Temp : ");
lcd.setCursor(7, 2); // 設定游標位置在第三行,8的位置
lcd.print(t);
lcd.print(" C");
lcd.setCursor(7,3); // 設定游標位置在第三行,8的位置
lcd.print(f);
lcd.print(" F");
delay(2000);
}
</pre>
<div>
<br /></div>
<div>
<br /></div>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-32763361615492168132023-11-07T01:11:00.000-08:002023-11-07T01:11:29.695-08:00實作紅外線遙控汽車(IR+ L298N)<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi47uvv-nf8mYpQTWF1x45S4973Uimj3FFTU8d8xGHvZjuKSB5v_h9uyNWKJamLalsvjd0lgkjyTsMvpuhjKxsn-YCNjoH_ydQlBOR2mD9cigM577wAo6NATKKg2L-hg4cXXkW04qh6KR4t/s1600/15603.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi47uvv-nf8mYpQTWF1x45S4973Uimj3FFTU8d8xGHvZjuKSB5v_h9uyNWKJamLalsvjd0lgkjyTsMvpuhjKxsn-YCNjoH_ydQlBOR2mD9cigM577wAo6NATKKg2L-hg4cXXkW04qh6KR4t/s320/15603.jpg" width="320" /></a></div>
本實作介紹如何使用紅外線接收模組的接收信號配合L298N電機驅動模組控制馬達正、反轉來完成簡易的紅外線遙控汽車。<br />
<br />
關於紅外線(Infrared,IR)的通訊請參考上一篇學習文章:<a href="https://www.twbts.work/2018/12/infraredir.html" target="_blank">Ardunio:實作紅外線(Infrared,IR)代碼擷取</a>。本篇的重點落在L289N電機驅動模組上。L298N是一種高電壓、大電流電機驅動晶片,採用15腳封裝。主要特點是工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續工作電流為2A;額定功率25W。內含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動直流馬達和步進馬達、繼電器線圈等電感性負載。<br />
<a href="https://www.blogger.com/null" name="more"></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsVo4yhgM7MVxhr-7bMQDIHxisRnHOIq6ku3Qfd-4lZogF9bvLp85rXLEewSxDs1mkpgXuQ77lOHAFvKmyBTgfJw7P8DGgck2QUJNuzBlDdSdbmVolLLIpAzNBM-h75ca1GMCbq8mdwIi4/s1600/15595.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsVo4yhgM7MVxhr-7bMQDIHxisRnHOIq6ku3Qfd-4lZogF9bvLp85rXLEewSxDs1mkpgXuQ77lOHAFvKmyBTgfJw7P8DGgck2QUJNuzBlDdSdbmVolLLIpAzNBM-h75ca1GMCbq8mdwIi4/s320/15595.jpg" width="320" /></a></div>
<div>
使用L298N晶片驅動馬達,該晶片可以驅動一台兩相步進馬達或四相步進馬達,也可以驅動兩台直流馬達。本實作使用的L298N電機驅動模組是2路的H橋驅動,所以可以同時驅動兩個馬達。<br />
<br />
<ul>
<li><span style="color: #e69138;"><b>致能 ENA 之後,從IN1 IN2輸入PWM信號驅動馬達1的轉速和方向。</b></span></li>
<li><span style="color: #e69138;"><b>致能 ENB之後,可從IN3 IN4輸入PWM信號驅動馬達2的轉速和方向。</b></span></li>
</ul>
</div>
<div>
<b style="color: #38761d;"></b><br />
<a name='more'></a><b style="color: #38761d;"> L298N電機驅動模組應用於步進馬達的控制效果如下:</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtGX-t_Qs6HoZxY6zC70PgbAhmgWMaFbJXsZb-82cI4B8PL9oo94iYCKBVLmFEudBHEOcaeOfOi5dxK9_3v9lmqeE7WniLzcJOCW9q2SS_e4C5XjGeEv_rmY8P7yZ9bWDfI82v9cHOyF67/s1600/ADIO-L298N_06.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="253" data-original-width="565" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtGX-t_Qs6HoZxY6zC70PgbAhmgWMaFbJXsZb-82cI4B8PL9oo94iYCKBVLmFEudBHEOcaeOfOi5dxK9_3v9lmqeE7WniLzcJOCW9q2SS_e4C5XjGeEv_rmY8P7yZ9bWDfI82v9cHOyF67/s1600/ADIO-L298N_06.gif" /></a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div>
<span style="color: #0b5394;"><b> L298N電機驅動模組應用於直流馬達的控制效果如下:</b></span></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGszFA89Y-myS2SNBeFxe-55UE1mh0ve_-bkc0_62htyzZRnMnT1VvckDkn65YYEfytzGviXhyphenhyphenYnAPBYq_GjN8CxxE4pg026qnNsDOpUtbiSZKYidVsdKihyPlZXxVJ13Dz6KyAp_AmsDU/s1600/ADIO-L298N_07.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="207" data-original-width="645" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGszFA89Y-myS2SNBeFxe-55UE1mh0ve_-bkc0_62htyzZRnMnT1VvckDkn65YYEfytzGviXhyphenhyphenYnAPBYq_GjN8CxxE4pg026qnNsDOpUtbiSZKYidVsdKihyPlZXxVJ13Dz6KyAp_AmsDU/s1600/ADIO-L298N_07.gif" /></a></div>
<div>
<br /></div>
</div>
<span style="color: #cc0000;"><b> 車輛控制程式碼: </b></span><br />
<pre class="code prettyprint">#include <IRremote.h>
const int negR=4;
const int posR=5;
const int negL=6;
const int posL=7;
const int pwmR=9;
const int pwmL=10;
const int Rled=2;
const int Lled=8;
int Rspeed=200;
int Lspeed=200;
long FOR=0xFF18E7;
long BACK=0xFF4AB5;
long RIGHT=0xFF5AA5;
long LEFT=0xFF10EF;
long PAUSE=0xFF38C7;
long key7=0xFF42BD;
long key9=0xFF52AD;
long AddSpeed=0xFFA857;
long DecSpeed=0xFFE01F;
int RECV_PIN = 3; // 使用數位腳位3接收紅外線訊號
IRrecv irrecv(RECV_PIN); // 初始化紅外線訊號輸入
decode_results results; // 儲存訊號
boolean status[2]={0,0};
const int led[2]={12,11};
int i;
void setup()
{
pinMode(posR,OUTPUT);
pinMode(negR,OUTPUT);
pinMode(posL,OUTPUT);
pinMode(negL,OUTPUT);
pinMode(Rled,OUTPUT);
pinMode(Lled,OUTPUT);
pinMode(led[0],OUTPUT);
pinMode(led[1],OUTPUT);
digitalWrite(Rled,LOW);
digitalWrite(Lled,LOW);
for(i=0;i<2;i++)
digitalWrite(led[i],LOW);
irrecv.blink13(true); // 收到紅外線訊號腳位13的LED閃爍
irrecv.enableIRIn(); // 致能接收
}
void loop() {
if (irrecv.decode(&results)) // 開始紅外線訊號解碼
{
irrecv.resume(); // 準備接收下一個訊號
if(results.value==FOR){
forward(Rspeed,Lspeed);
digitalWrite(Rled,1);
digitalWrite(Lled,1);
}
else if(results.value==BACK)
back(Rspeed,Lspeed);
else if(results.value==RIGHT)
{
right(Rspeed,Lspeed);
status[1]=~status[1];
digitalWrite(Rled,1);
}
else if(results.value==LEFT)
{
left(Rspeed,Lspeed);
status[0]=~status[0];
digitalWrite(Lled,1);
}
else if(results.value==PAUSE)
{
pause(0,0);
for(i=0;i<2;i++)
{
status[i]=0;
digitalWrite(led[i],1);
}
digitalWrite(Rled,LOW);
digitalWrite(Lled,LOW);
}
//加速
else if(results.value==AddSpeed)
{
pause(0,0);
if (Rspeed<300){
Rspeed=Rspeed+10;
Lspeed=Lspeed+10;
}
}
//減速
else if(results.value==DecSpeed)
{
pause(0,0);
if (Rspeed>=150){
Rspeed=Rspeed-10;
Lspeed=Lspeed-10;
}
}
}
for(i=0;i<2;i++)
{
if(status[i]!=0)
{
digitalWrite(led[i],HIGH);
delay(200);
digitalWrite(led[i],LOW);
delay(200);
}
}
}
void forward(byte RmotorSpeed, byte LmotorSpeed)
{
analogWrite(pwmR,RmotorSpeed);
analogWrite(pwmL,LmotorSpeed);
digitalWrite(posR,HIGH);
digitalWrite(negR,LOW);
digitalWrite(posL,LOW);
digitalWrite(negL,HIGH);
}
void back(byte RmotorSpeed, byte LmotorSpeed)
{
analogWrite(pwmR,RmotorSpeed);
analogWrite(pwmL,LmotorSpeed);
digitalWrite(posR,LOW);
digitalWrite(negR,HIGH);
digitalWrite(posL,HIGH);
digitalWrite(negL,LOW);
}
void pause(byte RmotorSpeed, byte LmotorSpeed)
{
analogWrite(pwmR,RmotorSpeed);
analogWrite(pwmL,LmotorSpeed);
digitalWrite(posR,LOW);
digitalWrite(negR,LOW);
digitalWrite(posL,LOW);
digitalWrite(negL,LOW);
}
void right(byte RmotorSpeed, byte LmotorSpeed)
{
analogWrite(pwmR,RmotorSpeed);
analogWrite(pwmL,LmotorSpeed);
digitalWrite(posR,LOW);
digitalWrite(negR,LOW);
digitalWrite(posL,LOW);
digitalWrite(negL,HIGH);
}
void left(byte RmotorSpeed, byte LmotorSpeed)
{
analogWrite(pwmR,RmotorSpeed);
analogWrite(pwmL,LmotorSpeed);
digitalWrite(posR,HIGH);
digitalWrite(negR,LOW);
digitalWrite(posL,LOW);
digitalWrite(negL,LOW);
} </pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDm7Tb6rpSJd7uJXyi_CV4L9QfscMgSO_5XhT9KPV2rpJ3y_Rai4XQp_X4OApEZTPKVQVkAdN0Z9BmgqV1vJER5vitpMGsQ-FzqghMCC9jMQdv-6p9tupJHelX8tHZ6CMj4_2hwhUECEDv/s1600/15602.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDm7Tb6rpSJd7uJXyi_CV4L9QfscMgSO_5XhT9KPV2rpJ3y_Rai4XQp_X4OApEZTPKVQVkAdN0Z9BmgqV1vJER5vitpMGsQ-FzqghMCC9jMQdv-6p9tupJHelX8tHZ6CMj4_2hwhUECEDv/s320/15602.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqBu0-nIuUYov2ZMhWLiB3v52fx5buJPBXzwL9zQ5PehGBOpozNXaufcKa8OYou5x_qvCRVUfibgjaTuWXRUtf6SO6UpLJO-JSyTGLpvKE6mBgohImB90h0jjSd3s1-NBciA5ygUJE70d6/s1600/15604.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqBu0-nIuUYov2ZMhWLiB3v52fx5buJPBXzwL9zQ5PehGBOpozNXaufcKa8OYou5x_qvCRVUfibgjaTuWXRUtf6SO6UpLJO-JSyTGLpvKE6mBgohImB90h0jjSd3s1-NBciA5ygUJE70d6/s320/15604.jpg" width="320" /></a></div>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-66605601848846404832023-10-24T00:34:00.000-07:002023-10-24T00:34:55.724-07:00超音波測距小車材料:D2-4超音波測距小車套件。 <div><br /></div><div> 特點:採取超音波模組探測障礙物並轉彎迴避障礙物。 </div><div><br /></div><div> 應用:車輛障礙警示迴避 </div><div><br /></div><div> 實驗成品:</div><div><br /><div style="text-align: center;"><iframe frameborder="0" height="360" src="https://youtube.com/embed/RHVXyBPlDOQ" width="640"></iframe></div></div><div><br /></div><div><span style="color: #674ea7; font-size: large;"><span><a name='more'></a></span>※HC-SR04模組工作原理:</span></div><div><div>(1)使用用IO觸發測距,給至少10us的高電平信號</div><div>(2)模組自動發送8個40khz的方波,自動檢測是否有信號返回</div><div>(3)有信號返回時通過IO輸出一高電平,高電平持續的時間就是超聲波從發射到返回的時間</div><div>(4)測試距離=(高電平時間*聲速(340M/S))/2</div><div>(5)偵測距離:輸入DC5V時、偵測距離2cm~450cm</div></div><div><br /></div><div><span style="color: #351c75; font-size: medium;">※STC15W204S 單晶片與左右電動機電路圖</span></div><div><table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOVdC0B583L7XM7qmIEJDMv03VaqGQCdOjcSR7HKi16rodz2eV_2snhnV3v6vYe-FVwHm-djO48x10LYVSWBJMrM-zQAhOtelUeydSXFWUR9qjRhWIApftw6iLBTlu9hgRUyF1gbmBM-aS/s612/3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="309" data-original-width="612" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOVdC0B583L7XM7qmIEJDMv03VaqGQCdOjcSR7HKi16rodz2eV_2snhnV3v6vYe-FVwHm-djO48x10LYVSWBJMrM-zQAhOtelUeydSXFWUR9qjRhWIApftw6iLBTlu9hgRUyF1gbmBM-aS/s320/3.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvuvjhAHregEPQk2wHHW4g1B2XncmfK8DKz6DO_3E_4Hbdto2ORZNUHbgb_36TvOB3rSqP7OKzsMnuZ5AoXNSHh6tvTM3b7xsuwsdTJ08xT4pP1o9H4WMOPbjHsLwCG3R80-IGDgVY4kK5/s506/2.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="306" data-original-width="506" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvuvjhAHregEPQk2wHHW4g1B2XncmfK8DKz6DO_3E_4Hbdto2ORZNUHbgb_36TvOB3rSqP7OKzsMnuZ5AoXNSHh6tvTM3b7xsuwsdTJ08xT4pP1o9H4WMOPbjHsLwCG3R80-IGDgVY4kK5/s320/2.png" width="320" /></a><br /><br /></td></tr></tbody></table></div><div><span style="color: #351c75; font-size: medium;">套件清單:</span></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6FsP92Wp3l0aJHaQw0D8yOxz-kVbFaAdDFFSWLvUNDNZx2K-sFvLbDYamKSak28sVdEzknr5dodQjsE6Gj6d5EIDy026zyAcVtkMbpmQAX9RBOxW08IzmyipxGXMKAg6sGeoN2O79xLtf/s762/1.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="313" data-original-width="762" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6FsP92Wp3l0aJHaQw0D8yOxz-kVbFaAdDFFSWLvUNDNZx2K-sFvLbDYamKSak28sVdEzknr5dodQjsE6Gj6d5EIDy026zyAcVtkMbpmQAX9RBOxW08IzmyipxGXMKAg6sGeoN2O79xLtf/w640-h262/1.png" width="640" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcTKLRx55qGTRZmyXhsFG_3QXx-AcHILWlZZJlKVBnKeXW0M2z1V9HB7cjimLHlMraE_0crPL1x6FdJQRvhtYoOJP2yKt2dMAvmh1JkBpZcB4MbldhvNykdi6_Nlw9fnE0YFGJFrorA7pa/s1044/IMG_20201227_152714.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcTKLRx55qGTRZmyXhsFG_3QXx-AcHILWlZZJlKVBnKeXW0M2z1V9HB7cjimLHlMraE_0crPL1x6FdJQRvhtYoOJP2yKt2dMAvmh1JkBpZcB4MbldhvNykdi6_Nlw9fnE0YFGJFrorA7pa/w640-h360/IMG_20201227_152714.jpg" width="640" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div>步驟一:佈置電阻元件。<table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXNK_laHctbJBwD40nDx9EBEVsJFAQl2ninq_Q7gPceNwIj-ytT6Usp5EHKBOAaCBMuvcZSPPnFbZ6WJ47SDE9NnO69Dt5kWjN7s_344RgUl7IhSTZ-WLZ9Pentdgxo75aVGiOP4gfc9i/s1044/IMG_20201227_153631.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZXNK_laHctbJBwD40nDx9EBEVsJFAQl2ninq_Q7gPceNwIj-ytT6Usp5EHKBOAaCBMuvcZSPPnFbZ6WJ47SDE9NnO69Dt5kWjN7s_344RgUl7IhSTZ-WLZ9Pentdgxo75aVGiOP4gfc9i/s320/IMG_20201227_153631.jpg" width="320" /></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9xXmrZ5KP_kFR63OFeoZjeg9PLMBxhzRvOuOfXhRnhb12XLRJTPBCbdl0Bp_12TLT-xmFBaRzszl21_Fy4TqH5tm1AAmUNJkSE43iZr7-5orqjrm_97fPVXhdJY_0MxlsGP3ERrahbQa6/s1044/IMG_20201227_154303.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9xXmrZ5KP_kFR63OFeoZjeg9PLMBxhzRvOuOfXhRnhb12XLRJTPBCbdl0Bp_12TLT-xmFBaRzszl21_Fy4TqH5tm1AAmUNJkSE43iZr7-5orqjrm_97fPVXhdJY_0MxlsGP3ERrahbQa6/s320/IMG_20201227_154303.jpg" width="320" /></a></div><br /></td></tr></tbody></table></div><div>步驟二:佈置LED與輕觸按鍵。</div><table><tbody><tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCXU-2Zt824nw4uI08ONtDJq2fGmAALN-l2wo4x0W70OVUnk9ZKDJDXauntjVPhHxgFQww1juFiixJudhW3bqyUVJaPtLxcz3ZEtixokWguRyFjiH9ggv1a6XNEGysI-ol2gpMWE2Kx3AS/s1044/IMG_20201227_154415.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCXU-2Zt824nw4uI08ONtDJq2fGmAALN-l2wo4x0W70OVUnk9ZKDJDXauntjVPhHxgFQww1juFiixJudhW3bqyUVJaPtLxcz3ZEtixokWguRyFjiH9ggv1a6XNEGysI-ol2gpMWE2Kx3AS/s320/IMG_20201227_154415.jpg" width="320" /></a><br /><br /></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeuiyAGjenI2hFVo8c7pdZXnKz0XNkiQwh7Y1Y9DlYfJNjAvdmpFdaRNOwmdfQgEc2BQyNwe1b1f-6TO7TPRZk7h1ytbK0KFzu76YYokgtPaDdcBU-HYIO10u4I4oHdG-pHUx3DfgnhlmC/s1044/IMG_20201227_154736.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeuiyAGjenI2hFVo8c7pdZXnKz0XNkiQwh7Y1Y9DlYfJNjAvdmpFdaRNOwmdfQgEc2BQyNwe1b1f-6TO7TPRZk7h1ytbK0KFzu76YYokgtPaDdcBU-HYIO10u4I4oHdG-pHUx3DfgnhlmC/s320/IMG_20201227_154736.jpg" width="320" /></a><br /><br /></td></tr></tbody></table>步驟三:佈置超音波模組、七節顯示器、單晶片IC座與電源開關。<div><table><tbody><tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK2_5mXe7oMAgX8V9_IlqwexVOKl8fjj5nN510fUr5Ee2rdrNUCFU6K_kAQPseeGXfXLoNz1qVvM8FS5iYuCVa1NXLjGhSd5PZhgsy_BgoZXoaZBN0kSQ8WJALIH385hL_jDwJVn0bDWc2/s1044/IMG_20201227_154928.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK2_5mXe7oMAgX8V9_IlqwexVOKl8fjj5nN510fUr5Ee2rdrNUCFU6K_kAQPseeGXfXLoNz1qVvM8FS5iYuCVa1NXLjGhSd5PZhgsy_BgoZXoaZBN0kSQ8WJALIH385hL_jDwJVn0bDWc2/s320/IMG_20201227_154928.jpg" width="320" /></a><br /><br /></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMVfuSmFykdMvsV-w4Rmec_O2_n5N0Lh5V5gt0ofDI26wPA-geTLp6DZzKMOViPAhzPtVvPxmWJIIyKCKUWgPSGMt_bvV-M2MkKy68EDdAxNFA9M48WeotiaygnyBbyK3TbqYqYN00EJxk/s1044/IMG_20201227_155218.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMVfuSmFykdMvsV-w4Rmec_O2_n5N0Lh5V5gt0ofDI26wPA-geTLp6DZzKMOViPAhzPtVvPxmWJIIyKCKUWgPSGMt_bvV-M2MkKy68EDdAxNFA9M48WeotiaygnyBbyK3TbqYqYN00EJxk/s320/IMG_20201227_155218.jpg" width="320" /></a><br /><br /></td></tr></tbody></table>步驟四:佈置電容與電晶體。<table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKXNpfWS8cQSXbQANOk2FLdNY8WLtnFedfTNpTqk93a8zNEalm7UduUQSQheBNQC84N9ikv9JEJlUgyGYgo9lE8uTsx9Y52dR-DwU9gi9l9eWwmoDdLYDbO3wzVKrJyNVxP3xHWSTNjb0e/s1044/IMG_20201227_155427.jpg" style="margin-left: 1em; margin-right: 1em;"><span style="color: black;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKXNpfWS8cQSXbQANOk2FLdNY8WLtnFedfTNpTqk93a8zNEalm7UduUQSQheBNQC84N9ikv9JEJlUgyGYgo9lE8uTsx9Y52dR-DwU9gi9l9eWwmoDdLYDbO3wzVKrJyNVxP3xHWSTNjb0e/s320/IMG_20201227_155427.jpg" width="320" /></span></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWYb-ywFr5B8CMohdend3cNONl0cOqYndSQMq0NHrv4quTlb3fVBEsq3hVzciDlYOinom3UKh3m3_Y7JP6qA6FBuebElEJOJeX42rDmZPMZI2mtcWtb06ZD2KuRtHmzTHB2Iy-nbEY5dn0/s1044/IMG_20201227_155554.jpg" style="margin-left: 1em; margin-right: 1em;"><span style="color: black;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWYb-ywFr5B8CMohdend3cNONl0cOqYndSQMq0NHrv4quTlb3fVBEsq3hVzciDlYOinom3UKh3m3_Y7JP6qA6FBuebElEJOJeX42rDmZPMZI2mtcWtb06ZD2KuRtHmzTHB2Iy-nbEY5dn0/s320/IMG_20201227_155554.jpg" width="320" /></span></a></div><br /></td></tr></tbody></table>步驟五:焊接正面佈置的電子元件。</div><div>步驟六:導航輪用螺絲組件替代。焊接與固定電池盒。</div><div>步驟七:組裝馬達輪子與焊接馬達電源。馬達連接沒有正負指示,只有焊上去才能知道正確的轉向,當輪子向前轉才是正確的喔!<br /><table><tbody><tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFO9gOvlPVBClwrhX2Td7IqI2CzmK0tpRxh-PbJwZP2zqsNhyphenhyphenIr5xnoD_iqQUdsOdnezkFwI1dOlKxjOEJOyJw95HdIx716kvcKzApUd-eQDVOTBQDXFNihAmil7EnVZPkhgyI0GpO5SRG/s1044/IMG_20201227_161752.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFO9gOvlPVBClwrhX2Td7IqI2CzmK0tpRxh-PbJwZP2zqsNhyphenhyphenIr5xnoD_iqQUdsOdnezkFwI1dOlKxjOEJOyJw95HdIx716kvcKzApUd-eQDVOTBQDXFNihAmil7EnVZPkhgyI0GpO5SRG/s320/IMG_20201227_161752.jpg" width="320" /></a><br /><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKiLjvi-OOcBhVxJLqmKcvuH6-ixdFSfX3W5HHEYVD4Pt_BR_dRAEX0SNMlCoTcpH_DwU5EhKFUtVTOVyE2VS1eNEmp055bQjywrkDG80Cz3DZhSUpdSxBPTr6sF3fqGFIjQ6yjzfsojeJ/s1044/IMG_20201227_163239.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKiLjvi-OOcBhVxJLqmKcvuH6-ixdFSfX3W5HHEYVD4Pt_BR_dRAEX0SNMlCoTcpH_DwU5EhKFUtVTOVyE2VS1eNEmp055bQjywrkDG80Cz3DZhSUpdSxBPTr6sF3fqGFIjQ6yjzfsojeJ/s320/IMG_20201227_163239.jpg" width="320" /></a></div><br /></td></tr></tbody></table></div>步驟八:插上單晶片IC、裝上電池。完工~~<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixcEmlFSA3F1S6-joX2LIp04ZOWiCND68zGq8qtCBaDghMYM7TdHeWBsor0wu8oXcqELIuiVs1SkkWV0n0ngs1Rz0qra6SNqQtxicasL0sVwqhYV47F87sTpJQafQFDbtXgiF4wAd6CYM8/s1044/IMG_20201227_170448.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixcEmlFSA3F1S6-joX2LIp04ZOWiCND68zGq8qtCBaDghMYM7TdHeWBsor0wu8oXcqELIuiVs1SkkWV0n0ngs1Rz0qra6SNqQtxicasL0sVwqhYV47F87sTpJQafQFDbtXgiF4wAd6CYM8/w640-h360/IMG_20201227_170448.jpg" width="640" /></a></div><br /><div><br /><div><br /></div></div>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-53206340367266337922023-10-16T00:19:00.000-07:002023-10-16T00:19:04.680-07:00超音波量測與LCD距離顯示<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2hNwmzYAQ1MIB8ph_NJg5zgLDwzcgV3ZRcOSM6uJtYQGyoC_5iB3RHrxmY0NniE1xVF-X_3WKcIB6GklEofcc53BKjiA3NFiTsWe9WVR0-KTgNwrJ1UhlgRoIf6Kn_T3FCPZ6E-zfrNX-/s1600/13021.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2hNwmzYAQ1MIB8ph_NJg5zgLDwzcgV3ZRcOSM6uJtYQGyoC_5iB3RHrxmY0NniE1xVF-X_3WKcIB6GklEofcc53BKjiA3NFiTsWe9WVR0-KTgNwrJ1UhlgRoIf6Kn_T3FCPZ6E-zfrNX-/s320/13021.jpg" width="320" /></a></div>
<br />
利用 HC-SR04R模組測量物體距離,並將量測得知的距離數據顯示於LCD模組中;當超出量測範圍 2cm< 或 >300cm 時,LCD 顯示 Out of Range!! 並亮起警示的紅色 LED。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4foiNt-hrIghBNqgiynRgLFBP-KVt4MqLEtatstieiVvzqLnlMYB9a9ynn4tYwZ6x_AhRkHoala81qYD3ppctLQAr2dZGdd9Nk_urqVsrRiOGVU9eU2oLiVxooIFtkKSmjuYQXCYeEYbb/s1600/13022.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4foiNt-hrIghBNqgiynRgLFBP-KVt4MqLEtatstieiVvzqLnlMYB9a9ynn4tYwZ6x_AhRkHoala81qYD3ppctLQAr2dZGdd9Nk_urqVsrRiOGVU9eU2oLiVxooIFtkKSmjuYQXCYeEYbb/s320/13022.jpg" width="320" /></a></div>
<br />
<span style="color: #e69138;"><b>[模組材料]</b></span><br />
• Arduino Uno x 1<br />
• Uno 擴張板 x 1<br />
• HC-SR04R超音波測距模組 x1<br />
• LCD模組1602A x1<br />
• I2C匯流排 x1(簡化LCD模組控制線路)<br />
• 紅色LED x1(作為超過量測範圍警示燈)<br />
• 杜邦連接線 x 10條<br />
<br />
<a href="https://www.blogger.com/null" name="more"></a><br />
<br />
<a name='more'></a><br />
<div style="text-align: left;">
<br /></div>
<b style="color: #674ea7;">[[超音波測距模組]]</b><br />
超音波測距模組一般都是用HC-SR04,小誌這次使用HC-SR04P。<br />
1.最低工作電壓3V,與3.3V供電的MCU可以直接連接。<br />
2.探測距離5V時:2cm~450cm<br />
3. 探測距離3.3V時:2cm~400cm<br />
4.探測角度:小於15度<br />
5.工作溫度:-20度C~+80度C<br />
<table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="background: white; border-collapse: collapse; margin-left: -.5pt; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-yfti-tbllook: 1184;"><tbody>
<tr><td style="border: 1pt solid; padding: 0cm 5.4pt; width: 127.6pt;" valign="top" width="170"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<b><span lang="EN-US" style="border: 1pt none; color: blue; font-family: "inherit" , serif; font-size: 10pt; padding: 0cm;">HC-SR04R </span></b><b><span style="border: 1pt none; color: blue; font-family: "新細明體" , serif; font-size: 10pt; padding: 0cm;">超音波</span></b><b><span style="border: 1pt none; color: blue; font-family: "新細明體" , serif; font-size: 10pt; padding: 0cm;">模組</span></b><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td><td style="border: 1pt solid; padding: 0cm 5.4pt; width: 106.3pt;" valign="top" width="142"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<b><span lang="EN-US" style="border: 1pt none; color: blue; font-family: "inherit" , serif; font-size: 10pt; padding: 0cm;">Arduino </span></b><b><span style="border: 1pt none; color: blue; font-family: "新細明體" , serif; font-size: 10pt; padding: 0cm;">腳位對應</span></b><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
<tr><td style="border: 1pt solid; padding: 0cm 5.4pt; width: 127.6pt;" valign="top" width="170"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<span lang="EN-US" style="border: 1pt none; color: #585858; font-size: 10pt; padding: 0cm;">1 - </span><span lang="EN-US" style="border: 1pt none; color: #585858; font-family: "inherit" , serif; font-size: 10pt; padding: 0cm;">VCC</span><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td><td style="border-bottom: 1pt solid; border-left: none; border-right: 1pt solid; border-top: none; padding: 0cm 5.4pt; width: 106.3pt;" valign="top" width="142"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<span lang="EN-US" style="border: 1pt none; color: #585858; font-size: 10pt; padding: 0cm;">VCC</span><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
<tr><td style="border: 1pt solid; padding: 0cm 5.4pt; width: 127.6pt;" valign="top" width="170"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<span lang="EN-US" style="border: 1pt none; color: #585858; font-size: 10pt; padding: 0cm;">2 - </span><span lang="EN-US" style="border: 1pt none; color: #585858; font-family: "inherit" , serif; font-size: 10pt; padding: 0cm;">Trig – Trigger</span><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td><td style="border-bottom: 1pt solid; border-left: none; border-right: 1pt solid; border-top: none; padding: 0cm 5.4pt; width: 106.3pt;" valign="top" width="142"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<span lang="EN-US" style="border: 1pt none; color: #585858; font-size: 10pt; padding: 0cm;">DPin X S</span><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
<tr><td style="border: 1pt solid; padding: 0cm 5.4pt; width: 127.6pt;" valign="top" width="170"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<span lang="EN-US" style="border: 1pt none; color: #585858; font-size: 10pt; padding: 0cm;">3 - </span><span lang="EN-US" style="border: 1pt none; color: #585858; font-family: "inherit" , serif; font-size: 10pt; padding: 0cm;">Echo</span><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td><td style="border-bottom: 1pt solid; border-left: none; border-right: 1pt solid; border-top: none; padding: 0cm 5.4pt; width: 106.3pt;" valign="top" width="142"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<span lang="EN-US" style="border: 1pt none; color: #585858; font-size: 10pt; padding: 0cm;">DPin X S</span><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
<tr><td style="border: 1pt solid; padding: 0cm 5.4pt; width: 127.6pt;" valign="top" width="170"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<span lang="EN-US" style="border: 1pt none; color: #585858; font-size: 10pt; padding: 0cm;">4 - </span><span lang="EN-US" style="border: 1pt none; color: #585858; font-family: "inherit" , serif; font-size: 10pt; padding: 0cm;">GND</span><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td><td style="border-bottom: 1pt solid; border-left: none; border-right: 1pt solid; border-top: none; padding: 0cm 5.4pt; width: 106.3pt;" valign="top" width="142"><div class="MsoNormal" style="mso-pagination: widow-orphan; vertical-align: baseline;">
<span lang="EN-US" style="border: 1pt none; color: #585858; font-size: 10pt; padding: 0cm;">GND</span><span lang="EN-US" style="color: #585858; font-family: "inherit" , serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
</tbody></table>
<br />
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCimUUlYVd7tX9NdotsGafKK6iVVCYlVjHE583-z1u62NGfbyUCgBw-EOAQupU4dn7EOJCENGbhPufTucwWTH0G9n6ot1mUdEBExEMewREnv40Yg2ctV6bWSa2XIjyS_xVe_pGfBTunRrm/s1600/image2017-10-3%252B10_5_33.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="342" data-original-width="609" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCimUUlYVd7tX9NdotsGafKK6iVVCYlVjHE583-z1u62NGfbyUCgBw-EOAQupU4dn7EOJCENGbhPufTucwWTH0G9n6ot1mUdEBExEMewREnv40Yg2ctV6bWSa2XIjyS_xVe_pGfBTunRrm/s320/image2017-10-3%252B10_5_33.png" width="320" /></a></div>
<span style="color: #999999; font-size: xx-small;">HC-SR04與HC-SR04外觀比較圖來源:https://docs.labs.mediatek.com/linkit-7697-blocklyduino/a24-hc-sr04p-12882982.html?selectedPageVersions=5&selectedPageVersions=6</span><br />
<br />
<span style="color: #45818e;"><b>[[LCD模組]]</b></span><br />
<br />
<ul>
<li>此次實驗的顯示模組採用1602A,此款LCD模組是最基本、常見的字元型LCD,使用的電壓為5V,2行顯示,每行可顯示16個字元。</li>
<li>為了簡化顯示模組配線,另配合I2C匯流排來通訊傳輸,因此最終的LCD顯示模組只有四隻接腳,分別為Vcc、GND、SDA、SCL。</li>
<li>I2C匯流排能夠讓兩個裝置之間以穩定、高速、雙向的方式只使用兩條線來進行通訊,一條時脈線(SCL)和一條數據線(SDA),所以I2C匯流排所使用的通訊協定也被稱之為「雙線」通訊協定。</li>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIN5UpKP8qwU3No3rJFwmZaP5PymWvSIKxyRfiPk75OOchkU8v9tX1Cowv6TQKTEPHfgW5mYjcDPn957DzSzBw2nA6OdY2FYHRTvyvhyHJzGwTQMzLEujjbU4c5UlsiFc5FaWtavCa9iFX/s1600/13023.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIN5UpKP8qwU3No3rJFwmZaP5PymWvSIKxyRfiPk75OOchkU8v9tX1Cowv6TQKTEPHfgW5mYjcDPn957DzSzBw2nA6OdY2FYHRTvyvhyHJzGwTQMzLEujjbU4c5UlsiFc5FaWtavCa9iFX/s320/13023.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid0gmzEvmp9iayDIizTR-XCQDKXSFBFrkgu6hLLwiMQ4PD12mGKrcQP8VlC-1yNw_MsvEBJfqpFnTb-EbVy1BCy5En6YFdatnCCnJ0O9PL0vbGwy6SUjs2yBMkqlpUBCDrULFXjvf2WONw/s1600/13020.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid0gmzEvmp9iayDIizTR-XCQDKXSFBFrkgu6hLLwiMQ4PD12mGKrcQP8VlC-1yNw_MsvEBJfqpFnTb-EbVy1BCy5En6YFdatnCCnJ0O9PL0vbGwy6SUjs2yBMkqlpUBCDrULFXjvf2WONw/s320/13020.jpg" width="320" /></a></div>
<table border="1" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="background: white; border-collapse: collapse; border: none; mso-border-alt: solid #CCCCCC .75pt; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-yfti-tbllook: 1184;"><tbody>
<tr style="height: 15.75pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: #0070c0; font-family: "arial" , sans-serif; font-size: 10pt;">LCD</span></b><b style="mso-bidi-font-weight: normal;"><span style="color: #0070c0; font-family: "新細明體" , serif; font-size: 10pt;">接腳</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: #0070c0; font-family: "arial" , sans-serif; font-size: 10pt;"><o:p></o:p></span></b></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<b style="mso-bidi-font-weight: normal;"><span style="color: #0070c0; font-family: "新細明體" , serif; font-size: 10pt;">功能</span></b><b style="mso-bidi-font-weight: normal;"><span lang="EN-US" style="color: #0070c0; font-family: "arial" , sans-serif; font-size: 10pt;"><o:p></o:p></span></b></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 1;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">1 (VSS)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">電源負極</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 2;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">2 (VCC)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">電源正極</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 3;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">3 (Vo)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">調整對比</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 4;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">4 (RS)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">D0~D7</span><span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">放入資料暫存器</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> (1) </span><span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">或指令資料暫存器</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> (0)<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 5;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">5 (RW)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">讀取</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> (1) </span><span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">或寫入</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> (0) LCD<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 6;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">6 (E)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">可寫入</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> (1) </span><span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">或不可寫入</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> (0) LCD<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 7;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">7 (D0)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">資料位元</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> 0<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 8;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">8 (D1)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">資料位元</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> 1<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 9;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">9 (D2)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">資料位元</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> 2<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 10;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">10 (D3)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">資料位元</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> 3<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 11;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">11 (D4)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">資料位元</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> 4<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 12;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">12 (D5)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">資料位元</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> 5<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 13;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">13 (D6)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">資料位元</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> 6<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 14;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">14 (D7)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">資料位元</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"> 7<o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 15;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">15 (A+)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">背光電源正極</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
<tr style="height: 15.75pt; mso-yfti-irow: 16; mso-yfti-lastrow: yes;"><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;">16 (-K)<o:p></o:p></span></div>
</td><td style="height: 15.75pt; padding: 1.5pt 2.25pt;" valign="bottom"><div class="MsoNormal" style="mso-pagination: widow-orphan;">
<span style="color: #333333; font-family: "新細明體" , serif; font-size: 10pt;">背光電源負極</span><span lang="EN-US" style="color: #333333; font-family: "arial" , sans-serif; font-size: 10pt;"><o:p></o:p></span></div>
</td></tr>
</tbody></table>
<span style="color: #cc0000;"><b>[程式碼]</b></span><br />
<br />
<div>
</div>
<br />
<pre class="code prettyprint" style="-webkit-text-stroke-width: 0px; color: black; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; letter-spacing: normal; margin: 0px; orphans: 2; text-align: start; text-decoration-color: initial; text-decoration-style: initial; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;">#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
// 設定 LCD I2C 位址
// addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
long duration;
int intCM;
const byte trigPin=10;
const int echoPin=11;
const int LED=3;
void setup() {
// 初始化 LCD,一行 16 的字元,共 2 行,預設開啟背光
lcd.begin(16, 2);
//接腳IO定義
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH);
// 輸出啟動訊息
lcd.setCursor(0, 0); // 設定游標位置在第一行行首
lcd.print("SYSTEM START!!");
delay(3000);
lcd.clear(); //顯示清除
}
//測距計算
void GeneratedReturnCM()
{
//digitalWrite(trigPin, LOW);
//delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(20);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
duration = duration / 59;
if ((duration < 2) || (duration > 300)) {
digitalWrite(LED, LOW); //超出量測範圍亮燈
intCM = 0;
}else {
digitalWrite(LED, HIGH);
intCM = duration; //正常量測範圍熄燈
}
}
void loop() {
//LCD訊息輸出
lcd.clear(); //顯示清除
lcd.setCursor(0, 0); // 設定游標位置在第一行行首
lcd.print("Object Detection");
lcd.setCursor(0, 1); // 設定游標位置在第二行行首
GeneratedReturnCM(); //呼叫測距計算
//輸出超音波量測距離
if (intCM!=0){
lcd.print("Distance:");
lcd.print(intCM);
lcd.print("cm");
}else{
lcd.print("Out of Range!!");
}
//0.5秒後重複量測
delay(500);
}</pre>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-73619057137308540662023-10-10T02:27:00.000-07:002023-10-10T02:27:29.239-07:00超音波物體距離偵測<b><span style="color: red;">材</span></b><b><span style="color: red;">料:</span></b><b>Arduino主板一個、擴張版一個、雙母頭杜邦線8條、超音波感測器、紅黃綠LED各一。</b><br />
<b><br /></b>
<b><span style="color: #674ea7;">效用:</span><span style="color: #674ea7;">利用</span></b><b>超音波感測器測量物體距離,物體距離小於15公分亮紅燈;</b><b>物體距離大於15公分且小於30公分時亮黃燈;</b><b>物體距離超過30公分亮綠燈。</b><br />
<b><br /></b>
<b>應用:此裝置可用於防止汽車追撞的緊急剎車系統。</b><br />
<b><br /></b>
<span style="color: magenta; font-weight: 700;">電路接法:</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipC7is4C49kBatCPYjFk5Owjv6TTmsHbrajOJtaoPeJ6gLh8P6nwold4SucM4mB0Znt8X-9evnD1cJtdlROx_mwhl2BHGNn_WrSmRKdxvYAYsy39f-Q01f7PyNKIhx4ND_1zTunMqxM3A/s1600/12894.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipC7is4C49kBatCPYjFk5Owjv6TTmsHbrajOJtaoPeJ6gLh8P6nwold4SucM4mB0Znt8X-9evnD1cJtdlROx_mwhl2BHGNn_WrSmRKdxvYAYsy39f-Q01f7PyNKIhx4ND_1zTunMqxM3A/s320/12894.jpg" width="320" /></a></div>
<br />
<span style="color: magenta; font-weight: 700;"></span><br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: left;">
<span style="color: magenta; font-weight: 700;"><b style="color: #38761d;">圖形程式方塊</b></span><b style="color: #38761d;">:</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaDN8lUYPkadmkWf5BS6DPZv9F4baGj690boaVP_b-X4WeP2meePQ4XfVrum7481kKdguDQ0p3fI8z_QHu96gwrnE-c_6VwSAKNrU-wGwQgRE4Q7BYpvQ_0P6qyks8PYOGbPwVJZPoiTqe/s1600/bandicam+2018-06-30+14-06-01-317.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaDN8lUYPkadmkWf5BS6DPZv9F4baGj690boaVP_b-X4WeP2meePQ4XfVrum7481kKdguDQ0p3fI8z_QHu96gwrnE-c_6VwSAKNrU-wGwQgRE4Q7BYpvQ_0P6qyks8PYOGbPwVJZPoiTqe/s400/bandicam+2018-06-30+14-06-01-317.jpg" width="300" /></a></div>
<b style="color: #38761d;"><br /></b><b style="color: #38761d;"><b style="color: #f1c232;">程式碼:</b></b><br />
<div>
<div>
int _ABVAR_1_e = 0 ;</div>
<div>
int ardublockUltrasonicSensorCodeAutoGeneratedReturnCM(int trigPin, int echoPin)</div>
<div>
{</div>
<div>
long duration;</div>
<div>
pinMode(trigPin, OUTPUT);</div>
<div>
pinMode(echoPin, INPUT);</div>
<div>
digitalWrite(trigPin, LOW);</div>
<div>
delayMicroseconds(2);</div>
<div>
digitalWrite(trigPin, HIGH);</div>
<div>
delayMicroseconds(20);</div>
<div>
digitalWrite(trigPin, LOW);</div>
<div>
duration = pulseIn(echoPin, HIGH);</div>
<div>
duration = duration / 59;</div>
<div>
if ((duration < 2) || (duration > 300)) return false;</div>
<div>
return duration;</div>
<div>
}</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
void setup()</div>
<div>
{</div>
<div>
digitalWrite( 9 , LOW );</div>
<div>
<br /></div>
<div>
pinMode( 2 , OUTPUT);</div>
<div>
pinMode( 5 , OUTPUT);</div>
<div>
pinMode( 8 , OUTPUT);</div>
<div>
}</div>
<div>
<br /></div>
<div>
void loop()</div>
<div>
{</div>
<div>
_ABVAR_1_e = <span style="white-space: pre;"> </span>ardublockUltrasonicSensorCodeAutoGeneratedReturnCM( 9 , 10 ) ;</div>
<div>
if (( ( ( _ABVAR_1_e + 5 ) ) < ( 15 ) ))</div>
<div>
{</div>
<div>
digitalWrite(2 , HIGH);</div>
<div>
delay( 300 );</div>
<div>
digitalWrite(2 , LOW);</div>
<div>
delay( 300 );</div>
<div>
digitalWrite(2 , HIGH);</div>
<div>
}</div>
<div>
else</div>
<div>
{</div>
<div>
if (( ( ( _ABVAR_1_e + 5 ) ) < ( 50 ) ))</div>
<div>
{</div>
<div>
digitalWrite(5 , HIGH);</div>
<div>
delay( 300 );</div>
<div>
digitalWrite(5 , LOW);</div>
<div>
delay( 300 );</div>
<div>
digitalWrite(5 , HIGH);</div>
<div>
}</div>
<div>
else</div>
<div>
{</div>
<div>
digitalWrite(8 , HIGH);</div>
<div>
delay( 300 );</div>
<div>
digitalWrite(8 , LOW);</div>
<div>
delay( 300 );</div>
<div>
digitalWrite(8 , HIGH);</div>
<div>
}</div>
<div>
}</div>
<div>
}</div>
<div style="font-weight: bold;">
<br /></div>
</div>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-36874425180910767882023-10-03T05:11:00.000-07:002023-10-03T05:11:37.489-07:00利用紅外線遙控接收器和L298N製作遙控自動車<div style="text-align: center;">
<b><span style="color: #990000;">材料:</span></b>Arduino主板一個、18650電池盒1個(兩個電源接頭)、麵包短版1個、ZK-2自走車底盤套件、L298N電機驅動模組1個、遙控器一個、杜邦線約15條、紅外線遙控接收器一個。</div>
L298N電機驅動模組規格請參考:<a href="http://shop.cpu.com.tw/product/46920/info/" target="_blank">L298N</a><br />
紅外線遙控接收器模組規格請參考:<a href="https://goods.ruten.com.tw/item/show?21804642291122" target="_blank">1838b紅外線接收器</a><br />
<br />
<b><span style="color: #660000;">實作演練:</span></b>利用L298N電機驅動模組和 使自動車照著遙控器的指令動作。<br />
<br />
<b style="color: #073763;">應用:</b>電動遙控車。<br />
<br />
<span style="color: orange;"><b>成品外觀:</b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDc_EqKTRfd3mYeV1avrcjow6pMnIO-h6Kz1MyAP5I12nZnB-0bVbQ_mlR73Y5eSy2Rhdblc2EWutt9-V00kMYBVDSLHHuLMSTgOG0jZfoTjSuNU-KPZWouoRUjTsCy11y1thxnyJ3WLDv/s1600/392.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDc_EqKTRfd3mYeV1avrcjow6pMnIO-h6Kz1MyAP5I12nZnB-0bVbQ_mlR73Y5eSy2Rhdblc2EWutt9-V00kMYBVDSLHHuLMSTgOG0jZfoTjSuNU-KPZWouoRUjTsCy11y1thxnyJ3WLDv/s640/392.jpg" width="640" /></a></div>
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<a href="https://www.blogger.com/null" name="more"></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAXjce5TubdofDl72nhciku32Rg3I_IHytAV7wOGfmr-DdeHhyq6tHAXk_wjApI23DbCgyFxun1b7gLEcraTqjSTrN0-wR5DsnSdnulOtl6BG7oE3sL2GZ2GfyzqeNqZ8mKBFVC2oAWuBH/s1600/393.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAXjce5TubdofDl72nhciku32Rg3I_IHytAV7wOGfmr-DdeHhyq6tHAXk_wjApI23DbCgyFxun1b7gLEcraTqjSTrN0-wR5DsnSdnulOtl6BG7oE3sL2GZ2GfyzqeNqZ8mKBFVC2oAWuBH/s640/393.jpg" width="640" /></a></div>
<br />
<b style="color: orange;"></b> <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmdNnB2nWn8WgVLa8k5DpBeT9VIaXbS1zdQwANwsTcV56blZDJz5DR6aid6t8M9CJophibTqMZ4qpZIMFULGrYgA4auP5luXRV_bSbGT6OuZl_QvzsBHl4sqLqe_YI4ZCfeZripB6szQfD/s1600/394.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmdNnB2nWn8WgVLa8k5DpBeT9VIaXbS1zdQwANwsTcV56blZDJz5DR6aid6t8M9CJophibTqMZ4qpZIMFULGrYgA4auP5luXRV_bSbGT6OuZl_QvzsBHl4sqLqe_YI4ZCfeZripB6szQfD/s640/394.jpg" width="640" /></a></div>
<br />
<b style="color: orange;"></b> <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwY7thHjxy5ddd5NjR6b8vtb-TkrNj_LdTgCalrvWLP5Os4SLuZW0WimkL8dAE7VkFTDUEMnuTXIPa4YmSw8OVYROIEj1KT_1zhBvA6iTdNjRTHFT9S1xS3HcqlOqibxpwFj-Y86SOrJ-_/s1600/395.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwY7thHjxy5ddd5NjR6b8vtb-TkrNj_LdTgCalrvWLP5Os4SLuZW0WimkL8dAE7VkFTDUEMnuTXIPa4YmSw8OVYROIEj1KT_1zhBvA6iTdNjRTHFT9S1xS3HcqlOqibxpwFj-Y86SOrJ-_/s640/395.jpg" width="640" /></a></div>
<div style="text-align: center;">
<span style="color: orange;"><b><b style="color: #274e13;"><br /></b></b></span></div>
<div style="text-align: center;">
<span style="color: orange;"><b><b style="color: #274e13;"><iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/XsngHKrqPo4?rel=0" width="560"></iframe></b></b></span></div>
<div style="text-align: center;">
<span style="color: orange;"><b><b style="color: #274e13;">程式碼:(</b><span style="color: #274e13;">程式碼參考:楊明峰,ARDUINO自走車最佳入門與應用打造輪型機器人輕鬆學,碁峰)</span></b></span></div>
<br />
#include <IRremote.h><br />
const int negR=4;<br />
const int posR=5;<br />
const int negL=6;<br />
const int posL=7;<br />
const int pwmR=9;<br />
const int pwmL=10;<br />
const int Rspeed=200;<br />
const int Lspeed=200;<br />
long FOR=0xFF18E7;<br />
long BACK=0xFF4AB5;<br />
long RIGHT=0xFF5AA5;<br />
long LEFT=0xFF10EF;<br />
long PAUSE=0xFF38C7;<br />
int RECV_PIN = 2; // 使用數位腳位2接收紅外線訊號<br />
IRrecv irrecv(RECV_PIN); // 初始化紅外線訊號輸入<br />
decode_results results; // 儲存訊號的結構<br />
<br />
void setup()<br />
{<br />
pinMode(posR,OUTPUT);<br />
pinMode(negR,OUTPUT);<br />
pinMode(posL,OUTPUT);<br />
pinMode(negL,OUTPUT); <br />
irrecv.blink13(true); // 設為true的話,當收到訊號時,腳位13的LED便會閃爍<br />
irrecv.enableIRIn(); // 啟動接收<br />
}<br />
<br />
void loop() {<br />
if (irrecv.decode(&results)) // 接收紅外線訊號並解碼<br />
{<br />
irrecv.resume(); // 準備接收下一個訊號<br />
if(results.value==FOR)<br />
forward(Rspeed,Lspeed);<br />
else if(results.value==BACK)<br />
back(Rspeed,Lspeed);<br />
else if(results.value==RIGHT)<br />
right(Rspeed,Lspeed);<br />
else if(results.value==LEFT)<br />
left(Rspeed,Lspeed);<br />
else if(results.value==PAUSE)<br />
pause(0,0); <br />
}<br />
}<br />
<br />
void forward(byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
digitalWrite(posR,HIGH);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,HIGH); <br />
}<br />
void back(byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
digitalWrite(posR,LOW);<br />
digitalWrite(negR,HIGH); <br />
digitalWrite(posL,HIGH);<br />
digitalWrite(negL,LOW); <br />
}<br />
void pause(byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
digitalWrite(posR,LOW);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,LOW); <br />
}<br />
void right(byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
digitalWrite(posR,LOW);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,HIGH); <br />
}<br />
void left(byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
digitalWrite(posR,HIGH);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,LOW); <br />
}<br />
<div>
<br /></div>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-9787086522202330242023-09-26T00:47:00.000-07:002023-09-26T00:47:09.561-07:00紅外線(Infrared,IR)代碼擷取<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTekNQWjEePeY3GeeNrJ0OE-laZ_mxLWANz6y9rDgmKPpJqFgjxt2Q7RZXFVXeVpOqC5VKJvdabKvNp__9RWjuD60nqD1UckLZ1uyatO-x5bupYyCuE3l6PnWvB8-dECstg2am-Vknd2XP/s1600/15599.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTekNQWjEePeY3GeeNrJ0OE-laZ_mxLWANz6y9rDgmKPpJqFgjxt2Q7RZXFVXeVpOqC5VKJvdabKvNp__9RWjuD60nqD1UckLZ1uyatO-x5bupYyCuE3l6PnWvB8-dECstg2am-Vknd2XP/s320/15599.jpg" width="320" /></a></div>
紅外線(Infrared,IR)的通訊分為接收與發射模組,紅外線數不可見光,波長在約在770nm(奈米)至1mm(毫米)之間。紅外線的通訊編碼規則,由紅外線數據協會(IrDA,Infrared Data Association),於1994年時發表了IrDA1.0通用規範,但目前市面上的紅外線產品所使用的規格除了IrDA規範之外,還有部分廠商自行開發出紅外線規格,如NEC的PD6122及Philips的RC-5、RC-6。<br />
<br />
<a href="https://www.blogger.com/null" name="more"></a><br />
<br />
本實作使用VS1938B的紅外線接收模組,與一般通用之NEC的PD6122編碼紅外線遙控器。<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-uQjnX5rdWZ-_oQlK0fZg6cf9U55mxma23191qbq2YrHFGRgUjoeYRiI8fMYC4h15b0KQtjjFIgw9iB-ZSee28HBBpFDXGWELt4gVgC0yhyphenhyphengmzCnA9pYKaiV47B5PTC5QTmuxtbvUIpbz/s1600/15598.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-uQjnX5rdWZ-_oQlK0fZg6cf9U55mxma23191qbq2YrHFGRgUjoeYRiI8fMYC4h15b0KQtjjFIgw9iB-ZSee28HBBpFDXGWELt4gVgC0yhyphenhyphengmzCnA9pYKaiV47B5PTC5QTmuxtbvUIpbz/s320/15598.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj604F2QoUfbCVt995qRPfVj4o_E5Nv-kFqWs9J6NMKyXKWgA0KzDuIpBh98qoWami57_-ErgO71y-RVwmuezLXryMjwdaXzY0HI-6JdpR6gcHcLJZYIrw6lF-mnPepJVFyhlNX45dFbqs2/s1600/15594.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj604F2QoUfbCVt995qRPfVj4o_E5Nv-kFqWs9J6NMKyXKWgA0KzDuIpBh98qoWami57_-ErgO71y-RVwmuezLXryMjwdaXzY0HI-6JdpR6gcHcLJZYIrw6lF-mnPepJVFyhlNX45dFbqs2/s320/15594.jpg" width="320" /></a></div>
<br />
<a name='more'></a><br />
<br />
<span style="color: #a64d79;"><b> 紅外線接收模組只有三支接腳,價格便宜一隻約2~5元(台幣),外觀尺寸與接腳說明如下圖。</b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEfDBftZARVYbkeyLvjohV7WSukT5A5c0IfA7tND_IPzUyrWIg76FpdMYgOZFmHQYM6aTEI17Hkyyj-ABMmjLQsceTkNjdnKCVlWeXFFiMh8ziaNCqcdC6XtkwBfxedxcJgHRX5mcjxs49/s1600/VS1838-pic-spec.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="433" data-original-width="850" height="324" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEfDBftZARVYbkeyLvjohV7WSukT5A5c0IfA7tND_IPzUyrWIg76FpdMYgOZFmHQYM6aTEI17Hkyyj-ABMmjLQsceTkNjdnKCVlWeXFFiMh8ziaNCqcdC6XtkwBfxedxcJgHRX5mcjxs49/s640/VS1838-pic-spec.gif" width="640" /></a></div>
<br />
<span style="color: #b45f06;"><b> 測試程式碼如下,按下遙控器上的按鍵即會將其對應代碼輸出於序列埠通訊視窗。</b></span><br />
<pre class="code prettyprint">#include <IRremote.h> //引入紅外線通訊函數庫
const int RECV_PIN = 2; //訊號接腳是2號
IRrecv irrecv(RECV_PIN); //建置IR接收器
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); //啟動紅外線接收功能
irrecv.blink13(true); //接收到訊號閃一下主板上的指示燈L
}
void loop() {
if (irrecv.decode(&results)) //接收並解碼紅外線訊號
{
if (results.decode_type == NEC)
Serial.print("NEC: ");
else if (results.decode_type == SONY)
Serial.print("SONY: ");
else if (results.decode_type == RC5)
Serial.print("RC5: ");
else if (results.decode_type == RC6)
Serial.print("RC6: ");
else if (results.decode_type == UNKNOWN)
Serial.print("UNKNOWN: ");
Serial.println(results.value, HEX); //輸出遙控案件的代碼
irrecv.resume(); //重置IR接收器
}
}</pre>
<br />
<span style="color: #134f5c;"><b> 以下是實作後取得的代碼:</b></span><br />
<pre class="code prettyprint">0-->NEC: FF6897
1-->NEC: FF30CF
2-->NEC: FF18E7
3-->NEC: FF7A85
4-->NEC: FF10EF
5-->NEC: FF38C7
6-->NEC: FF5AA5
7-->NEC: FF42BD
8-->NEC: FF4AB5
9-->NEC: FF52AD
CH- -->NEC: FFA25D
CH -->NEC: FF629D
CH+ -->NEC: FFE21D
|<< -->NEC: FF22DD
>>| -->NEC: FF02FD
>|| -->NEC: FFC23D
- -->NEC: FFE01F
+ -->NEC: FFA857
EQ -->NEC: FF906F</pre>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-64728068206417165772023-09-17T22:35:00.000-07:002023-09-17T22:36:00.198-07:00LM393戰鬥機循跡小車<div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbIi9VwSZgm_bFxLKOY3qpGTEkmvTjN8v03pu9MA2Cl0_FK5LH2LcNZQEV2aB0bc-2jQRzWlNhkfLf4-6eMlCxpGR8_8NhA-V4J23ZH4XYRQsPHT3d-KqFR1ZJYPtbx8siTdCbCgmr-WHT/s476/3.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="301" data-original-width="476" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbIi9VwSZgm_bFxLKOY3qpGTEkmvTjN8v03pu9MA2Cl0_FK5LH2LcNZQEV2aB0bc-2jQRzWlNhkfLf4-6eMlCxpGR8_8NhA-V4J23ZH4XYRQsPHT3d-KqFR1ZJYPtbx8siTdCbCgmr-WHT/s320/3.png" width="320" /></a></div><br /></div><div><br /></div>材料:D2-1循跡小車套件。 <div><br /></div><div>特點:採取紅外探測法在地板上循黑線行走。 </div><div><br /></div><div>應用:無人搬運車 <br /></div><div><br /></div><div> <span style="color: #2b00fe; font-size: medium;">實驗成品: </span></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDnZvdKEP9KH56BleYDEWMj4f-P48ZmVTN4q2VGa0aofjZnBkaAFYA0GVxccmIkNsBmG1WIvVGqYLqcZQtsxuMyN9aKf4ksO7BAPEa-BzUA276vApnjBVoxSW_Yyh0NBjaaYwhTZ90kION/s1044/IMG_20201226_133420.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDnZvdKEP9KH56BleYDEWMj4f-P48ZmVTN4q2VGa0aofjZnBkaAFYA0GVxccmIkNsBmG1WIvVGqYLqcZQtsxuMyN9aKf4ksO7BAPEa-BzUA276vApnjBVoxSW_Yyh0NBjaaYwhTZ90kION/w640-h360/IMG_20201226_133420.jpg" width="640" /></a></div></div><br /><div>巡軌車的原理很簡單,是利用紅外線在不同顏色的物體表面具有不同的反射性質的特點,在車行駛過程中連續向地面發射紅外光,紅外光遇到白色地板時發生反射,反射光被裝在小車上的光敏電阻接收升高阻抗;如果遇到黑線則紅外光被吸收,小車上的光敏電阻接收降低阻抗。LM393 電晶體就根據光敏電阻的高、低阻抗否來確認黑線的位置並決定小車的行走路線。<span><a name='more'></a><table><tbody><tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeo_hF4pAvXpuD6VRDpknySERyuADo-4OC6p8UBvNxiaCSALwdlOc4Td82O4RNU4FDOzUR9jjA3guYMxykEePlYSxgG5BK-W6acJHya0FAc4GILCmznKzKjfY9_19ueMuoU-NFExZFdttG/s485/1.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="360" data-original-width="485" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeo_hF4pAvXpuD6VRDpknySERyuADo-4OC6p8UBvNxiaCSALwdlOc4Td82O4RNU4FDOzUR9jjA3guYMxykEePlYSxgG5BK-W6acJHya0FAc4GILCmznKzKjfY9_19ueMuoU-NFExZFdttG/s320/1.png" width="320" /></a><br /><br /></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiey-zd9HkUCPLfNfG7X1SDmGVTqeqPcXkCwPb47gjNxHAxx-yyNED4xZS4mBxJIh3vecaZhvZXjHucl20cXtlvTHpFzrEA-gJkzbA9JQoUhygkeM3cCLVFfFFW5S7cAZZWQ5INEAkuY3ud/s501/2.png" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="345" data-original-width="501" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiey-zd9HkUCPLfNfG7X1SDmGVTqeqPcXkCwPb47gjNxHAxx-yyNED4xZS4mBxJIh3vecaZhvZXjHucl20cXtlvTHpFzrEA-gJkzbA9JQoUhygkeM3cCLVFfFFW5S7cAZZWQ5INEAkuY3ud/s320/2.png" width="320" /></a><br /><br /></td></tr></tbody></table><span style="color: #800180; font-size: large;">製作過程:</span><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLtWP1q6kxaT24X0F8iyyUpip5DdLUIf0W6GPP4Y-CCM6fCUvz8rvPdmzqmkXM7SLMuK0ZdmUPqlsNBmJ23xng_1LcNa5_554frlaVXCwwnpdYN-XFNBULzR7D96cVNR_XV6ItaT10xJ9L/s614/%25E8%259E%25A2%25E5%25B9%2595%25E6%2593%25B7%25E5%258F%2596%25E7%2595%25AB%25E9%259D%25A2+2020-12-26+124729.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="255" data-original-width="614" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLtWP1q6kxaT24X0F8iyyUpip5DdLUIf0W6GPP4Y-CCM6fCUvz8rvPdmzqmkXM7SLMuK0ZdmUPqlsNBmJ23xng_1LcNa5_554frlaVXCwwnpdYN-XFNBULzR7D96cVNR_XV6ItaT10xJ9L/s16000/%25E8%259E%25A2%25E5%25B9%2595%25E6%2593%25B7%25E5%258F%2596%25E7%2595%25AB%25E9%259D%25A2+2020-12-26+124729.png" /></a></div><div class="separator" style="clear: both; text-align: center;"><span style="text-align: left;"><br /></span></div></span></div><div><span style="color: #660000; font-size: medium;">步驟一:</span>配置電路板正面元件</div><div>本套件有四組電阻:棕黑黑金棕 10歐姆、綠棕黑金棕51歐姆、棕黑黑棕棕1K歐姆、橙橙黑棕棕3.3K歐姆。依指定編號位置佈置到電路板上。</div><table><tbody><tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyuPLzvjHL0GjQAjYAYRCWTB0wFBEVVtvE7ZyEnzJCcw1cpoNKTEikTCH1oZN5FrKtUVfwE_bScf2pwgDCJx9pTwQbwVgpBhM4tNzsuvsjjOrqlwnyej6qSJqp0Sus7SLgVikhemRRud1r/s1044/IMG_20201225_172810.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyuPLzvjHL0GjQAjYAYRCWTB0wFBEVVtvE7ZyEnzJCcw1cpoNKTEikTCH1oZN5FrKtUVfwE_bScf2pwgDCJx9pTwQbwVgpBhM4tNzsuvsjjOrqlwnyej6qSJqp0Sus7SLgVikhemRRud1r/s320/IMG_20201225_172810.jpg" width="320" /></a><br /><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5XT_dbliezVBE6O1ejFqiaMBZ73DqgZQWKv9hNhlT4heJJ4WaCZjXa644O99NXQVqr7aJQGp4J8tppoIFhOuH9xAfeKI-i6Xd8tJLo2Jm4nKdm1FaHl9EMZd3MOErfVqiT4SthlI11ICr/s1044/IMG_20201225_173401.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5XT_dbliezVBE6O1ejFqiaMBZ73DqgZQWKv9hNhlT4heJJ4WaCZjXa644O99NXQVqr7aJQGp4J8tppoIFhOuH9xAfeKI-i6Xd8tJLo2Jm4nKdm1FaHl9EMZd3MOErfVqiT4SthlI11ICr/s320/IMG_20201225_173401.jpg" width="320" /></a></div><br /></td></tr></tbody></table>電容100UF兩個(注意長腳為正),與開關、500K可調組兩個,一併佈置到電路板上。<div><table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFeYLCJeAoD0JKab8fUytZT2I7_Jo4BnJMr_poyx0GXCVT6MRsloPFDYGgxk-ptStleBoYAriZrc-F3d1usXeX76Jl237IfM5LN2POlHqSXQwbPSkbVuA4TTSEtOw-NEr5BHp8G9q4mF3w/s1044/IMG_20201225_173736.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFeYLCJeAoD0JKab8fUytZT2I7_Jo4BnJMr_poyx0GXCVT6MRsloPFDYGgxk-ptStleBoYAriZrc-F3d1usXeX76Jl237IfM5LN2POlHqSXQwbPSkbVuA4TTSEtOw-NEr5BHp8G9q4mF3w/s320/IMG_20201225_173736.jpg" width="320" /></a></div><br /></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGdTB2J2uSSEvW2hsk3Kmd5LFtR79io2WYwAfLwVa0mJfA-o3G1LmK5Lc41V4cg2Z35mOCcVeQwZEd6y0SVHpj4dJ5-QVJt-4VkrYBSyexmNnKHhmdpEOStY432txH77VJ9ZRDzsz7ENm9/s1044/IMG_20201225_174051.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGdTB2J2uSSEvW2hsk3Kmd5LFtR79io2WYwAfLwVa0mJfA-o3G1LmK5Lc41V4cg2Z35mOCcVeQwZEd6y0SVHpj4dJ5-QVJt-4VkrYBSyexmNnKHhmdpEOStY432txH77VJ9ZRDzsz7ENm9/s320/IMG_20201225_174051.jpg" width="320" /></a><br /><br /></td></tr></tbody></table></div>將IC腳座與9012電晶體佈置到電路板上。<table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9qvFQl62CCoOl77cDJFTW_keCq3ZytbC_oYgIf_OD7Tbu835KWMXCDGO7Lii0mjNqQjerRoPtZbj8TUDGWxGONtHCzRGiujuNEUtTIyUdfNfR9ziq89TvrGwi2uXBczPBiDrPt92HUEBJ/s1044/IMG_20201225_174150.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9qvFQl62CCoOl77cDJFTW_keCq3ZytbC_oYgIf_OD7Tbu835KWMXCDGO7Lii0mjNqQjerRoPtZbj8TUDGWxGONtHCzRGiujuNEUtTIyUdfNfR9ziq89TvrGwi2uXBczPBiDrPt92HUEBJ/s320/IMG_20201225_174150.jpg" width="320" /></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJH53dTNWwJZ0kk2RNafCRm6RR0tNv9rgeT_BypLMXwFWoodDzSx6udu0swc3UrliTfthjzAq156mXRxXIlpotkGQ40HxnCA3vPO20tYlKIXqczvhvVQCKir3lfvzU3Aaj-vnMUtqI-Won/s1044/IMG_20201225_174603.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJH53dTNWwJZ0kk2RNafCRm6RR0tNv9rgeT_BypLMXwFWoodDzSx6udu0swc3UrliTfthjzAq156mXRxXIlpotkGQ40HxnCA3vPO20tYlKIXqczvhvVQCKir3lfvzU3Aaj-vnMUtqI-Won/s320/IMG_20201225_174603.jpg" width="320" /></a></div><br /></td></tr></tbody></table>最後則是將方向指示用的LED佈置到電路板上。LED長腳為正。<table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXC_hOVKhzRvETTmOTGoua3yeUAGXfeREl8q6g92Li6AOd0T0FxTMANi04bifg4LJVJ-reWm76vZd0QQ79RGaN1HWpVKD9826v5oYmjA40SuGHLhZO0mD6ryBLOnRhTYnxYGNiZnmQ-skV/s1044/IMG_20201225_174618.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXC_hOVKhzRvETTmOTGoua3yeUAGXfeREl8q6g92Li6AOd0T0FxTMANi04bifg4LJVJ-reWm76vZd0QQ79RGaN1HWpVKD9826v5oYmjA40SuGHLhZO0mD6ryBLOnRhTYnxYGNiZnmQ-skV/s320/IMG_20201225_174618.jpg" width="320" /></a></div><br /></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5RjIp33iFbOpuJgrjYYAhDhekpxa97n3D-hLlOibAKRXKH37NzuWq9MWxJwxtkxrRK3Cu8cdOWObDuaQgRZzANWl3nXYZ2a2SQ-JRiC2-OzKc6UpOs0OIM0-Xk3ZFAT3umy95l4dBRWL_/s1044/IMG_20201225_174748.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5RjIp33iFbOpuJgrjYYAhDhekpxa97n3D-hLlOibAKRXKH37NzuWq9MWxJwxtkxrRK3Cu8cdOWObDuaQgRZzANWl3nXYZ2a2SQ-JRiC2-OzKc6UpOs0OIM0-Xk3ZFAT3umy95l4dBRWL_/s320/IMG_20201225_174748.jpg" width="320" /></a><br /><br /></td></tr></tbody></table><div><div><span style="color: #660000; font-size: medium;">步驟二:</span>佈置與焊接電路板背面元件。</div><div>導航輪用螺絲組件替代。循軌偵測則用LED與光敏電阻組合而成。</div><table><tbody><tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq8lZHA5ehbupcclmZDcP4DMibmCpPvV3Z0QkrpGcPeJ-SKTyg-SlTKj7nyMAAGqqTSCYfJLamHXdYkfaxsIJ9ZqMJXyi_VhlTc3a0hftTsV-1OS8QfPP6V1PcPCARd0cd6IdZiNSOZ07Y/s1044/IMG_20201225_182503.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq8lZHA5ehbupcclmZDcP4DMibmCpPvV3Z0QkrpGcPeJ-SKTyg-SlTKj7nyMAAGqqTSCYfJLamHXdYkfaxsIJ9ZqMJXyi_VhlTc3a0hftTsV-1OS8QfPP6V1PcPCARd0cd6IdZiNSOZ07Y/s320/IMG_20201225_182503.jpg" width="320" /></a><br /><br /></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Ac26QfPDA1TAKmUq6eHt_A2A1tRHrk4E9Mov5wTXiQ0E3WzeKiHm_bWwrAo_wbm5LXdyvgiCjtkMZyQuJeoKl39GBXsLLII0WsLOgg6570bi5CPNITW_eLdoKGuq-C9fKO8ML3-4XQ-P/s1044/IMG_20201225_182619.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8Ac26QfPDA1TAKmUq6eHt_A2A1tRHrk4E9Mov5wTXiQ0E3WzeKiHm_bWwrAo_wbm5LXdyvgiCjtkMZyQuJeoKl39GBXsLLII0WsLOgg6570bi5CPNITW_eLdoKGuq-C9fKO8ML3-4XQ-P/s320/IMG_20201225_182619.jpg" width="320" /></a><br /><br /></td></tr></tbody></table>光敏電阻與發光LED用塑腳套管套接固定後焊接。光敏電阻接腳無正負之分、LED長腳為正。</div><div><table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4EjfQYpy06qGc0ARllSeM7Z-v8AhccoPQV7SSfdCKS_g6jaqJIeyNtbODvUeVhIaXucydZjgS2vN2T87w_oLg8bwJ2tLB6dGKhnHM2DLXF15wcjr1qZMucYZbDplGj32M-IYhOrfLHpFr/s1044/IMG_20201225_183120.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4EjfQYpy06qGc0ARllSeM7Z-v8AhccoPQV7SSfdCKS_g6jaqJIeyNtbODvUeVhIaXucydZjgS2vN2T87w_oLg8bwJ2tLB6dGKhnHM2DLXF15wcjr1qZMucYZbDplGj32M-IYhOrfLHpFr/s320/IMG_20201225_183120.jpg" width="320" /></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb5yfdi5d77KHxV5p9HYxLQ0Mb5myg-D4lhRXQ8gYo2B26TmmU6WVV4IFGyVTwV5VHpeYZPv3l-3PpbBnxeb49zMCB1-A5tyYRYqpy7EaJUxq9khYGmSYzGJI2wU4qhPghdQUZV_nmIake/s1044/IMG_20201225_183342.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb5yfdi5d77KHxV5p9HYxLQ0Mb5myg-D4lhRXQ8gYo2B26TmmU6WVV4IFGyVTwV5VHpeYZPv3l-3PpbBnxeb49zMCB1-A5tyYRYqpy7EaJUxq9khYGmSYzGJI2wU4qhPghdQUZV_nmIake/s320/IMG_20201225_183342.jpg" width="320" /></a></div><br /></td></tr></tbody></table><span style="color: #660000; font-size: medium;">步驟三:</span>佈置與焊接電池盒。本案是用熱溶膠固定電池盒,套件黏貼的泡棉雙面膠有點差勁。</div><div><table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyUJac1psC3tGKCZwNXDnX9KZ_jCzw5KfpEVLGANSJ-6sLA9JWWUje03MnCtNOxKnj4FGGSJ811V8eUwdVFd3j_7f7xbYqxecLr84ShZ4sfvqpjxABUByRL-wT8YtBR_s4HoP-_ro3xySJ/s1044/IMG_20201225_183935.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyUJac1psC3tGKCZwNXDnX9KZ_jCzw5KfpEVLGANSJ-6sLA9JWWUje03MnCtNOxKnj4FGGSJ811V8eUwdVFd3j_7f7xbYqxecLr84ShZ4sfvqpjxABUByRL-wT8YtBR_s4HoP-_ro3xySJ/s320/IMG_20201225_183935.jpg" width="320" /></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHieQwrH9laxOkN109VBpN3kGThXJQXlnt8x42GrL77Zz17OSxncquQ9VInvcwI36gq7VvteYzbiEsZQcnObxgTFzumKvuXldFqsAFXPOo4q0vJn-XQm-CG3k0PYMgh4l_2EIRbZ5QnvBB/s1044/IMG_20201225_184105.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHieQwrH9laxOkN109VBpN3kGThXJQXlnt8x42GrL77Zz17OSxncquQ9VInvcwI36gq7VvteYzbiEsZQcnObxgTFzumKvuXldFqsAFXPOo4q0vJn-XQm-CG3k0PYMgh4l_2EIRbZ5QnvBB/s320/IMG_20201225_184105.jpg" width="320" /></a></div><br /></td></tr></tbody></table><span style="color: #660000; font-size: medium;">步驟四:</span>組合輪胎與馬達電源線焊接組合。<table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo4RfnqmSuaFyea6jxmWCjWHglcKAPxJsc5VAsp7_Mm_OwmtOGLU5B0fuNiSmD1WqKpK2s3FpZWZn7uLzpbufGTUUhy6hkVZATircqB-_gRhZQLLZBKjgSdZtktK_5yTDPo1ypiviPdKm4/s1044/IMG_20201225_174915.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgo4RfnqmSuaFyea6jxmWCjWHglcKAPxJsc5VAsp7_Mm_OwmtOGLU5B0fuNiSmD1WqKpK2s3FpZWZn7uLzpbufGTUUhy6hkVZATircqB-_gRhZQLLZBKjgSdZtktK_5yTDPo1ypiviPdKm4/s320/IMG_20201225_174915.jpg" width="320" /></a></div></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB2jEpr5USlzN62hEYCyuQcBEdl1nYmIn7N3DrREtRnABWnjvYVL-qOkTN6klslZsLMnX8KqsQpMdKbFc1LcjwMzZUu3nMzQK8tE5keNi-CMDRPU9RCd5M19PeyHXGbTXONGjA3EywNIa-/s1044/IMG_20201225_174944.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB2jEpr5USlzN62hEYCyuQcBEdl1nYmIn7N3DrREtRnABWnjvYVL-qOkTN6klslZsLMnX8KqsQpMdKbFc1LcjwMzZUu3nMzQK8tE5keNi-CMDRPU9RCd5M19PeyHXGbTXONGjA3EywNIa-/s320/IMG_20201225_174944.jpg" width="320" /></a></div></td></tr><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHWQswEMjk5TJqgnjaTeqPHNu_Ikln48h1iYEKuoul4NLgS2ZbBOBYCYaTGKwsqUbeZPgUCYK6WF7y38yU_RhA8oghdjRYXCxfzrm3YcOdbBXj61p4LjGIpEoZEPXSd91p78gIlXSToIhf/s1044/IMG_20201225_180350.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHWQswEMjk5TJqgnjaTeqPHNu_Ikln48h1iYEKuoul4NLgS2ZbBOBYCYaTGKwsqUbeZPgUCYK6WF7y38yU_RhA8oghdjRYXCxfzrm3YcOdbBXj61p4LjGIpEoZEPXSd91p78gIlXSToIhf/s320/IMG_20201225_180350.jpg" width="320" /></a></div></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEY2_on1xLIMYVGhqgLYRD-2ANafI29tWnipag1tgWX3R_5t31Z-ys8rs3LirELh7-EUeoprzdKlVczo7mpkcKAd76KNZQgAQ-KiO7-ljfEbC-F3qvsJwXu2xIOMv0V-q0eD5XuBDHH8jL/s1044/IMG_20201225_182129.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEY2_on1xLIMYVGhqgLYRD-2ANafI29tWnipag1tgWX3R_5t31Z-ys8rs3LirELh7-EUeoprzdKlVczo7mpkcKAd76KNZQgAQ-KiO7-ljfEbC-F3qvsJwXu2xIOMv0V-q0eD5XuBDHH8jL/s320/IMG_20201225_182129.jpg" width="320" /></a></div><br /></td></tr></tbody></table></div>固定馬達轉輪與焊接電源。這裡比較麻煩,因為馬達連接沒有正負指示,只有焊上去才能知道正確的轉向,當輪子向前轉才是正確的<i>喔!<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOTCkL_2f8uU4A5i6s7WOqm3oXZdEC6u1eGJhN0My-iFNYlkkh8INAt6RP87WiMSKGDa-5KvLOe8Gwy0Q3xyaPVo7_-XOpQ89OfNjzZPceYJbrCtGN-a-to_NAkRZTSV6EOdfb9U6NK7KJ/s1044/IMG_20201225_184749.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOTCkL_2f8uU4A5i6s7WOqm3oXZdEC6u1eGJhN0My-iFNYlkkh8INAt6RP87WiMSKGDa-5KvLOe8Gwy0Q3xyaPVo7_-XOpQ89OfNjzZPceYJbrCtGN-a-to_NAkRZTSV6EOdfb9U6NK7KJ/w640-h360/IMG_20201225_184749.jpg" width="640" /></a></div><br /></i>本套件的敗筆出現了,專動軸過長,只好將一邊的轉動軸剪短再佈置到電路板上。本案是用熱溶膠固定,套件黏貼的泡棉雙面膠有點差勁。<table><tbody><tr><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5f_8BK3lHhBhLR00g8NjToHCdO0HwL07l0KM5-TvytjpBSLI6D05PBR-flwOTzLl-Sl_oNxtr_dEm-wYjnqif52gZtx9Eg8glCkf4O10LdTL2ZjdXGZ0DV9z3CXH8Kw8eSf9xszxgx3Te/s1044/IMG_20201225_184809.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5f_8BK3lHhBhLR00g8NjToHCdO0HwL07l0KM5-TvytjpBSLI6D05PBR-flwOTzLl-Sl_oNxtr_dEm-wYjnqif52gZtx9Eg8glCkf4O10LdTL2ZjdXGZ0DV9z3CXH8Kw8eSf9xszxgx3Te/s320/IMG_20201225_184809.jpg" width="320" /></a></div><br /></td><td><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFMbFfA7lbRKhRr-ljBx04o1d5n0t8CEYinZ_EaepNArxDx-73JTSzpH_9PhNHNT3rSGxi9X0mm1nbDlN3HLxnFdVz0CgGDgXcOu4cj-Uoe3EUzkGlIJInUIY0SE7orpBsYTDknb94kAy5/s1044/IMG_20201225_190424.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFMbFfA7lbRKhRr-ljBx04o1d5n0t8CEYinZ_EaepNArxDx-73JTSzpH_9PhNHNT3rSGxi9X0mm1nbDlN3HLxnFdVz0CgGDgXcOu4cj-Uoe3EUzkGlIJInUIY0SE7orpBsYTDknb94kAy5/s320/IMG_20201225_190424.jpg" width="320" /></a></div><br /></td></tr></tbody></table><span style="color: #38761d; font-size: medium;">大功告成!</span><table><tbody><tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB_FYxwf5bKvt0nU5M2jAnlGwOq8ASZO39PJukZ0mR7bzcqUgwXkxxuQ5nU_kkA9-5LkF5Fw9bEiI8yI8UcCzp4gsc3YxD1nwjg6T0-FruCZO24D3Ei3AOcWQx54LMGJc2E8q68URvrnsk/s1044/IMG_20201225_190445.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB_FYxwf5bKvt0nU5M2jAnlGwOq8ASZO39PJukZ0mR7bzcqUgwXkxxuQ5nU_kkA9-5LkF5Fw9bEiI8yI8UcCzp4gsc3YxD1nwjg6T0-FruCZO24D3Ei3AOcWQx54LMGJc2E8q68URvrnsk/s320/IMG_20201225_190445.jpg" width="320" /></a><br /><br /></td><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6Zzh68HTvWqlpFv4-YfF2NEihQzlsJqrqbVtK55kGqt1PKuO1KG3H21Zoil4rCq_aiDQz557UVR0eEs1LG-pKBnQDN6mJSrJyoyJDeyYvrkXEur27mjit_QBjdWkxUn3TTPdAssalDaDn/s1044/IMG_20201225_190503.jpg" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="586" data-original-width="1044" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6Zzh68HTvWqlpFv4-YfF2NEihQzlsJqrqbVtK55kGqt1PKuO1KG3H21Zoil4rCq_aiDQz557UVR0eEs1LG-pKBnQDN6mJSrJyoyJDeyYvrkXEur27mjit_QBjdWkxUn3TTPdAssalDaDn/s320/IMG_20201225_190503.jpg" width="320" /></a><br /><br /></td></tr></tbody></table>東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-14644202119888811322023-09-10T02:38:00.000-07:002023-09-10T02:38:21.681-07:00利用紅外線循跡模組和L298N製作循軌自走車<span style="color: red;"><b>材料:</b></span>Arduino主板一個、杜邦線約20條、L298N電機驅動模組1個、18650電池盒1個(兩個電源接頭、麵包短版1個、ZK-2自走車底盤套件、紅外線循跡模組3組。<br />
L298N電機驅動模組規格請參考:<a href="http://shop.cpu.com.tw/product/46920/info/" target="_blank">L298N</a><br />
<div>
紅外線循跡模組規格請參考:<a href="http://twarm.com/commerce/product_info.php?products_id=4919" target="_blank">TCRT5000</a></div>
<br />
<b><span style="color: #660000;">實作演練:</span></b>利用L298N電機驅動模組和紅外線循跡模組控制小車跟著黑線走。<br />
<br />
<b><span style="color: #783f04;">應用:</span></b>無人駕駛自動循軌車(基礎板)。<br />
<br />
<b><span style="color: orange;">成品外觀:</span></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEObcQvVfJyykyRNEC-YeAcZ00DssYWS76L8IwgPa8paGOAN_IJdbZuxWRRRfvNZvM1UM_myaysT83h54O0tyORNaSsdqVdVxth54yuOquuj7jDE8nrUM7XVXCkHQNGlytiAeyfqtXuefW/s1600/15275.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEObcQvVfJyykyRNEC-YeAcZ00DssYWS76L8IwgPa8paGOAN_IJdbZuxWRRRfvNZvM1UM_myaysT83h54O0tyORNaSsdqVdVxth54yuOquuj7jDE8nrUM7XVXCkHQNGlytiAeyfqtXuefW/s640/15275.jpg" width="640" /></a></div>
<b><span style="color: orange;"></span></b><br />
<a name='more'></a><b><span style="color: orange;"><br /></span></b>
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: left;">
<b><span style="color: #f1c232;"></span></b></div>
<a href="https://www.blogger.com/null" name="more"></a><br />
<div style="text-align: left;">
<b><span style="color: #f1c232;">紅外線循跡模組參考電路接法:</span></b>(圖片來源:http://twarm.com/commerce/product_info.php?products_id=4919)</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEingBjszdZ_LFzvFbAPYOpPzUSq3w-llKjJl3YfZ-6Ff0E6kygjGLa3xNoX4aGaoMEsTGn81NN9FmjtiyLKq0qbZadPnr1zmd2jSYK9ODXVu7EqwuzsTqIQ4Z2S7XYsaiG9cVNIVHlBRP4U/s1600/TB21ZtWaVXXXXc8XXXXXXXXXXXX_%2521%2521361121710.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEingBjszdZ_LFzvFbAPYOpPzUSq3w-llKjJl3YfZ-6Ff0E6kygjGLa3xNoX4aGaoMEsTGn81NN9FmjtiyLKq0qbZadPnr1zmd2jSYK9ODXVu7EqwuzsTqIQ4Z2S7XYsaiG9cVNIVHlBRP4U/s400/TB21ZtWaVXXXXc8XXXXXXXXXXXX_%2521%2521361121710.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/zd9lVoWhITI?rel=0" width="560"></iframe></div>
<div style="text-align: center;">
<br /></div>
<br />
<b style="color: #274e13;">程式碼:(</b><span style="color: #274e13;">此程式碼參考:楊明峰,ARDUINO自走車最佳入門與應用打造輪型機器人輕鬆學,碁峰)</span><br />
const int negR=4;<br />
const int posR=5;<br />
const int negL=6;<br />
const int posL=7;<br />
const int pwmR=9;<br />
const int pwmL=10;<br />
const int irD1=A1;<br />
const int irD2=A2;<br />
const int irD3=A3;<br />
const int Rspeed=200;<br />
const int Lspeed=200;<br />
byte IRstatus=0;<br />
void setup()<br />
{<br />
pinMode(posR,OUTPUT);<br />
pinMode(negR,OUTPUT);<br />
pinMode(posL,OUTPUT);<br />
pinMode(negL,OUTPUT);<br />
pinMode(irD1,INPUT_PULLUP);<br />
pinMode(irD2,INPUT_PULLUP);<br />
pinMode(irD3,INPUT_PULLUP);<br />
}<br />
void loop()<br />
{<br />
int val;<br />
IRstatus=0;<br />
val=analogRead(irD1);<br />
if(val>=150)<br />
IRstatus=(IRstatus+4); <br />
val=analogRead(irD2);<br />
if(val>=150)<br />
IRstatus=(IRstatus+2); <br />
val=analogRead(irD3);<br />
if(val>=150)<br />
IRstatus=(IRstatus+1); <br />
driveMotor(IRstatus);<br />
}<br />
void driveMotor(byte IRstatus)<br />
{<br />
switch(IRstatus)<br />
{<br />
case 0: <br />
forward(Rspeed,Lspeed);<br />
break;<br />
case 1:<br />
right(1,Rspeed,Lspeed);<br />
break;<br />
case 2:<br />
forward(Rspeed,Lspeed);<br />
break;<br />
case 3:<br />
right(0,Rspeed,Lspeed);<br />
break;<br />
case 4:<br />
left(1,Rspeed,Lspeed);<br />
break;<br />
case 5:<br />
pause(0,0);<br />
break;<br />
case 6:<br />
left(0,Rspeed,Lspeed);<br />
break;<br />
case 7:<br />
pause(0,0);<br />
break;<br />
} <br />
}<br />
void forward(byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
digitalWrite(posR,HIGH);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,HIGH); <br />
}<br />
void back(byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
digitalWrite(posR,LOW);<br />
digitalWrite(negR,HIGH); <br />
digitalWrite(posL,HIGH);<br />
digitalWrite(negL,LOW); <br />
}<br />
void pause(byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
digitalWrite(posR,LOW);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,LOW); <br />
}<br />
void right(byte flag, byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
if(flag==1) //fast<br />
{<br />
digitalWrite(posR,LOW);<br />
digitalWrite(negR,HIGH); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,HIGH);<br />
}<br />
else //slow<br />
{<br />
digitalWrite(posR,LOW);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,HIGH); <br />
}<br />
}<br />
void left(byte flag, byte RmotorSpeed, byte LmotorSpeed)<br />
{<br />
analogWrite(pwmR,RmotorSpeed);<br />
analogWrite(pwmL,LmotorSpeed);<br />
if(flag==1) //fast<br />
{<br />
digitalWrite(posR,HIGH);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,HIGH);<br />
digitalWrite(negL,LOW);<br />
}<br />
else //slow<br />
{<br />
digitalWrite(posR,HIGH);<br />
digitalWrite(negR,LOW); <br />
digitalWrite(posL,LOW);<br />
digitalWrite(negL,LOW); <br />
}<br />
}<br />
<br />
<b><span style="color: #f1c232;">實作演練過程:</span></b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCYp_Y_PTHheoP9LB2bR76izQL603Ty_dsAmOXa-15sO0TLm2Nfp85Oe-9d96cF-WacAq8y6CI4z0_TtxlH0DgIllI8VadJfl1cMCdtPv_qRBzHUL45CcY9VQpF-JLDo3yC7HX4VO5l7IC/s1600/15195.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCYp_Y_PTHheoP9LB2bR76izQL603Ty_dsAmOXa-15sO0TLm2Nfp85Oe-9d96cF-WacAq8y6CI4z0_TtxlH0DgIllI8VadJfl1cMCdtPv_qRBzHUL45CcY9VQpF-JLDo3yC7HX4VO5l7IC/s400/15195.jpg" width="400" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2NSXTEOjmuhm_KD98bwQQQYiOdOfY0OeAV2CpZNnZPUezWJnTKsTYUN4d_qeFDLP7v3L4pIOhBmWmGInveN9MFHLO2jbPVTJpccEMvFri1smO9-jfxoxXxhy7Jtzb7EFkKq3gQ-QbS0du/s1600/15196.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2NSXTEOjmuhm_KD98bwQQQYiOdOfY0OeAV2CpZNnZPUezWJnTKsTYUN4d_qeFDLP7v3L4pIOhBmWmGInveN9MFHLO2jbPVTJpccEMvFri1smO9-jfxoxXxhy7Jtzb7EFkKq3gQ-QbS0du/s400/15196.jpg" width="400" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga_dPCa9CgjV8q7CUrPPPxyl5JXXtlqNJ95Z-TdpublDEnt2yDOfDcPc-HJCBO4Wm4NEgRcRQIl9XJfJE4dpBDTorYz6_IoCyQZBRwA_tB7c-W0G1IltNif5GO-btqoCrlqWtWqLnUqHzE/s1600/15193.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga_dPCa9CgjV8q7CUrPPPxyl5JXXtlqNJ95Z-TdpublDEnt2yDOfDcPc-HJCBO4Wm4NEgRcRQIl9XJfJE4dpBDTorYz6_IoCyQZBRwA_tB7c-W0G1IltNif5GO-btqoCrlqWtWqLnUqHzE/s400/15193.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdoMeSwj9Mebuqx_UxX3aCvWQOkLoeerG-EvgyFyiFMqSmKdb6PE1OZjmgZBLprltLEWjlg5p6hg_TbYqQEtkSxMl5SEcEeG3N6yWeH_JHFa3fZO-D_ExCEeNEWzCw1E6O-68GHwxMgDFU/s1600/15279.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdoMeSwj9Mebuqx_UxX3aCvWQOkLoeerG-EvgyFyiFMqSmKdb6PE1OZjmgZBLprltLEWjlg5p6hg_TbYqQEtkSxMl5SEcEeG3N6yWeH_JHFa3fZO-D_ExCEeNEWzCw1E6O-68GHwxMgDFU/s400/15279.jpg" width="400" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwPI8sxSSqmc_4pJE1Wjl8Eejupu_jrrNNodHTmppxTgCbhcvjgMJIZBQ66HFEf-DIE7RuJynbAuIj8r4xP7Gf_0t0lGimjpv92BStc2oJABfHVuFi_X1ZRPjXrf2EFukm1VsX_IPN-RDw/s1600/15280.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwPI8sxSSqmc_4pJE1Wjl8Eejupu_jrrNNodHTmppxTgCbhcvjgMJIZBQ66HFEf-DIE7RuJynbAuIj8r4xP7Gf_0t0lGimjpv92BStc2oJABfHVuFi_X1ZRPjXrf2EFukm1VsX_IPN-RDw/s400/15280.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQhS5JenSXJiLi1yomgqEsPW9NDv6LTpPL3GoGNDmogFucbFhb0lvFREXjhA2xBO7Ktv3Piw-2izgnDf9wYPlDSf3xOfM2UDC8E9aMFFnia_0MWKF8lV4a7gtRS5ndbnaLjIXS5qWkpDv8/s1600/15274.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQhS5JenSXJiLi1yomgqEsPW9NDv6LTpPL3GoGNDmogFucbFhb0lvFREXjhA2xBO7Ktv3Piw-2izgnDf9wYPlDSf3xOfM2UDC8E9aMFFnia_0MWKF8lV4a7gtRS5ndbnaLjIXS5qWkpDv8/s400/15274.jpg" width="400" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0aB02zN2imOqd1CxxA7d2qQCfhtQWBX3o2CrBc9LX2vgGp6a9AIdJwGm2pciaLWEPzgcZwfOBjulMsJfphXA25UJkKntjK9KFUCkT9Yp-FRenr-9QqTwhabpfOEoCdiHT3sA8zm8cikDP/s1600/15277.jpg" imageanchor="1"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0aB02zN2imOqd1CxxA7d2qQCfhtQWBX3o2CrBc9LX2vgGp6a9AIdJwGm2pciaLWEPzgcZwfOBjulMsJfphXA25UJkKntjK9KFUCkT9Yp-FRenr-9QqTwhabpfOEoCdiHT3sA8zm8cikDP/s400/15277.jpg" width="400" /></a></div>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0tag:blogger.com,1999:blog-4620960891239732204.post-29231338756551309842023-09-01T02:07:00.000-07:002023-09-01T02:07:54.558-07:00實作 Ethernet Shield 網路家用電路控制<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7dKPUXbBI89Lu9sqWaq1yqNsYM22IUbzP-owdBkNpIGDXV45bTX8gaGMdcDwuDkpn4MQewSEoaWDZVobW5IH5iEpzc_uJ_txF8IuDOT0n3yjoqh0dOaB7860enaVQIoy1R02ktSkc7Lr/s1600/15185.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZ7dKPUXbBI89Lu9sqWaq1yqNsYM22IUbzP-owdBkNpIGDXV45bTX8gaGMdcDwuDkpn4MQewSEoaWDZVobW5IH5iEpzc_uJ_txF8IuDOT0n3yjoqh0dOaB7860enaVQIoy1R02ktSkc7Lr/s320/15185.jpg" width="320" /></a></div>
本實作介紹如何使用 Arduino Ethernet Shield W5100 乙太網路擴充板,除指定相關網路參數例如MAC、IP位址等進行網路連線外,並以網頁表單資料傳送的方式透過網路擴充板與繼電器模組控制家電電源的啟閉,達到遠端控制家電之目的。<br />
<br />
本實作除了之前介紹過的Ethernet Shield(W5100)乙太網路擴充板外,新增一個2 Relay的雙電路繼電器模組,繼電器(Relay) 是一種電流控制模組,具有輸入迴路和輸出迴路,常用於自動控制電路中,能夠把較小的電流去控制較大電流的一種「自動開關」。<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAbG0hdxH-IPcd-F3xL8XrxzgEc4TVgrU9pEgpqLecL1A28YCNZHcUu82WJzZwPYrl172WK2VkLh5rDOpktbhdFB2MIgpqdkaGzmiYRFqKAd250lW5aGwJtr1Pk1XyniyXgyJlTOp6-ACz/s1600/15180.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAbG0hdxH-IPcd-F3xL8XrxzgEc4TVgrU9pEgpqLecL1A28YCNZHcUu82WJzZwPYrl172WK2VkLh5rDOpktbhdFB2MIgpqdkaGzmiYRFqKAd250lW5aGwJtr1Pk1XyniyXgyJlTOp6-ACz/s320/15180.jpg" width="320" /></a></div>
<br />
<ul>
<li>繼電器型號: Jqc/3FF/S Z, 2 Channel</li>
<li>工作電壓: 5 V DC; 負載: 10 A, AC 250 V/15 A, 125 V</li>
<li> 50 x 37 x 18 mm (L * W * H); Color: Blue relays on a black PCB; Weight: 35 g</li>
<li>腳位接點:VCC:系統電源正極,GND:系統電源負極,IN1--IN2:繼電器控制端埠。<a name='more'></a></li>
</ul>
<br />
<b style="color: #0b5394;">Ethernet Shield 擴充板在使用時就直接插在 Arduino UNO即可。</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF0ORrzpwYClgyu0EbKoTPcfHsNiNVExqekvZMuZUvDBbB7HC47_LmsuPAc7gtGskc3JvKsmq2np_qILg7NamoNoHOrYPe_lDwF7L0O0X2TlPdbz9MMQ3EHbVvWN7E9qWCxYEEwsu8Wo0e/s1600/14885.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF0ORrzpwYClgyu0EbKoTPcfHsNiNVExqekvZMuZUvDBbB7HC47_LmsuPAc7gtGskc3JvKsmq2np_qILg7NamoNoHOrYPe_lDwF7L0O0X2TlPdbz9MMQ3EHbVvWN7E9qWCxYEEwsu8Wo0e/s320/14885.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi52wbACTdFSOHcSmG_8xq5t61qxLh5reXaGaYxUhdcI05CZmn_QUPJoNIjeYDTvJy49OkGvgaQ_EsTn9wlyxtCNxHyCudu2717vWq_oyyv0ezK3zYvNykQms5sF5xb0YTr8KZ7FplTQq1/s1600/14887.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi52wbACTdFSOHcSmG_8xq5t61qxLh5reXaGaYxUhdcI05CZmn_QUPJoNIjeYDTvJy49OkGvgaQ_EsTn9wlyxtCNxHyCudu2717vWq_oyyv0ezK3zYvNykQms5sF5xb0YTr8KZ7FplTQq1/s320/14887.jpg" width="320" /></a></div>
<br />
<span style="color: #990000;"><b>接著,將筆者將繼電器模組以銅柱加高的方式組合於乙太網路擴充板之上。</b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD_9V8V6LonvfhygGgpSnkMyERQABJJmJgP-MM9UJMrB9t4p1LfiBpbZqKVZYDiL_syh0znWzK-__AO-FkIFSBcOHsUDQUpiul2MT4VKIHAWaJbEQEUdUlwtqruemouJQJpluBTlWIZFph/s1600/15179.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD_9V8V6LonvfhygGgpSnkMyERQABJJmJgP-MM9UJMrB9t4p1LfiBpbZqKVZYDiL_syh0znWzK-__AO-FkIFSBcOHsUDQUpiul2MT4VKIHAWaJbEQEUdUlwtqruemouJQJpluBTlWIZFph/s320/15179.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZiYOgl2GomyV9eSe7yiBm5FxGXvmPloay90r6VVkkdO7-jik_5Gx9i_Hjv5azR02YP_mp0LBf3JUr-bLNpLR4vVy3INKpBkh41WvZKRX02FaE9BG6MHQX9o6JeDyGGkHzt5NHpxeazIkj/s1600/15183.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZiYOgl2GomyV9eSe7yiBm5FxGXvmPloay90r6VVkkdO7-jik_5Gx9i_Hjv5azR02YP_mp0LBf3JUr-bLNpLR4vVy3INKpBkh41WvZKRX02FaE9BG6MHQX9o6JeDyGGkHzt5NHpxeazIkj/s320/15183.jpg" width="320" /></a></div>
<br />
下列程式碼主要讓 Arduino 透過Ethernet Shield(W5100)乙太網路擴充板建立網頁伺服器,,當客戶端連線內部網址 192.168.1.97 時,回應客戶端 (瀏覽器) 一個家用電路開關設定頁面讓使用者點選,然後經由網頁表單以GET方式回傳設定參數來控制繼電器模組。.<br />
<pre class="code prettyprint">#include <SPI.h>
#include <Ethernet.h>
// 設定MAC地址
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// 設定IP地址
IPAddress ip(192, 168, 0, 97);
//設定DNS
//IPAddress dnServer(168, 95, 1, 1);
// 設定閘道
IPAddress gateway(192, 168, 0, 1);
// 設定遮罩
IPAddress subnet(255, 255, 255, 0);
// 初始化Ethernet程式庫,HTTP默認端口為80
EthernetServer server(80);
String readString = String(50); //宣告接收字串的變數
const int Control1=2; //第一組控制接腳
const int Control2=3; //第二組控制接腳
void setup() {
pinMode(Control1,OUTPUT);
pinMode(Control2,OUTPUT);
digitalWrite(Control1,LOW);
digitalWrite(Control2,LOW);
// 初始化串口通訊
Serial.begin(9600);
// 開始ethernet連接,並作為服務器初始化
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print( "server is at " );
Serial.println(Ethernet.localIP());
}
void loop() {
// 監聽客戶端傳來的數據
EthernetClient client = server.available();
//如果有新連線請求
if (client) {
Serial.println( "new client" );
//輸出網頁控制內容
client.print("<html>");
client.print("<head>");
client.print("<meta http-equiv=content-type content=text/html; charset=UTF-8>");
client.print("<style>");
client.print("body,input{font-family: verdana, Times New Roman,微軟正黑體,新細明體;}");
client.print("p{text-align:center;font-size:60px;}");
client.print("table{text-align:center;border-collapse:collapse}");
client.print("th,td,input{align:center;margin:2px;padding:10px;font-size:40px}");
client.print("th{color:white;}");
client.print("</style>");
client.print("</head>");
client.print("<body>");
client.print("<p>網路遙控電路</p>");
client.print("<table border=1 align=center width=75% height=50%>");
client.print("<tr>");
client.print("<th colspan=2 bgcolor=red>第一組電路</th>");
client.print("</tr>");
client.print("<tr>");
client.print("<td>");
client.print("<form method=get>");
client.print("<input type=hidden name=L value=0>");
client.print("<input type=submit value=開啟ON>");
client.print("</form>");
client.print("</td>");
client.print("<td>");
client.print("<form method=get>");
client.print("<input type=hidden name=L value=1>");
client.print("<input type=submit value=關閉OFF>");
client.print("</form>");
client.print("</td>");
client.print("</tr>");
client.print("<tr>");
client.print("<th colspan=2 bgcolor=orange>第二組</th>");
client.print("</tr>");
client.print("<tr>");
client.print("<td>");
client.print("<form method=get>");
client.print("<input type=hidden name=L value=2>");
client.print("<input type=submit value=開啟ON>");
client.print("</form>");
client.print("</td>");
client.print("<td>");
client.print("<form method=get>");
client.print("<input type=hidden name=L value=3>");
client.print("<input type=submit value=關閉OFF>");
client.print("</form>");
client.print("</td>");
client.print("</tr>");
client.print("</table>");
client.print("</body></html>");
// 只要通訊連線中.....
while (client.connected()) {
//確認客戶端有發出請求並已連接
if (client.available()) {
char c = client.read();
Serial.write(c);
readString.concat(c); //讀取GRT查詢參數
if (c == '\n')
{
//第一組電路控制判斷
if (readString.substring(8,9) == "0")
digitalWrite(Control1,HIGH);
else if (readString.substring(8,9) == "1")
digitalWrite(Control1,LOW);
//第一組電路控制判斷
else if (readString.substring(8,9) == "2")
digitalWrite(Control2,HIGH);
else if (readString.substring(8,9) == "3")
digitalWrite(Control2,LOW);
//清空判斷字串參數
readString="";
// 斷開連接
client.stop();
Serial.println( "client disonnected" );
}
}
}
}
}</pre>
<span style="color: #38761d;"><b>本實作暫時先以紅綠、兩個LED替代要控制的家電用品。</b></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisBsqBNuQaJRPFuOEVXQi6HGCYHmuP2LelKWoo8-rbxVDtDwFqxlHRHYNsoU-8g1dMYNSWpBnU9vaa35kH8NXm3-p1YeZXT7zdcv35EirSOHt8u9h3sxMNNJSm79ipYEVJXxwj4J-rBVwr/s1600/15188.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisBsqBNuQaJRPFuOEVXQi6HGCYHmuP2LelKWoo8-rbxVDtDwFqxlHRHYNsoU-8g1dMYNSWpBnU9vaa35kH8NXm3-p1YeZXT7zdcv35EirSOHt8u9h3sxMNNJSm79ipYEVJXxwj4J-rBVwr/s320/15188.jpg" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWbLUUlS2QRpCeMpCbHRJL74pf28tBDFi5OEP-FFG-vmg8iom4qVtfPBHo4a151-68W5kNIvQ6K1KPzLKCuIj2ZH2l0l2zXikgP8ohcrbynURpU0xgBibeLB63a1V04_nWtUdzNlm8i8ol/s1600/15187.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWbLUUlS2QRpCeMpCbHRJL74pf28tBDFi5OEP-FFG-vmg8iom4qVtfPBHo4a151-68W5kNIvQ6K1KPzLKCuIj2ZH2l0l2zXikgP8ohcrbynURpU0xgBibeLB63a1V04_nWtUdzNlm8i8ol/s320/15187.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
東昱http://www.blogger.com/profile/08100550262258817906noreply@blogger.com0