崑山科技大學 微處理機應用暨實習(一) 講師:曹永忠 日期:105學年度第二學期

Slides:



Advertisements
Similar presentations
北京市二级以上医院疾病预防控制工作考核标准(试行) (七)健康教育 北京市疾控中心 健康教育所 李玉青 副主任医师 二〇一一年八月 四、技术考核.
Advertisements

青少年性健康教學資源簡介 台灣性教育學會 主講人:蔡秉兼 桃園市立壽山高級中學健康與護理教師 1.
高中物理学习方法. 【状元说经】 胡湛智,是贵州省高考理科状元,他说复习物理 的要点首要的是充分重视课本知识,除了跟上老 师的步调外,自己一定要多钻研课本,课本上的 思考题是复习的纲,再找一些考点解析,认真搞 清每个概念、每个要求,并相应做一定数量的习 题;其次也要特别重视画图的作用,画图有直观、
智慧居家安全監控 ARDUINO HOME SECURITY SYSTEM 班級:資訊三乙 組員:簡廷寬、鄭仁博、盧冠宇、游宗倫 組別: G105B08 指導老師:張佩琪 老師.
人社分中心 职工养老保险业务简介. 基本养老保险分类 1. 职工养老保险 2. 新型农村社会养老保险 3. 城镇居民社会养老保险 (城乡居民社会养老保险) (城镇居民社会养老保险和新型农村社会养老 保险合并实施)
分享人: 50屆英文系會長楊嘉賢 27屆基服社社長杜義容
第十課 第九味目錄 徐國能 課文 注釋 問題與討論.
北京咱爸咱妈养老投资管理有限公司大庆分公司
屏東監理站電腦筆試e化系統 考生操作使用說明及注意事項.
選擇性逐字紀錄 臺北市立教育大學 張 德 銳.
2代系統簡介 (招標、領標、開標、決標).
上海交通大学附属中学 李由 晏敏宽 刘华典 指导老师:朱乔荣 徐忠惠 制作:李由
機械工程系.
领会法律精神 理解法律体系 城控313-3班益达组制作.
104年度獎勵私立老人福利機構及補助團體、財團法人老人福利機構提供多元及充實服務方案實施計畫 暨 104年度老人福利機構及居家服務單位優質人力獎勵計畫 申請說明會 臺北市政府社會局老人福利科
标题 主讲: 时间:.
體育教學法律問題探討 王凱立 育達商業科技大學 助理教授.
长江大学电视台大会交流发言.
理工科系介紹.
高雄市復華高級中學 校務分享簡介 簡報人:康木村 校長.
社 会 保 险 知 识 培训教材.
第三期 重点管理标准和制度宣贯会 2016年5月12日.
國立金門大學101學年度新生報到暨入學說明會 國立金門大學 學生宿舍 學務處簡介.
新办纳税人办税服务指南 (郑州经济技术开发区国税局)
考勤制度(辅助岗位版) 作者:侯建伟 日期:2009年12月 考勤管理规定 讲师:贾 芳 2008年5月.
依法保护青少年健康成长 1、相关新闻 2、相关法律.
交流一: 您的客户为什么要买医疗产品? 1.人总归会生病,生病肯定要花钱; 2.现在的医疗费用真的很高,承受不起;
LabVIEW简介 李楠.
消費者教育 第10章:外觀溝通:一種雙向的歷程
济源市国税局网上办税业务介绍 主讲人 办税服务厅 杨武兵 2014年8月1日.
簡 報 大 綱 壹、緣起 貳、執行過程 參、效益.
中期评估检查分享与等级医院的评审准备.
Arduino Wifi 模組 學生:楊御政 指導老師:林得裕 老師.
LED相關應用發展沿革 LED應用範疇不斷延伸 LED照明 大尺寸背光 汽車光源 小尺寸背光
100學年度土木工程系專題研究成果展 題目: 指導老師:3223 專題學生:2132、2313 前言: 成果: 圖1 圖2 方法與流程:
物聯網實務 大仁科技大學 資訊工程與娛樂科技系 李文禮.
內容:串列傳輸 實作:Arduino to PC 、 Arduino to Arduino 簡報:廖崇義
    Arduino 1602 LCD 量測電壓顯示 LCD 示波器    林品成 月.
