Arduino Micro를 사용하여 센서와 "무슨 일이야"장치와 함께 작동하는 웹 앱을 다시 만들 수 있습니다.

Arduino Micro를 사용하여 센서와 "무슨 일이야"장치와 함께 작동하는 웹 앱을 다시 만들 수 있습니다.



アホなデモ

Arduino Micro를 사용하여 센서와 "무슨 일이야"장치와 협력하는 웹 앱을 만들자. 의 계속입니다.

지난번에는 Arduino Micro를 센서 정보를 바탕으로 키 커맨드를 계속 보내는 디바이스로 하여 웹 앱을 반응시킨다는 것을 만들어 보았습니다.

이번에도 Arduino Micro를 센서 정보를 바탕으로 키 커맨드를 계속 보내는 디바이스로 하여 웹 앱을 반응시킨다는 것을 만들어 보았습니다.

함께! ! ! !

이번은, 헨테코인 라이브러리를 사용해 「뭐라고」를 파워 업! ! !



뭐, 파워업 한 곳에서 「뭐라고」인 것에 변함은 없습니다만. .
  • 라이브러리를 만들었으니까, 아마 조금만 만들기 쉬워졌을 것이다!
  • 숫자와도 취하기 쉬워졌다!
  • 디바이스 측에서 폴링하여 웹 앱 측에서 연결 상태를 확인할 수 있도록!

  • 라고 수수하게 좋아졌다고 생각합니다. 네! ?

    키 직렬 명령 수신기? 라는 것을 만들었다.



    만든 것은 이것 ↓

    keyserial

    전혀, WebRTC라든지 말하고 있는 시대에 키보드로 통신이에요. 바보같은w
    테스트 할 때 평소에 컴퓨터 키보드로 했어요. 에우

    센서의 값이나 보내고 싶을 때에 사용한다.



    그래서 이것을 사용하면 무엇을 할 수 있습니까?
    1 보내고, 0 보내고, 3 보내면 "103"같은 것이 쉽게 만들 수 있습니다.

    . . . . 음, 주로 그만큼입니다만. . . . 뭔가 귀찮네요?
    거기를 만드는거야. . .

    그래서 억지로 진행하고 있습니다만, 샘플을 만들어 보았으므로, 소개시켜 주세요.

    웹 앱 코드



    샘플

    이제, 여러분 아무래도 좋아져 왔을 무렵 맞다고 생각하므로, 흥미가 있는 분만 상기 URL이나 github로 코드 봐 주시다고 해, 개요는↓인 느낌.
    var keySerial = new keyserial({polling:true});
    // デバイス側がポーリングに対応してるときだけ polling:trueを指定する。
    
    keySerial.onValue = function(val){
        // 数値が送られてきた時の処理
    };
    
    keySerial.onKey = function(keyCode){
        // 単発のキーコマンドを受け取ったときの処理
    }
    
    keySerial.onConnect = function(){
        // デバイスがつながったときの処理
    };
    
    keySerial.onDisconnect = function(){
        // デバイスとの接続が切れたときの処理
    };
    
    keySerial.start();  // 開始!
    

    간단하네요!

    장치



    디바이스 측은 Arduino Micro로 만들면 간단합니다. Leonardo도 좋습니다.

    回路

    기본은 전회부터 그다지 바뀌어 빛나지 않습니다. CdS로 밝은! 어두운! 보내는 곳도 함께 w
    다만, 이번은, 아래와 같이 해 보았습니다.
    - 디바이스측에서 폴링(개행을 정기적으로 송신)하는 처리 추가
    - 갑자기 폴링 시작하면 여러 의미에서 위험 장치이므로 스위치로 폴링 ON/OFF 할 수 있도록.
    - 모처럼 수치를 보낼 수 있게 되었으므로, 변화 검지시에만 함께 보내도록.

    cdssensor.ino
    #include <Serial.h>
    #define BUTTON 3
    #define CDS 3
    #define LED 5
    
    boolean nowstate = false;
    int button = LOW;
    int cnt = 10;
    boolean isPolling = false;
    boolean isSendBoolWaiting = false;
    
    void setup() {
      pinMode(BUTTON, INPUT);
      pinMode(LED, OUTPUT);
      Keyboard.begin();
    }
    
    void loop() {
      boolean state = false;
      int cdsvalue = analogRead(CDS);  
      cdsvalue >>= 5;
      if (cdsvalue < 16) {
        state = false;
      }else{
        state = true;
      }
      if(nowstate != state){
        sendBool(state);
        cnt = 10;
        sendValue(cdsvalue);
        Serial.println(cdsvalue);
      }
      nowstate = state; 
    
      //  Polling on/off
      int nowbutton = digitalRead(BUTTON);
      if((nowbutton == HIGH)&&(nowbutton != button)){
        isPolling ^= 0x01;
        if(isPolling == true){
          isSendBoolWaiting = true;
          digitalWrite(LED,HIGH);
        }else{
          isSendBoolWaiting = false;
          digitalWrite(LED,LOW);
        }
      }
      button = nowbutton;
      if(isPolling){
        cnt --;
        if(cnt == 0){
          cnt = 10;
          Keyboard.write(KEY_RETURN);
          if(isSendBoolWaiting == true){
            sendBool(state);
            sendValue(cdsvalue);
            isSendBoolWaiting = false;
          }
        }
      }
    
      delay(100);
    }
    
    void sendBool(boolean state){
      if(state == true){
        Keyboard.write('d');
      }else{
        Keyboard.write('l');
      }
    }
    
    void sendValue(int value){
      int cnt;
      int digits[5] = {0,0,0,0,0};
      int tmp;
      int digit;
    
      digits[0] = value / 10000;
      tmp = value % 10000;
      digits[1] = tmp / 1000;
      tmp = tmp % 1000;
      digits[2] = tmp / 100;
      tmp = tmp % 100;
      digits[3] = tmp / 10;
      tmp = tmp % 10;
      digits[4] = tmp;
    
      Keyboard.write(',');
    
      for(cnt=0;cnt<5;cnt++){
        digit = digits[cnt];
        if((digit!=0)||(cnt==4)){
          Keyboard.write(digit+48);
        }
      }
      Keyboard.write(KEY_RETURN);  
    }
    

    이런 느낌입니다.
    센서의 값도 보낼 수 있게 되었으므로, 드디어 센서처럼 w

    요약



    뭐라고 디바이스 제휴는 즐겁다! !
    뭐라고 하면, C언어(C++?)와 javascript, 어느 쪽도 쓸 수 있어요! ?

    벌써 혼란! w

    그래서 여러 가지 지적을 기다리고 있습니다! !

    좋은 웹페이지 즐겨찾기