WioLTE 및 FeliCa 읽기 전용 RC-S620/S에서 FeliCa IDm 읽기
WioLTE JP Version에 RC-S620/S를 설치하면 FeliCa를 쉽게 읽을 수 있습니다. 다음은 절차를 설명합니다.
FeliCa에서 IDm(제조 ID) 표시 위치 근처
절차.
다운로드Arduino용 RC-S620/S Control Library를 Arduino IDE의 라이브러리로 가져옵니다.
RCS620S.cpp
.하드웨어
최종적으로 다음과 같다.
RC-S620/S
RC-S620/S가 완료되었습니다.평면 케이블만 연결하면 됩니다.
이 평면 케이블의 연결은 기세다.마치 손으로 힘껏 밀어붙이는 것 같다.정·후면은 사진에서 보듯이'블루'가 보이도록 삽입했다.
FFC-6
평면 케이블을 보드의 모듈에 드롭할 수 있습니다.
현행품 용접이 필요합니다.
다음과 같이 동판을 삽입하여 평면 케이블을 연결합니다.플랫 케이블은 밀어내기 형태이므로 RC-S620/S보다 안정적으로 연결할 수 있습니다.
머리핀이 상품 페이지에 쓰여 있다.
Grove 케이블와의 배열이 같기 때문에 직접 삽입할 수 있습니다.
WioLTE 연결
보드를 통해 FFC-6 및 WioLTE JP Version의 UART를 연결합니다.
소프트웨어
다운로드Arduino용 RC-S620/S Control Library하여 Arduiino IDE의 라이브러리로 가져오고 코드를 써서 이동하면 됩니다.
RCS620S.cpp 편집
RC-S620/S 라이브러리를 체크 인한 후 찾기
RCS620S.cpp
2점을 편집합니다.Serial
와 하드코딩된 부분을 변경diff -ur --color arduino-RCS620S.origin/RCS620S.cpp arduino-RCS620S/RCS620S.cpp
--- arduino-RCS620S.origin/RCS620S.cpp 2019-12-28 23:17:25.734916000 +0900
+++ arduino-RCS620S/RCS620S.cpp 2019-12-28 23:18:52.932437700 +0900
@@ -7,7 +7,7 @@
#include <stdio.h>
#include <string.h>
#include <inttypes.h>
-#include "Wprogram.h"
+#include "Arduino.h"
#include "Print.h"
#include "HardwareSerial.h"
@@ -309,7 +309,7 @@
const uint8_t* data,
uint16_t len)
{
- Serial.write(data, len);
+ Serial1.write(data, len);
}
int RCS620S::readSerial(
@@ -324,8 +324,8 @@
return 0;
}
- if (Serial.available() > 0) {
- data[nread] = Serial.read();
+ if (Serial1.available() > 0) {
+ data[nread] = Serial1.read();
nread++;
}
}
@@ -335,7 +335,7 @@
void RCS620S::flushSerial(void)
{
- Serial.flush();
+ Serial1.flush();
}
int RCS620S::checkTimeout(unsigned long t0)
Arduino API의 include 파일은 1.0Wprogram.h
에서 Arduino.h
로 재명명되었습니다.다른 한편, 분배된 라이브러리는 낡은 쪽을 참조하기 때문에include를 조정합니다.RC-S620/S에 연결된 UART는 하드코딩
Serial
되어 있습니다.RCS620S
의 인스턴스를 만들 때 매개 변수로 UART를 지정하려고 했는데 조금 번거로워 Wio LTE JP Version의 UART Serial 1 하드코드를 맞췄다.소묘
WioLTE_rcs620s.ino
#include <WioLTEforArduino.h>
WioLTE Wio;
#define CONSOLE SerialUSB
#include <RCS620S.h>
RCS620S rcs620s;
void setup() {
delay(200);
CONSOLE.println("\n-- START");
Wio.Init();
CONSOLE.begin(115200);
Wio.PowerSupplyGrove(true);
Serial1.begin(115200); /* for Wio LTE hardware UART */
while(!rcs620s.initDevice()); /* ret=1 is failed init */
CONSOLE.println("\n-- Ready");
}
void loop() {
CONSOLE.println("\n-- loop");
if (rcs620s.polling()) {
CONSOLE.println("FeliCa detected!");
CONSOLE.print("IDm = ");
for(int i = 0; i < sizeof(rcs620s.idm) ; i++) {
char buf[2];
sprintf(buf, "%02X", rcs620s.idm[i]);
CONSOLE.print(buf);
}
CONSOLE.println();
}
rcs620s.rfOff();
delay(1000);
}
이후에 FeliCa에 접근하면 다음과 같은 내용이 표시됩니다.-- loop
FeliCa detected!
IDm = xxxxxxxxxxxxxx
.FeliCa의 IDm입니다.
FeliCa가 소유하는 고유한 ID는 IDm(제조 ID)입니다.FeliCa를 열쇠처럼 사용하고 싶을 때 이 메시지를 사용하면 OK.
이외의 상세한 기술자료는 PDF에서 다운로드할 수 있다.
읽을 수 있는 필리카
FeliCa 규격의 물건이라면 무엇이든 읽을 수 있습니다.(쓰기 시도되지 않음)
https://www.sony.co.jp/Products/felica/business/products/
이번에 IDm가 다음 3개를 읽어볼 수 있음을 확인했다.
앞으로의 발전에 관하여
Cat.1 모뎀이 있는 WioLTE에서 읽을 수 있기 때문에 AWS 람바다 등 파아스SORACOM Funk를 직접 호출해 클라우드 데이터베이스와 간단하게 매칭할 수 있다.
클라우드 어댑터/SORACOM Funk
주제 밖의 말: Software Serial과 성격이 맞지 않는 것 같아요.
Arduino UNO R3에는 하드웨어 Serial이 하나밖에 없기 때문에 Software Serial만 사용할 수 있지만 조금 시도해 보았지만 잘 돌아가지 않았다.
2012년 시도된 사람들의 기록: http://www.atelier-nodoka.net/2012/04/arduino-software-serial-problem/
어쩌면 좋아...Wio LTE JP Version에 Hardware Serverial을 설치하면 정말 좋습니다!
이번에 사용한 기자재 비용
대충 계산해 보면 이 정도다.
과업
기재
금액
마이크로컴퓨터 및 모뎀 보드
Wio LTE JP Version
9800엔
FeliCa 기고자
RC-S620/S
3350엔
RC-S620/S 간격 변환 베이스보드 그룹
FFC-6
510엔
검증용 FeliCa 카드
FeliCa Lite-S(RC-S966) 5개 번들
1240엔
동판
어디 녀석일까?
300~500엔 정도
케이블
Grove 점프 핀 변환 케이블(5개 팩)
500엔 정도
끝말
이런 거 할 때가 아니에요.
이미 가진 필리카를 읽을 수 있어 기쁘고 가능성을 느꼈다.
드나들 수 있죠?
참고 자료
Reference
이 문제에 관하여(WioLTE 및 FeliCa 읽기 전용 RC-S620/S에서 FeliCa IDm 읽기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ma2shita/items/276b44f890966b05e04e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)