內容:2*16LCD & AnalogKeyPad 實作:LCD 顯示 ,KeyPad control 簡報:廖崇義
Arduino使用入門 建國科技大學 資管系 饒瑞佶.
語法:Variables & Functions 實作:Digital out (Button+LED) 簡報:廖崇義
指導教授: 曹永忠 吳佳駿 老師 學生: 蘇逸桐 吳昇峰
DHT11 溫溼度感測器 林品成 月.
台南市中小學 網路維運相關說明.
云剑电子自助洗车系统 ——简介
近代物理实验期末报告 ——by 金宵 周逸卢
    使用Arduino量測交流(AC)電壓    林品成 月.
    使用Arduino量測直流(DC)電壓    林品成 月.
Wireshark DNS&HTTP封包分析
亚博科技 Arduino视频教程 第8讲 蜂鸣器发声实验.
致 理 科 技 大 學 「106年大專校院弱勢學生助學計畫」 說 明 會 中 華 民 國 106 年 9 月 13日.
語法:結構 實作:Analog in (VR、光敏+七段顯示電壓) 簡報:廖崇義
國民大學 國民大學.
不可不看的經濟新聞 于趾琴 經濟日報採訪中心執行副主任 2019/4/19 不可不看的經濟新聞.
亚博科技 Arduino视频教程 第12讲 8乘8点阵.
講員:游文志 排程系統教育訓練 後台管理系統 講員:游文志
電能領域修課流程圖-大學部(甲乙班) 大一上 大一下 大二上 大二下 大三上 大三下 大四上 大四下 畢業出路 *電動機 *電力系統 普通
<编程达人入门课程> 本节内容 字符与字符串 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
奇美 電子_幸福企業不幸福? 胡慧楨-查資料 徐夢霜-製作ppt簡報 謝欣育-製作word簡報
知识点0204 夏普红外测距传感器 主讲人:宁波鄞州职业教育中心学校 陈浙 (Arduino功能模块与应用)
贏得萬邦的異象.
Arduino課程 液晶1602 中部自造者基地-雲科大.
TYPE B 3504A設定 使用瀏覽器連線到閘道器的ip 例如:
TYPE A 3702A設定 使用瀏覽器連線到閘道器的ip 例如:
【VA虚拟应用管理平台】专题培训 接入防火墙 陕西益和信息技术开发有限责任公司 2011年2月.
第五章 序列埠通訊 並列與序列通訊簡介 認識序列埠 認識字元資料類型 字串資料類型 從序列埠監控視窗觀察變數 從Arduino接收序列資料
第十六章 網路家電控制 使用Webduino程式庫建立微型網站 Webduino的微網站程式碼 自訂錯誤訊息網頁 監控遠端的溫濕度值
MCU-COM1 實驗架設教學.
美和科技大學資訊科技系 助理教授 美和科技大學資訊科技系 學生士
摘要簡報 作品名稱:魔鬼記憶問答 作者:台中市西屯區永安國民小學 葉政德老師、王素珍老師.
Presentation transcript:

崑山科技大學 微處理機應用暨實習(一) 講師:曹永忠 日期:105學年度第二學期 Ameba 8195AM 網路程式開發基本介紹 崑山科技大學 微處理機應用暨實習(一) 講師:曹永忠 日期:105學年度第二學期

大 綱 前言 空氣盒子產品 Arduino 程式介紹 Arduino 程式介面 Arduino架構 程式開發 啟動開發環境 Q&A 關於作者 參考資料 2019/4/27

Arduino 程式介紹 2019/4/27

Arduino 程式架構 2019/4/27 4

Arduino程式的介面 功能表

將程式燒入到 Arduino 開啟舊檔 回傳值 同等於C語言的Rebuild All 儲存檔案 開新檔案

撰寫程式內容 要注意是否連線, 若未連線可以Rebuild但不可燒入

未連線 已連線

Arduino程式架構 (一.)宣告: Arduino宣告方式與C相同,例如:int,float… (二.)初始化 Setup(): 使Arduino板子裝置妥當的指令 EX: int ledPin=7; / 宣告Arduino7號腳為輸入腳/ Setup() { pinMode(ledPin,INPUT); }

(三.)執行Loop(): 為程式的主要內容,這程式內容會一直重複被執行 EX: Loop() { …… }

