제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
|
|
Alexa를 사용하여 TV 제어!
소개: 따라서 이 프로젝트에서는 Alexa를 사용하여 명령을 보내고 TV와 대화하여 TV를 제어하는 방법에 대해 설명합니다. TV Remote가 할 수 있는 모든 것을 Alexa가 할 수 있습니다. 우리가 할 일은 원격 IR 신호를 녹음하고 Alexa를 사용하여 음성 명령을 받았을 때 동일한 신호를 다시 보내는 것입니다. 이를 실현하거나 이 YouTube 동영상을 시청하는 데 필요한 단계는 다음과 같습니다.
1단계:필수 라이브러리 다운로드
다음 라이브러리를 다운로드하여 Arduino IDE 라이브러리에 넣습니다.
<울>
2단계:NodeMCU(Wi-Fi 모듈) 프로그래밍
ESP8266-Alexa.ino 스케치를 열고 NodeMCU에 업로드합니다(Arduino IDE의 보드 관리자에서 보드 정보 다운로드). Wi-Fi 자격 증명과 기기 이름만 변경하면 됩니다.
ESP8266-Alexa.ino 스케치의 장치 이름과 IR-Alexa-Send.ino 스케치에서 나가는 신호를 맞춤설정할 수 있습니다.
3단계:TV 리모컨에서 IR 신호 읽기
IR_REMOTE_read.ino 스케치를 Arduino에 업로드하여 원격 신호 히트를 읽고 나중에 이 튜토리얼에서 볼 수 있는 참조를 위해 수신된 IR 신호를 기록합니다.
4단계:Alexa를 통해 TV IR 신호를 보내도록 Arduino 프로그래밍
다음으로 Arduino IDE에서 IR-Alexa-Send.ino를 열고 Arduino Uno에 업로드합니다(업로드 보드 정보를 UNO로 변경해야 함).
두 모듈에 전원을 연결하고 그 사이에 전선을 연결합니다. IR 송신기가 UNO의 터미널 3에 연결되어 있는지 확인하십시오. 자세한 내용은 첨부된 회로도를 참조하십시오.
5단계:Alexa로 프로젝트 테스트
이제 모바일 장치 또는 PC에서 Amazon Alexa 앱으로 이동하여 Smart Home으로 이동한 다음 "장치 추가"를 눌러 ESP8266-Alexa.ino 스케치에서 설정한 각 명령을 찾으십시오.
찾으면 다음 명령 구조 중 하나를 사용하여 테스트할 수 있습니다.
<울>#include#include #include "fauxmoESP.h"// ----- -------------------------------------------------- ----------------------// 와이파이 자격 증명// ---------------------- -------------------------------------------------- -----#define WIFI_SSID "linksys#define WIFI_PASS ""#define SERIAL_BAUDRATE 115200fauxmoESP fauxmo;// -------------------------- -------------------------------------------------- -// 와이파이// -------------------------------------------- ----------------------------------void wifiSetup() { // WIFI 모듈을 STA 모드로 설정 WiFi.mode( WIFI_STA); // 연결 Serial.printf("[WIFI] %s에 연결 중 ", WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PASS); // Wait while (WiFi.status() !=WL_CONNECTED) { Serial.print("."); 지연(100); } 직렬.println(); // 연결되었습니다! Serial.printf("[WIFI] 스테이션 모드, SSID:%s, IP 주소:%s\n", WiFi.SSID().c_str(), WiFi.localIP().toString().c_str()); }// ----------------------------------------------- ------------------------------// 핀 초기화// -------------- -------------------------------------------------- -------------#define RELAY_PIN1 13#define RELAY_PIN2 2#define RELAY_PIN3 14#define RELAY_PIN4 15void setup() { //릴레이 핀 초기화 pinMode(RELAY_PIN1, OUTPUT); 디지털 쓰기(RELAY_PIN1, LOW); 핀모드(RELAY_PIN2, 출력); 디지털 쓰기(RELAY_PIN2, LOW); 핀모드(RELAY_PIN3, 출력); 디지털 쓰기(RELAY_PIN3, LOW); 핀모드(RELAY_PIN4, 출력); 디지털 쓰기(RELAY_PIN4, LOW); // 직렬 포트를 초기화하고 쓰레기를 청소합니다. Serial.begin(SERIAL_BAUDRATE); 직렬.println(); 직렬.println(); Serial.println("FauxMo 데모 스케치"); Serial.println("연결 후 Alexa/Echo에 '픽셀 켜기' 또는 '끄기' 또는 '릴레이 켜기' 또는 '끄기'를 요청하세요."); // 와이파이 wifiSetup();// ----------------------------------------- ------------------------------------// Alexa 장치 이름// ------- -------------------------------------------------- -------------------- // Fauxmo fauxmo.addDevice("TV"); fauxmo.addDevice("GregsNetflix"); fauxmo.addDevice("수면"); fauxmo.addDevice("사무실"); fauxmo.onMessage(콜백);}// ---------------------------------------- --------------------------------------// Alexa 작업 호출// ------ -------------------------------------------------- --------------------- 무효 콜백(uint8_t device_id, const char * device_name, bool state) { Serial.printf("[MAIN] %s 상태:%s \n", device_name, 상태 ? "ON" :"OFF"); if ( (strcmp(device_name, "TV") ==0) ) { // 릴레이를 즉시 조정합니다! if (상태) { digitalWrite(RELAY_PIN1, HIGH); } else { digitalWrite(RELAY_PIN1, HIGH); } } if ( (strcmp(device_name, "GregsNetflix") ==0) ) { // 릴레이를 즉시 조정합니다! if (상태) { digitalWrite(RELAY_PIN2, HIGH); } else { digitalWrite(RELAY_PIN2, LOW); } } if ( (strcmp(device_name, "Sleep") ==0) ) { // 릴레이를 즉시 조정합니다! if (상태) { digitalWrite(RELAY_PIN3, HIGH); } else { digitalWrite(RELAY_PIN3, LOW); } } if ( (strcmp(device_name, "Office") ==0) ) { // 릴레이를 즉시 조정합니다! if (상태) { digitalWrite(RELAY_PIN4, HIGH); } else { digitalWrite(RELAY_PIN4, LOW); } }} 무효 루프() { fauxmo.handle(); 지연(500); 디지털 쓰기(RELAY_PIN1, LOW); 디지털 쓰기(RELAY_PIN2, LOW); 디지털 쓰기(RELAY_PIN3, LOW); digitalWrite(RELAY_PIN4, LOW);}
#includeIRsend irsend;#define a 4#define b 5#define c 6# d 7void setup() 정의 { Serial.begin(9600); 핀모드(a, 입력); 핀모드(b, 입력); 핀모드(c, 입력); pinMode(d, INPUT);} 무효 루프() { if (digitalRead(a) ==HIGH) { irsend.sendNEC(0x57E3E817, 32); //전원 코드 Serial.println("TV"); 지연(500); } if (digitalRead(b) ==HIGH) { irsend.sendNEC(0x57E354AB, 32); //키 입력 지연(2000); irsend.sendNEC(0x57E39867, 32); //위쪽 키 지연(1000); irsend.sendNEC(0x57E39867, 32); //위쪽 키 지연(1000); irsend.sendNEC(0x57E39867, 32); //위쪽 키 지연(1000); irsend.sendNEC(0x57E3B44B, 32); //오른쪽 키 지연(1000); irsend.sendNEC(0x57E354AB, 32); //지연 입력(2000); irsend.sendNEC(0x57E354AB, 32); //Enter Serial.println("사무실"); 지연(500); } if (digitalRead(c) ==HIGH) { irsend.sendNEC(0x57E38679, 32); //옵션 버튼 지연(1500); irsend.sendNEC(0x57E3CC33, 32); //다운키 딜레이(700); irsend.sendNEC(0x57E3CC33, 32); //다운키 딜레이(700); irsend.sendNEC(0x57E3CC33, 32); //다운키 딜레이(700); irsend.sendNEC(0x57E3CC33, 32); //다운키 딜레이(700); irsend.sendNEC(0x57E3B44B, 32); //오른쪽 키 지연(700); irsend.sendNEC(0x57E3B44B, 32); //오른쪽 키 지연(900); irsend.sendNEC(0x57E38679, 32); //옵션 버튼 Serial.println("슬립 타이머"); 지연(500); } if (digitalRead(d) ==HIGH) { irsend.sendNEC(0x57E34AB5, 32); //넷플릭스 코드 Serial.println("그렉의 넷플릭스"); 지연(500); }}
//2017.06.22#include섹션>#include /* LCD 화면을 배선하는 방법 상단에 핀이 있는 왼쪽에서 오른쪽으로 핀 * * GND - VCC - 냄비 중간 - 12 - GND - 11 - 없음 - 없음 - 없음 - 없음 - 5 - 4 - 9 - 2 - VCC - GND * * 냄비는 5V 및 GND를 켜고 노브를 돌려 LCD 대비를 변경할 수 있습니다. */ LiquidCrystal lcd(12, 11, 5, 4, 9, 2); //3 대신 9(NEED FOR TRANSMITTER)int receiverpin =10;IRrecv recv(receiverpin);decode_results results;void setup() { lcd.begin(16, 2); 핀모드(수신기 핀, 입력); Serial.begin(9600); recv.enableIRIn();} 무효 루프() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); recv.resume(); lcd.clear(); lcd.print(결과.값, 16진수); 지연(150); }}
제조공정
이것은 원래 2018년 11월에 게시된 기사에 대한 업데이트입니다. 모든 PLCnext Control에는 내장형 OPC UA 서버가 포함됩니다. 모든 OPC UA 서버와 마찬가지로 이 서버에는 공개 키 암호화를 사용하여 클라이언트와 보안 연결을 설정하는 옵션이 포함되어 있습니다. 이 가이드는 PLCnext Control과 보안 OPC UA 연결을 설정하기 위해 자신의 보안 인증서(자신의 개인 키 포함)를 사용하는 방법을 설명합니다. OPC UA 서버 인증서를 관리하는 방법에 대한 일반적인 정보는 다음을 참조하십시오. OPC
제작 프로젝트에서 절대 원하지 않는 것은 철골 구조가 피로해지고 파손되는 것입니다. 양질의 강철이 이를 성공적으로 피하는 비결이 될 수 있습니다. 그러나 양질의 강철은 보기보다 훨씬 더 중요합니다. 제조 과정에서 발생하는 문제는 표면이 접혀서 이음새라고 하는 채널로 말릴 때 생성되는 취약선에서부터 강철을 생성하기 위해 철과 탄소에 추가된 기본 금속 니켈, 구리 또는 납의 불순하고 부적절한 측정에 이르기까지 다양할 수 있습니다. 강철의 품질이 저하되면 용접이 실패할 수 있습니다. 성공적인 강철 제작자는 이를 성공적으로 방지하기 위해