###### tags: `聯鴻` # 工作筆記 --- ## Mega_HMI_16i8o mega 2560 ATmega2560 USB-接6pin (R S M M G U) 燒錄器 Arduino as ISP 先燒錄bootloader 燒錄成功後 換USB to microusb 燒錄器 ArduinoISP 可以上傳 code --- ## LAN ![](https://i.imgur.com/g3zfl2L.png) ### 修改本機乙太網路IP地址 1. 進乙太網路 內容 2. 選擇TCP/IPv4 3. 按內容 4. 更改IP位置與遮罩 ![](https://i.imgur.com/OZSyyji.png) 1. 點選透過網路搜索 2. 選擇底下出現的設備 3. 在**本模組IP位置中**修改IP位置 4. 設置選中項參數 --- ## WiFi ![](https://i.imgur.com/tKyrvTC.png) ### 預設網址IP: **192.168.4.1** 1. 可修改SSID Name 2. 修改SoftAP IP **(可替換掉預設IP)** 3. 按SAVE後,***重新插拔連接線*** --- ## 藍芽 ![](https://i.imgur.com/zgC4EkS.png) 1. 點選選項 2. 設置選擇串口 3. 串列傳輸速 ![](https://i.imgur.com/1RpzeLi.png) 在底下Termal 輸入`<SETBLE>` 按***發送資料*** 會出現 `Please input BT_NAME (LHXXXXX) =>` 之後在Termal輸入想要的藍芽名稱; 例(**LH00002**) 發送資料後,可利用手機藍芽測試有無修改成功 --- ## RFID讀取 to EXCEL檔案 ```cpp= #include <SPI.h> #include <MFRC522.h> // 引用程式庫 #define BUZZ 48 // 蜂鳴器 #define RST_PIN 42 // 讀卡機的重置腳位 #define SS_PIN 53 // 晶片選擇腳位 String Str_Str; char str1[25]; MFRC522 mfrc522(SS_PIN, RST_PIN); // 建立MFRC522物件 typedef struct ID_NAME_PAIR { String ID ; String NAME ; }; #define ID_NAME_PAIR_NUM 100 ID_NAME_PAIR id_name_pair_list[ID_NAME_PAIR_NUM] ; void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); // 初始化MFRC522讀卡機模組 Serial.println("RFID reader is ready!"); Serial.println("LABEL,Date,Time,Name"); pinMode(BUZZ, OUTPUT); //digitalWrite(BUZZ, HIGH); //delay(500); //digitalWrite(BUZZ, LOW); //增加卡片的ID、NAME id_name_pair_list[0].ID = "828FBE1F"; id_name_pair_list[0].NAME = "James"; id_name_pair_list[1].ID = "99075A29"; id_name_pair_list[1].NAME = "Marry"; } void loop() { // 確認是否有新卡片 if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { byte *id = mfrc522.uid.uidByte; // 取得卡片的UID byte idSize = mfrc522.uid.size; // 取得UID的長度 Str_Str=""; for (byte i = 0; i < idSize; i++) { // 逐一顯示UID碼 Serial.print("id["); Serial.print(i); Serial.print("]: "); Serial.print(" "); Serial.print(id[i], HEX); // 以16進位顯示UID值 Serial.println(); sprintf(str1, "%02X",id[i]); Str_Str=Str_Str + String(str1); }pf( Str_Str.c_str()); mfrc522.PICC_HaltA(); // 讓卡片進入停止模式 Serial.print("DATA,DATE"); Serial.print(","); Serial.print("TIME"); Serial.print(","); Serial.println(searchNameByID(Str_Str)); // BUZZ 響 0.1 秒 digitalWrite(BUZZ, HIGH); delay(100); digitalWrite(BUZZ, LOW); } delay(100); } bool compare(String id1, String id2) { if (id1 != id2) return false ; else return true ; } String searchNameByID(String id_source) { for ( int i = 0 ; i < ID_NAME_PAIR_NUM ; i++ ) { if ( compare( id_source, id_name_pair_list[i].ID ) ) return id_name_pair_list[i].NAME ; } String none = "0" ; return none ; } // 簡便的工具函式,格式化輸出字串 void pf(const char *fmt, ... ){ char tmp[80]; // resulting string limited to 128 chars va_list args; va_start (args, fmt ); vsnprintf(tmp, 80, fmt, args); va_end (args); // Serial.println(tmp); Serial.println(tmp); Serial1.println(tmp); Serial2.println(tmp); Serial3.println(tmp); } ``` ---