(四. )函式: 1. pinMode(7,INPUT) //將腳位7設定為輸入模式 2 (四.)函式: 1. pinMode(7,INPUT) //將腳位7設定為輸入模式 2. digitalWrite(8,HIGH) (數位腳專用) //將腳位8設定輸出高電位 3. val=digitalRead(7) (數位腳專用) //讀出腳位7的值並指定給 val變數

4. analogWrite(9,128) (數位訊號專用所設計的函式) //將擁有PWM的數位腳位9 設定輸出電位2 4.analogWrite(9,128) (數位訊號專用所設計的函式) //將擁有PWM的數位腳位9 設定輸出電位2.5V對應值大 約為128 5. val=analogRead(0) (類比腳專用) //讀出腳位0的值並指定給 val變數(且analogRead可讀 取範圍0(0V)~1023(5V))

系統開發 2019/4/27 13

啟動開發環境 2019/4/27 14

開啟程式 2019/4/27 15

啟動程式 2019/4/27 16

選擇開發版 2019/4/27 17

確定通訊埠 2019/4/27 18

選擇通訊埠 2019/4/27 19

開啟程式 2019/4/27 20

讀取WIFI MAC資料 2019/4/27 21

開啟程式CheckMac 2019/4/27 22

CheckMac 程式重點解說 #include <WiFi.h> 使用網路必要函數 uint8_t MacData[6]; 儲存 MAC資料 GetWifiMac() 取得MAC函數 WiFi.status(); 顯示WIFI狀態 WiFi.macAddress(MacData); 取得MAC資料 print2HEX() 轉換內容為十六進位碼 2019/4/27 23

檢查AP是否連接的上 2019/4/27 24

開啟程式CheckAP 2019/4/27 25

CheckAP程式重點解說 #include <WiFi.h> 使用網路必要函數 uint8_t MacData[6]; 儲存 MAC資料 IPAddress Meip ,Megateway ,Mesubnet ; 宣告ip、閘道器、子網路遮罩 int status = WL_IDLE_STATUS; 連線網路狀態 GetWifiMac() 取得MAC函數 ShowMac() ; 秀出MAC資料 WiFi.status(); 顯示WIFI狀態 WiFi.macAddress(MacData); 取得MAC資料 initializeWiFi(); 進行連線 printWifiData() ; 列印網路狀態資訊 2019/4/27 26

CheckAP程式重點解說 status = WiFi.begin(ssid); 不使用加密連AP status = WiFi.begin(ssid, pass); 使用加密連AP status == WL_CONNECTED 連AP是否成功 WiFi.status() 連接成功狀態 Meip = WiFi.localIP(); 取得連線IP Megateway = WiFi.gatewayIP();取得連線閘道器 WiFi.subnetMask(); 取得連線子網路遮罩 2019/4/27 27

ScanNetworks(掃描AP) 2019/4/27 28

開啟程式ScanNetworks 2019/4/27 29

ScanNetworks 程式重點解說 #include <WiFi.h> 使用網路必要函數 WiFi.status() == WL_NO_SHIELD 檢查有網路供能否 WiFi.firmwareVersion();檢查網路韌體版本 listNetworks() 列出可連接到的AP(自訂) WiFi.scanNetworks(); 取得可連接到的AP並存入(-1為沒有AP可連接) WiFi.SSID(n) 可連接到的AP(n)的名字 WiFi.RSSI(n) 可連接到的AP(n)的RSSI WiFi.encryptionTypeEx(n)可連接到的AP(n)的加密方式I 2019/4/27 30

WIFIAPMODE(啟動AP模式) 2019/4/27 31

開啟程式WIFIAPMODE 2019/4/27 32

WIFIAPMODE程式重點解說 WiFi.apbegin(ssid, pass, channel); 啟動AP模式 SsidAP名字 PassAP 連線密碼 ChannelAP 連線通道 printWifiData(); 列印網路資訊 WiFi.BSSID(bssid); 列印AP網路資訊 WiFi.encryptionType(); AP加密狀態 2019/4/27 33

WebServerControlRelay 使用Client模式建立網頁伺服器 2019/4/27 34

開啟程式WebServerControlRelay 2019/4/27 35

電路連接 2019/4/27 36

