WioLTE 및 FeliCa 읽기 전용 RC-S620/S에서 FeliCa IDm 읽기

11704 단어 FeliCaRC-S620WioLTE
연말에 진행됐지만 펠리카 리더 라이터'RC-S620/S가 도착해 나섰다파나소닉.
WioLTE JP Version에 RC-S620/S를 설치하면 FeliCa를 쉽게 읽을 수 있습니다. 다음은 절차를 설명합니다.

FeliCa에서 IDm(제조 ID) 표시 위치 근처

절차.

  • 하드웨어
  • WioLTE에 연결된 UART 포트.
  • 소프트웨어

  • 다운로드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점을 편집합니다.
  • 새 Arduino 라이브러리 읽기
  • 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개를 읽어볼 수 있음을 확인했다.
  • "FeliCa Lite-S"(모델: RC-S966)
  • 시판 Suica카드
  • Google Pixel4의 NFC
  • 디버깅용으로 IDm가 카드에 새겨진 물건은 매우 편리하다.

    앞으로의 발전에 관하여


    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을 설치하면 정말 좋습니다!

    이번에 사용한 기자재 비용


    대충 계산해 보면 이 정도다.
  • 약 15840엔
  • ※ 금액은 세금이 포함되지 않습니다.
    과업
    기재
    금액
    마이크로컴퓨터 및 모뎀 보드
    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엔 정도

    끝말


    이런 거 할 때가 아니에요.
    이미 가진 필리카를 읽을 수 있어 기쁘고 가능성을 느꼈다.
    드나들 수 있죠?

    참고 자료

  • DSAS 개발자의 방/전파법이 적용되는 NFC 모듈에서 저렴한 NFC 라벨 사용
  • Atellier NODOKA/Arduino+RC-S620/S의 FeliCa Push
  • EoT

    좋은 웹페이지 즐겨찾기