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
그래서 여러 가지 지적을 기다리고 있습니다! !
Reference
이 문제에 관하여(Arduino Micro를 사용하여 센서와 "무슨 일이야"장치와 함께 작동하는 웹 앱을 다시 만들 수 있습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tadfmac/items/f169efa60ca13ef32f3a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)