WebServerControlRelay程式重點解說 #include <WiFi.h> 使用網路必要函數 WiFiServer server(80); 啟動PORT 80進行 status = WiFi.begin(ssid); 不使用加密連AP status = WiFi.begin(ssid, pass); 使用加密連AP server.begin(); 開始啟動PORT 80 傾聽 printWifiStatus(); 列印網路資訊 WiFiClient client = server.available(); 有人連接Port 80 client.connected() 有用戶連接中 client.available() 用戶送資料進來 2019/4/27 37

WebServerControlRelay程式重點解說 char c = client.read(); 讀出用戶送的資料(一個位元組) client.println(“HTTP/1.1 200 OK”); …. 送給用戶端一段HTML碼,用瀏覽器方能顯示 currentLine.endsWith(“GET /H”) 判斷是否用/H 結束 currentLine.endsWith(“GET /L”) 判斷是否用/L 結束 client.stop(); 與用戶連線停止傳輸資料 2019/4/27 38

網頁畫面 2019/4/27 39

APMODEControlRelay 使用AP模式建立網頁伺服器 2019/4/27 40

開啟程式APMODEControlRelay 2019/4/27 41

電路連接 2019/4/27 42

APMODEControlRelay程式重點解說 #include <WiFi.h> 使用網路必要函數 WiFiServer server(80); 啟動PORT 80進行 status = WiFi.begin(ssid); 不使用加密連AP status = WiFi.begin(ssid, pass); 使用加密連AP server.begin(); 開始啟動PORT 80 傾聽 printWifiStatus(); 列印網路資訊 WiFiClient client = server.available(); 有人連接Port 80 client.connected() 有用戶連接中 client.available() 用戶送資料進來 2019/4/27 43

APMODEControlRelay程式重點解說 char c = client.read(); 讀出用戶送的資料(一個位元組) client.println(“HTTP/1.1 200 OK”); …. 送給用戶端一段HTML碼,用瀏覽器方能顯示 currentLine.endsWith(“GET /H”) 判斷是否用/H 結束 currentLine.endsWith(“GET /L”) 判斷是否用/L 結束 client.stop(); 與用戶連線停止傳輸資料 2019/4/27 44

網頁畫面 2019/4/27 45

Set_RTC_Data(設定RTC時間) 2019/4/27 46

開啟程式Set_RTC_Data 2019/4/27 47

電路連接 2019/4/27 48

電路連接 2019/4/27 49

Set_RTC_Data程式重點解說 #include <Wire.h> I2C通訊用 #include “RTClib.h“ DS1307 時鐘模組用 RTC_DS1307 RTC; 宣告時鐘物件 initRTC() ; 啟動時鐘物件(自訂) Wire.begin(); 開始I2C通訊 RTC.begin(); 開始時鐘物件通訊 RTC.isrunning() 時鐘物件順利啟動 RTC.adjust(DateTime(mYear,mMonth,mDay,mHour,mMinute,mSecond)); 調整設定DS1307 時鐘模組時間內容 2019/4/27 50

執行畫面 2019/4/27 51

ReadTime(讀取RTC時間) 2019/4/27 52

開啟程式ReadTime 2019/4/27 53

電路連接 2019/4/27 54

電路連接 2019/4/27 55

ReadTime程式重點解說 #include <Wire.h> I2C通訊用 #include “RTClib.h“ DS1307 時鐘模組用 RTC_DS1307 RTC; 宣告時鐘物件 initRTC() ; 啟動時鐘物件(自訂) Wire.begin(); 開始I2C通訊 RTC.begin(); 開始時鐘物件通訊 RTC.isrunning() 時鐘物件順利啟動 ShowDateTime() 顯示DS1307 時鐘內容(自訂) 2019/4/27 56

ReadTime程式重點解說 DateTime now = RTC.now(); 取得RTC時鐘物件 now.hour() 取得小時 now.minute() 取得分 now.second() 取得秒 now.year() 取得年 now.month() 取得月 now.day() 取得日 2019/4/27 57

執行畫面 2019/4/27 58

UdpNtpClient 讀取網路時間資料 2019/4/27 59

開啟程式UdpNtpClient 2019/4/27 60

UdpNtpClient程式重點解說 #include <WiFi.h> 使用網路必要函數 #include <PubSubClient.h>使用網路UDP必要函數 #include <WiFiUdp.h>使用網路UDP必要函數 uint8_t MacData[6]; 儲存 MAC資料 const char ntpServer[] = “pool.ntp.org”; 網路時間伺服器 initializeWiFi(); 啟動網路 ShowNTPDateTime() ; 取得網路時間並顯示 retrieveNtpTime() ;取得網路時間 getCurrentTime(epoch+timeZoneOffset, &NDPyear, &NDPmonth, &NDPday, &NDPhour, &NDPminute, &NDPsecond); 將網路時間存入變數 2019/4/27 61

UdpNtpClient程式重點解說 Udp.beginPacket(ntpServer, 123) 與網路伺服器通訊 Udp.write(nptSendPacket, NTP_PACKET_SIZE); 告訴網路伺服器要取得時間 Udp.endPacket(); 結束通訊 Udp.parsePacket() 得到網路伺服器傳送時間資料通知 Udp.read(ntpRecvBuffer, NTP_PACKET_SIZE) 讀取網路伺服器傳送時間資料 epoch = secsSince1900 - seventyYears ; 計算時間 epochSystem = epoch - millis() / 1000;計算時間(秒) getCurrentTime() 計算網路時間,回傳年、月、日、時、分、秒到變數 2019/4/27 62

執行畫面 2019/4/27 63

SetTime_fromNet 網路校時 2019/4/27 64

開啟程式SetTime_fromNet 2019/4/27 65

SetTime_fromNet程式重點解說 #include <WiFi.h> 使用網路必要函數 uint8_t MacData[6]; 儲存 MAC資料 initRTC() ; 初始化時鐘模組 ShowNTPDateTime() ; 取得網路時間並顯示 retrieveNtpTime() ;取得網路時間 getCurrentTime(epoch+timeZoneOffset, &NDPyear, &NDPmonth, &NDPday, &NDPhour, &NDPminute, &NDPsecond); 將網路時間存入變數 SetRTCTime(NDPyear, NDPmonth, NDPday, NDPhour, NDPminute, NDPsecond); 將取得網路時間調整時鐘模組 2019/4/27 66

執行畫面 2019/4/27 67

WiFiWebClient 讀取網頁資料 2019/4/27 68

開啟程式WiFiWebClient 2019/4/27 69

WiFiWebClient程式重點解說 #include <WiFi.h> 使用網路必要函數 uint8_t MacData[6]; 儲存 MAC資料 GetWifiMac() 取得MAC函數 WiFi.status(); 顯示WIFI狀態 printWifiStatus(); 列印網路狀態 client.connect(server, 80) 連到Server(用port80) client.println(“GET /search?q=ameba HTTP/1.1”); 送給伺服器端資料 client.available() 連線對象要送資料 char c = client.read(); 讀取連線對象要送資料 2019/4/27 70

lcd1602_I2C_mills 顯示資料在LCD上 2019/4/27 71

開啟程式lcd1602_I2C_mills 2019/4/27 72

開啟程式lcd1602_I2C_mills 2019/4/27 73

lcd1602_I2C_mills程式重點解說 #include <I2CIO.h> I2C 函數 #include <LCD.h> LCD函數 #include <LiquidCrystal_I2C.h> I2C版LCD函數 #define I2C_ADDR 0x27 設定LCD I2C位址 lcd.begin (16,2); 設定LCD寬度與高度 lcd.setBacklight(LED_ON); 設定LCD背光 lcd.backlight();啟動LCD背光 lcd.setCursor(0,0); LCD歸零定位 lcd.print(“Hello, world!”); 印出Hello World 2019/4/27 74

DHTx 讀取溫溼度資料 2019/4/27 75

開啟程式DHTx 2019/4/27 76

電路連接 2019/4/27 77

電路連接 2019/4/27 78

DHTx 程式重點解說 #include “DHT.h” 使用溫溼度模組必要函數 #define DHTTYPE DHT22 宣告使用哪種DHT溫溼度模組 DHT dht(DHTSensorPin, DHTTYPE); 取得溫溼度物件 dht.begin(); 溫溼度物件通訊 ShowHumidity() ; 顯示溫溼度資料(自訂) dht.readHumidity(); 讀取濕度 ht.readTemperature(true); 讀取溫度 2019/4/27 79

Q & A 感謝聆聽 恭請指教 2019/4/27