산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Earth_Analyzer

구성품 및 소모품

볼트 IoT 볼트 WiFi 모듈
× 1
Arduino UNO
× 1
Arduino Nano R3
× 1
nRF24l01
× 2
DC 모터, 12V
× 2
12V 납산 배터리용 DFRobot Solar Power Manager
× 1
SparkFun 듀얼 H-Bridge 모터 드라이버 L298
× 1
점퍼 와이어(일반)
× 1
LM35
× 1
DFRobot 중력:아날로그 정전 용량 토양 수분 센서 - 부식 방지
× 1
SG90 마이크로 서보 모터
× 1
조이스틱, 10kohm
× 1

필요한 도구 및 기계

납땜 인두(일반)
납땜 와이어, 무연
납땜 플럭스, 납땜
멀티툴, 스크루드라이버

앱 및 온라인 서비스

Arduino IDE
볼트 IoT 볼트 클라우드
통합
Twilio SMS 메시징 API
메일건
볼트 IoT Android 앱
볼트 IoT iOS 앱

이 프로젝트 정보

안녕하세요, 안녕하세요 모두

이 프로젝트는 주로 농부들을 도울 수 있는 지구용 탐사선에 관한 것입니다. 이 프로젝트는 주로 3개의 모듈러스를 포함합니다.

모듈 1:

전체 설정을 위한 하드웨어 연결은 이제 DC 모터를 고려합니다.

이를 위해서는 두 개의 DC 모터와 모터 드라이버가 필요합니다. 모터 드라이버 포함

여기서 v+, en1, en2를 브레드 보드의 단일 지점에 연결하고 모터 4개 와이어를 1ma 2 핀의 4개 입력에 연결해야 합니다. 이제 다음으로 모터 드라이버 핀의 출력 핀이 arduino에 연결되고 배터리는 다음 그림과 같이 연결해야 합니다.

이제 다음으로 볼트에 연결해야 합니다. 동일한 4개의 핀이 볼트의 디지털 핀(0, 1, 2, 3)에 연결되어야 합니다.

이제 토양 센서는 볼트에 연결해야 하지만 디지털 핀은 볼트(디지털 4핀)에 연결해야 합니다. 이제 온도 센서를 볼트 아날로그 핀(A0)에 연결할 차례입니다.

이제 이번에는 모든 접지와 v+(온도 센서, 수분 센서), en1, en2를 arduino의 5v로 연결하고 마지막으로 이 모든 핀에 필요한 전압 배터리를 공급해야 합니다.

모듈 2:

NRF 연결:

위의 다이어그램은 무선 통신에 사용되는 nrf 모듈이라고 합니다. 위의 다이어그램은 가까운 지역에서 자동차를 제어하기 위한 회로에도 포함되어야 합니다.

NRF와 ARDUINO의 최종 연결

이제 조이스틱을 연결할 때입니다:

두 개의 조이스틱이 사용됩니다.

1) 자동차 방향을 제어합니다.

2) 서보를 제어합니다.

모듈 3:

최종 코딩

1) 아두이노 코딩:

송신기:

#include 
#include
#include
#include
#include

RF24 라디오(7, 8); // CSN, CE
상수 바이트 주소[6] ="00001";

int x_key =A1;
int y_key =A0;
int p_key =A3;
int q_key =A2;
int x_pos;
int y_pos;
int p_pos;
int q_pos;

설정() {
radio.begin() 무효;
radio.openWritingPipe(주소)
;
radio.setPALevel(RF24_PA_MIN);
radio.setChannel(87);
radio.setDataRate(RF24_
250KBPS);
radio.stopListening();

Serial.begin(9600);
pinMode(x_key, INPUT);
pinMode (y_key, INPUT);
pinMode (p_key, INPUT);
핀모드(q_key, INPUT);
}
int pos;
무효 루프() {
x_pos =analogRead(x_key);
y_pos =analogRead(y_key);
p_pos =analogRead(p_key);
q_pos =analogRead(q_key);
Serial.println(x_pos);
Serial.println(y_pos);
Serial.println(p_pos);
Serial.println(q_pos);
if( p_pos>400 &&p_pos<600 &&q_pos>400 &&q_pos<600)
{
if(x_pos>400 &&x_pos<600 &&y_pos>400 &&y_pos<600)
{
pos=100;
radio.write(&pos, sizeof(pos));
}
if(x_pos>400 &&x_pos<600 &&y_pos<400)
{
pos=200;
radio.write(&pos, sizeof(pos));
}
if(x_pos>400 &&x_pos<600 &&y_pos>600)
{
pos=300;
radio.write(&pos, sizeof(pos));
}
if(y_pos>400 &&y_pos<600 &&x_pos<400)
{
pos=400;
radio.write(&pos, sizeof(pos));
}
if(y_pos>400 &&y_pos<600 &&x_pos>600 )
{
pos=500;
radio.write(&pos, sizeof(pos));
}
Serial.println(pos);
지연(100);
}
else if(p_pos<400 || p_pos>600)
{
if(p_pos<400)
{
pos=600;
radio.write(&pos, sizeof(pos));
}
if(p_pos>600)
{
pos=700;
radio.write(&pos, sizeof(pos));
}
지연(100);
}
}

수신기:

#include 
#include
#include
#include
#include
#include
서보 서보;

RF24 라디오(7, 8); // CSN, CE
const byte address[6] ="00001";
int servo_pin =9;
int sensor_pin=A0;
int output_value;

무효 설정() {
Serial.begin(9600);
radio.begin();
servo.attach(servo_pin);
radio.openReadingPipe(0, 주소);
radio.setPALevel(RF24_PA_MIN);
radio.setChannel(87);
radio.setDataRate(RF24_250KBPS);
radio.startListening();
}
int pos;
void 루프() {
if (radio.available()) {
radio.read(&pos, sizeof(pos));
Serial.println(pos);
if(pos==100)
{
digitalWrite(6,LOW);
digitalWrite(5,LOW);
digitalWrite (4,LOW);
digitalWrite(3,LOW);
// Serial.println("gk0");
}
else if (pos==200){
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
digitalWrite(4,HIGH);
digitalWrite(3,LOW);
지연( 10);
// Serial.println("gk1");
}
else if (pos==300){
digitalWrite(6,LOW);
digitalWrite(5,HIGH );
디지털 Write(4,LOW);
digitalWrite(3,HIGH);
delay(10);
// Serial.println("gk2");
}
else if (pos==400){
digitalWrite(6,LOW);
digitalWrite(5,HIGH);
digitalWrite(4,HIGH);
digitalWrite(3 ,LOW);
delay(10);
// Serial.println("gk3");
}
else if (pos==500){
digitalWrite(6,HIGH);
digitalWrite(5,LOW);
digitalWrite(4,LOW);
digitalWrite(3,HIGH);
지연(10);
// Serial.println("gk5");
}
else if (pos==600){
servo.write(90);
delay(10 );
// Serial.println("gk6");
}
else if (pos==700){
servo.write(180);
delay( 10);
// Serial.println("gk7");

}
}
else
{
Serial.println( "연결 끊김");
}
}
}

이제 텔레그램 메시지를 수신합니다:(서버 코드)

ripl.it과 같은 서버 중 하나에 로그인한 다음 코드를 업로드합니다.

메인.py

HTTP 요청을 만들기 위한 import 요청 #
import json # JSON 데이터 처리를 위한 라이브러리
import time # 절전 작업을 위한 모듈
from boltiot import Bolt # Boltiot 모듈에서 Bolt 가져오기
conf # 구성 파일 가져오기
mybolt =Bolt(conf.bolt_api_key, conf.device_id)
def get_sensor_value_from_pin(pin):
시도:
response =mybolt.digitalRead (핀)
data =json.loads(response)
if data["success"] !=1:
print("요청이 성공하지 못했습니다.")
print("이 응답->", 데이터)
return -999
sensor_value =int(data["value"])
return sensor_value
예외 e:
print("센서 값을 반환할 때 문제가 발생했습니다.")
print(e)
return -999
def send_telegram_message(message):
"""텔레그램을 통해 메시지를 보냅니다." ""
url ="https://api.telegram.org/" + conf.telegram_bot_id + "/sendMessage"
데이터 ={
"chat_id":conf.telegram_chat_id,
"텍스트":메시지
}
시도:
다시 sponse =requests.request(
"GET",
url,
params=data
)
print("텔레그램 응답입니다")
print(response.text)
telegram_data =json.loads(response.text)
return telegram_data["ok"]
예외 e:
print("오류가 발생했습니다 Telegram을 통해 경고 메시지를 보낼 때")
print(e)
return False
true인 경우:
# 1단계
sensor_value =get_sensor_value_from_pin("4")
print("현재 센서 값은 다음과 같습니다.", sensor_value)
# 2단계
if sensor_value ==-999:
print("요청이 실패했습니다. 건너뜁니다.")
time.sleep(10)
계속
# 3단계
if sensor_value>=conf.threshold:
print("현재 온도 값은 ")
message ="수분 값이 임계값보다 약간 큽니다. "
telegram_status =send_telegram_message(message)
print("이것은 텔레그램 상태입니다:", telegram_status)
# 4단계
time.sleep(100)

conf.py:

"""Configurations for telegram_alert.py"""
bolt_api_key ="XXXX" # 이것은 Bolt Cloud API 키입니다.
device_id ="XXXX" # 이것은 장치 ID와 BOLTXXXX와 유사합니다. 여기서 XXXX는 숫자입니다.
telegram_chat_id ="@XXXX" # 생성된 텔레그램 채널의 채널 ID입니다. @
telegram_bot_id ="botXXXX" 뒤에 붙여넣기 # 생성된 텔레그램 봇의 봇 ID입니다. bot 뒤에 붙여넣기
threshold =0 # 경고를 보내야 하는 임계값

봇 및 API 값 입력

프로세스:

Telegram을 사용한 경고 메시지

텔레그램이란 무엇입니까?

Telegram은 Whatsapp과 유사한 메시징 앱입니다. 파일과 함께 메시지를 보내고 받을 수도 있습니다. 사용은 무료입니다. Android/iOS/Windows 휴대폰과 PC 또는 Mac을 통해 플랫폼에 액세스할 수 있습니다.

일부 텔레그램 용어 -

텔레그램 채널이란 무엇입니까?

채널은 그룹이 Whatsapp에 무엇인지 텔레그램하는 것입니다. 채널은 많은 청중에게 메시지를 방송하기 위한 도구입니다. 구독자 수에 제한이 없으며 영구 URL로 공개될 수 있으며 채널의 각 게시물에는 자체 조회수 카운터가 있습니다.

봇이란 무엇입니까?

봇은 Telegram 내에서 실행되는 타사 응용 프로그램입니다. 사용자는 메시지, 명령 및 요청을 보내 봇과 상호 작용할 수 있습니다.

봇을 사용하여 채널에 알림을 보냅니다.

이 프로젝트에서 무엇을 배울까요?

이 프로젝트에서는 센서 값이 설정된 임계값을 초과할 때 Telegram을 통해 휴대폰으로 경고를 보낼 수 있습니다.

이 프로젝트에 무엇이 필요합니까?

Telegram을 통해 알림 및 메시지를 보내려면 다음이 필요합니다.

<울>
  • 인터넷에 연결된 Android/iOS/Windows 휴대전화.
  • 텔레그램 계정. 이를 위해서는 휴대폰 번호가 필요합니다.
  • puTTY 또는 가상 머신을 통해 Ubuntu OS에 액세스합니다.
  • 텔레그램 설정

    Telegram 가입/로그인 단계

    <울>
  • 휴대전화에서 Playstore 또는 App Store로 이동하여 Telegram을 검색합니다.
  • Telegram 앱의 최신 버전을 다운로드하여 설치하세요.
  • 새 계정에 가입하거나 휴대폰 번호를 제공하여 Telegram에 로그인하세요.
  • Telegram에서 전화를 걸거나 SMS를 보내 휴대폰 번호를 확인합니다.
  • 계정을 확인하고 필요한 경우 권한을 승인합니다.
  • 텔레그램에 로그인하면 아래와 같은 화면이 표시됩니다. (아래 스크린샷과 달라도 괜찮습니다.)
  • Telegram을 성공적으로 설치하고 계정을 설정했습니다. 다음 강의에서는 채널과 봇에 대해 자세히 알아볼 것입니다.

    채널 만들기

    텔레그램 채널이란 무엇입니까?

    채널은 그룹이 Whatsapp에 무엇인지 텔레그램하는 것입니다. 채널은 많은 청중에게 메시지를 방송하기 위한 도구입니다. 구독자 수에 제한이 없으며 영구 URL로 공개될 수 있으며 채널의 각 게시물에는 자체 조회수 카운터가 있습니다.

    채널을 만드는 단계

    <울>
  • 텔레그램 앱의 홈 화면으로 이동합니다.
  • 왼쪽에서 스와이프하여 메뉴를 표시합니다.
  • '새 채널'을 클릭합니다.
  • <울>
  • 채널의 이름과 설명을 묻는 메시지가 표시됩니다. 적절한 이름과 설명을 제공하십시오. 사진 추가는 선택 사항입니다.
  • <울>
  • 다음 화면에서 채널을 공개로 설정합니다.
  • 같은 화면에서 채널에 대한 영구 링크를 입력하라는 메시지가 표시됩니다. 소문자와 숫자 0-9를 사용하여 채널 링크를 만들 수 있습니다.
  • 채널 링크 이름은 글로벌이며 링크 이름을 사용할 수 있는 경우에만 채널 링크를 만들 수 있습니다. 채널 링크 이름은 이메일 주소와 유사합니다. 즉, 한 번에 하나의 고유한 이메일 ID만 존재할 수 있습니다.
  • 채널 링크 이름을 temperature_alert_ 뒤에 이메일 ID로 유지할 수 있습니다. 예를 들어 내 이메일 ID가 [email protected]인 경우 채널 링크 이름을 temperature_alert_developer_boltiot_com으로 유지할 수 있습니다. (허용되지 않았기 때문에 @ 및. 기호를 제거하고 밑줄 _)으로 대체했습니다. 이것은 단지 제안일 뿐입니다. 채널 링크 이름은 유효하다면 얼마든지 유지할 ​​수 있습니다.
  • 이 채널의 영구 링크 이름을 메모해 두십시오. 나중에 이 채널에 메시지를 보내야 합니다. 예를 들어 아래 스크린샷의 채널 링크 이름은 " 온도 경고".
  • <울>
  • 축하합니다! 새 채널을 만들었습니다. 앱 홈 화면에서도 이 채널을 볼 수 있습니다.
  • <울>
  • 상단의 채널 이름을 클릭하면 자세한 내용을 볼 수 있습니다.
  • <울>
  • 다음으로 봇을 만들고 채널에 추가해야 이 채널에 알림을 게시할 수 있습니다.
  • 봇 만들기

    봇이란 무엇입니까?

    봇은 Telegram 내에서 실행되는 타사 응용 프로그램입니다. 사용자는 메시지, 명령 및 요청을 보내 봇과 상호 작용할 수 있습니다.

    봇을 사용하여 채널에 알림을 보냅니다.

    새 봇 만들기

    Telegram을 사용하면 "BotFather"라는 봇의 도움으로 새 봇을 만들 수 있습니다. 다른 봇을 만들고 관리하는 단일 봇입니다.

    <울>
  • 앱의 홈 화면에서 오른쪽 상단의 검색 아이콘을 클릭하고 "botfather"를 입력합니다.
  • <울>
  • 검색 결과에서 아래와 같이 "BotFather"에 대한 올바른 결과를 클릭합니다. 올바른 "BotFather"는 이름 옆에 파란색 체크 표시가 있습니다. 그러면 "BotFather"가 있는 채팅 창으로 이동합니다.
  • <울>
  • 채팅에는 이미 몇 가지 항목이 있으며 시작하기 위한 명령 목록이 표시됩니다.
  • <울>
  • 새 봇을 생성해야 하므로 창에 "/newbot"을 입력하세요.
  • 봇 이름 및 봇 사용자 이름과 같은 몇 가지 세부 정보를 더 입력하라는 메시지가 표시됩니다.
  • 봇이 성공적으로 생성되면 아래와 유사한 화면이 표시되고 봇 토큰이 포함됩니다. 이 토큰은 봇을 제어하고 봇을 대신하여 메시지를 보내는 데 사용됩니다. 누구나 봇에 액세스할 수 있으므로 이 토큰을 안전하게 보관하세요.
  • <울>
  • 위의 스크린샷에서 봇 토큰은 "894346529:AAhuJ2XJQy5dlEtLYF0sc0Z_qu0fSqihSSc"입니다. telegram_bot_id로 저장하십시오. telegram_bot_id는 "bot" 다음에 봇 토큰으로 저장됩니다. 따라서 이 예에서 telegram_bot_id는 "bot894346529:AAhuJ2XJQy5dlEtLYF0sc0Z_qu0fSqihSSc"가 됩니다.
  • telegram_bot_id는 파이썬 코드에서 메시지를 보내는 데 사용됩니다. 파이썬 코드는 이후 수업에서 배울 것입니다.
  • 또한 Bot ID 저장 시 주의하시기 바랍니다. 0과 O, I와 1 등은 모양이 비슷해서 헷갈릴 수 있습니다.
  • 축하합니다. 새 봇을 만들었습니다. 이제 알림을 보낼 수 있도록 이전에 만든 채널에 추가해야 합니다.
  • 채널에 봇 추가

    <울>
  • 앱 홈 화면에서 이전에 만든 채널을 엽니다.
  • 화면에서 상단의 채널 이름을 클릭하면 해당 채널의 정보가 열립니다.
  • <울>
  • 새로 만든 봇을 채널에 추가할 수 있도록 관리자 버튼을 클릭하세요.
  • <울>
  • 봇의 사용자 이름을 사용하여 생성한 봇을 검색합니다. 올바른 봇을 찾으면 클릭하여 채널에 추가하십시오. 이전 단계에서 관리자 버튼을 클릭했는지 확인하십시오. 그러면 봇이 채널에 게시할 수 있습니다.
  • <울>
  • 봇에 대한 권한을 확인하라는 메시지가 표시됩니다. 채널에 봇을 계속 추가하려면 오른쪽 상단의 체크 표시를 누르세요. 봇에 "메시지 게시" 권한이 있는지 확인하세요.
  • <울>
  • 이제 채널의 관리자 목록에 새로 생성된 봇이 표시됩니다.
  • <울>
  • 이제 봇을 통해 채널에 메시지를 보내는 코드를 작성하겠습니다.
  • 이제 TWILLO 및 MAIL GUN을 위한 네트워크 설정

    Google 어시스턴트를 사용하여 휴대전화에서 언제든지 SMS 및 이메일을 통해 LM35 온도 센서 값을 수신합니다.

    IoT 프로젝트의 센서 값을 언제든지 확인해야 하는 경우 어떻게 하시나요? 클라우드에 로그인하여 확인하기만 하면 됩니다. 간단해 보이죠? 하지만 값을 매시간 또는 몇 분에 한 번, 하루에 여러 번 확인해야 한다면 어떻게 될까요? 조금 (매우) 번거롭겠죠? 이제 Google 어시스턴트에게 "센서 값을 보내주세요"라고 말하여 SMS 및 이메일을 통해 센서 값을 얻을 수 있는 세상을 상상해 보세요. 기다려, 기다려 그 상황은 더 이상 상상이 아닙니다. 여러분 스스로가 몇 단계만 거치면 그렇게 할 수 있기 때문입니다. 계속 읽어보세요.

    이 프로젝트에서는 Google 어시스턴트에 대한 명령을 통해 SMS 및 이메일을 통해 LM35 센서로부터 온도 센서 값을 수신합니다.

    1단계:하드웨어 설정

    이름이 보이도록 LM35 센서를 손으로 잡으십시오. 왼쪽에서 오른쪽으로 3개의 핀은 VCC, 출력 및 GND입니다. 3개의 핀을 암-수 와이어에 연결합니다. Bolt WiFi 모듈의 5V, A0 및 GND 핀에 왼쪽에서 오른쪽으로 3개의 핀에 해당하는 3개의 와이어를 연결합니다. WiFi 모듈을 5V 전원에 연결합니다. 활성 인터넷 연결에 연결되어 있는지 확인하십시오.

    2단계:Integromat에서 IFTTT 모듈 만들기

    Integromat 계정에 로그인합니다. Integromat에 가입하지 않은 경우 여기를 클릭하여 계정을 만들 수 있습니다. 로그인 후 화면 오른쪽 상단의 "새 시나리오 만들기"를 클릭합니다. 화면에서 IFTTT, HTTP, Mailgun 및 Twilio를 선택하여 필요한 도구를 선택한 다음 "계속"을 클릭합니다. 그런 다음 흰색 원을 클릭하고 목록에서 IFTTT를 선택한 다음 메뉴에서 "데이터 수신"을 선택합니다. 이 모듈은 나중에 논의할 IFTTT의 애플릿에 연결하는 데 필수적입니다. "추가"를 클릭하여 새 Webhook을 추가한 다음 적절한 이름을 지정하고 "저장"을 클릭합니다. 이제 URL 또는 링크가 표시됩니다. 나중에 사용할 수 있도록 저장해 두십시오.

    3단계:Integromat에서 HTTP 모듈 만들기

    그런 다음 모듈에 부착된 "+" 기호를 클릭하여 새 모듈을 추가합니다. "요청하기" 다음에 "HTTP"를 선택하십시오. 이것은 Bolt IoT Cloud에서 센서 값을 수신하는 데 필요합니다. URL에 https://cloud.boltiot.com/remote/your-bolt-iot-api-key/analogRead?pin=A0&deviceName=BOLTXXXXXXX 링크를 붙여넣습니다. "your-bolt-iot-api-key" 및 "BOLTXXXXXXX"를 Bolt IoT Cloud에서 쉽게 찾을 수 있는 해당 자격 증명으로 바꾸십시오. 방법을 "GET"으로 설정하고 "확인"을 클릭합니다.

    위의 링크는 Bolt Iot Cloud에서 센서 값을 가져오는 데 사용됩니다. 위 링크의 출력은 {"value":"XXX", "success":"1"} 형식입니다. 여기서 XXX는 센서 값입니다.

    4단계:Integromat에서 Mailgun 모듈 만들기

    이제 "+"를 다시 클릭하고 검색 상자에 "Flow Control"을 입력하고 선택하고 "Router"를 선택합니다. 두 개의 흰색 원을 만들어야 합니다. 첫 번째 흰색 원을 클릭하고 "Mailgun"을 선택한 다음 "이메일 보내기"를 선택합니다. 여기서 Mailgun은 온도가 포함된 이메일을 수신하는 데 사용됩니다. Mailgun에 이미 계정이 있는 경우 Mailgun 계정에서 쉽게 찾을 수 있는 API 키와 도메인 이름이 있어야 합니다. Mailgun에 계정이 없는 경우 아래에 제공된 대체 단계를 따를 수 있습니다. 요청에 따라 필수 세부 정보를 입력합니다. 받는 사람의 메일(귀하의 이메일 주소)을 입력합니다. "보낸 사람" 필드에 "test@yourdomainname"을 입력합니다. "내용" 섹션에서 센서 값이 아닌 온도 값을 작성해야 합니다. 온도 값을 센서 값으로 변환하려면 숫자를 10.24로 나누어야 합니다. XXX 형식의 센서 값을 얻으려면 "하위 문자열" 기능을 사용하는 다른 모든 문자를 제거해야 합니다. 옆에 있는 대화 상자에서 "A" 기호를 클릭하고 "하위 문자열"을 선택합니다.

    대괄호 안의 첫 번째 공간에서 별 기호 아래의 "데이터" 옵션을 클릭하고 두 번째 공간과 세 번째 공간에서 "11"과 "14"를 클릭합니다. 엄밀히 말하면 이것은 센서 값을 가져오는 올바른 방법이 아니므로 해킹을 사용하여 가져옵니다. 올바른 방법을 알고 있는 사람이 있다면 아래 댓글 섹션에 방법을 언급할 수 있습니다.

    후자는 출력에서 ​​"XXX"만 캡처하기 위해 수행됩니다. 그런 다음 이 숫자를 10.24로 나눕니다.

    시나리오를 저장하기 전에 화면 하단의 "스케줄링"을 켜고 "시나리오 실행"을 "즉시"로 선택하는 것을 잊지 마십시오. 최종 시나리오는 다음과 같아야 합니다.

    6단계:IFTTT에서 새 애플릿 만들기

    IFTTT 계정에 로그인합니다. If you haven't signed up on IFTTT, then you can create an account by clicking here. After logging in, click on "New Applet" under the "My Applets" section. Click on "+this" followed by "Google Assistant" after searching for it in the search box. Click on "Say a simple phrase" in the following screen. Type the command for which you want to trigger the required action.

    Click on "Trigger" followed by "+that". Search for "Webhooks" in the search box and select it followed by selecting "Make a web request" in the following screen. In the URL field, paste the link which we got in Step 2 after creating an IFTTT module in Integromat. This step is very essential to run the scenario in Integromat when you say the command to Google Assistant. Afterwards, select "POST" in method and click on "Create Action". Write a suitable name for the applet and select "Finish".

    그게 다야 Now see the magic when you take out your mobile phone and say "Ok Google, send the temperature sensor value."

    Schematics

    Connecting female-to-male wires to LM35 sensor

    Connecting female-to-male wires to the Bolt WiFi module

    Final connection

    THAT'S IT NOW UPLOAD EVERY THING AND THEN CHECK.

    IF ANY DOUBTS CONTACT ME BY COMMENT SECTION.

    THANK YOU....................................


    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • FINAL RECEIVER
  • FINAL TRANSMITER
  • FINAL RECEIVERArduino
    #include #include #include #include #include #include Servo servo;RF24 radio(7, 8); // CSN, CEconst byte address[6] ="00001";int servo_pin =9;int sensor_pin=A0;int output_value;void setup() { Serial.begin(9600); radio.begin(); servo.attach (servo_pin ); radio.openReadingPipe(0, address); radio.setPALevel(RF24_PA_MIN); radio.setChannel(87); radio.setDataRate(RF24_250KBPS); radio.startListening();}int pos;void loop() { if (radio.available()) { radio.read(&pos, sizeof(pos)); Serial.println(pos); if(pos==100) { digitalWrite(6,LOW); digitalWrite(5,LOW); digitalWrite(4,LOW); 디지털 쓰기(3,LOW); // Serial.println("gk0"); } else if (pos==200){ digitalWrite(6,HIGH); digitalWrite(5,LOW); digitalWrite(4,HIGH); 디지털 쓰기(3,LOW); 지연(10); // Serial.println("gk1"); } else if (pos==300){ digitalWrite(6,LOW); digitalWrite(5,HIGH ); digitalWrite(4,LOW); digitalWrite(3,HIGH); 지연(10); // Serial.println("gk2"); } else if (pos==400){ digitalWrite(6,LOW); digitalWrite(5,HIGH ); digitalWrite(4,HIGH); 디지털 쓰기(3,LOW); 지연(10); // Serial.println("gk3"); } else if (pos==500){ digitalWrite(6,HIGH); digitalWrite(5,LOW ); digitalWrite(4,LOW); digitalWrite(3,HIGH); 지연(10); // Serial.println("gk5"); } else if (pos==600){ servo.write(90); 지연(10); // Serial.println("gk6"); } else if (pos==700){ servo.write(180); 지연(10); // Serial.println("gk7"); } } else { Serial.println("connection lost"); } }
    FINAL TRANSMITERArduino
    #include #include #include #include #include RF24 radio(7, 8); // CSN, CEconst byte address[6] ="00001";int x_key =A1; int y_key =A0; int p_key =A3; int q_key =A2; int x_pos;int y_pos;int p_pos;int q_pos;void setup() { radio.begin(); radio.openWritingPipe(address); radio.setPALevel(RF24_PA_MIN); radio.setChannel(87); radio.setDataRate(RF24_250KBPS); radio.stopListening(); Serial.begin(9600); pinMode (x_key, INPUT); pinMode (y_key, INPUT); pinMode (p_key, INPUT); pinMode (q_key, INPUT); }int pos;void loop() { x_pos =analogRead (x_key); y_pos =analogRead (y_key); p_pos =analogRead (p_key); q_pos =analogRead (q_key); Serial.println(x_pos); Serial.println(y_pos); Serial.println(p_pos); Serial.println(q_pos); if (p_pos>400 &&p_pos<600 &&q_pos>400 &&q_pos<600) { if(x_pos>400 &&x_pos<600 &&y_pos>400 &&y_pos<600) { pos=100; radio.write(&pos, sizeof(pos)); } if(x_pos>400 &&x_pos<600 &&y_pos<400) { pos=200; radio.write(&pos, sizeof(pos)); } if(x_pos>400 &&x_pos<600 &&y_pos>600) { pos=300; radio.write(&pos, sizeof(pos)); } if(y_pos>400 &&y_pos<600 &&x_pos<400) { pos=400; radio.write(&pos, sizeof(pos)); } if(y_pos>400 &&y_pos<600 &&x_pos>600) { pos=500; radio.write(&pos, sizeof(pos)); } Serial.println(pos); delay(100);}else if(p_pos<400 || p_pos>600){ if(p_pos<400) { pos=600; radio.write(&pos, sizeof(pos)); } if(p_pos>600) { pos=700; radio.write(&pos, sizeof(pos)); } delay(100);}}

    회로도


    제조공정

    1. Arduino 스파이봇
    2. FlickMote
    3. 수제 TV B-Gone
    4. 마스터 시계
    5. 나를 찾기
    6. Arduino Power
    7. Tech-TicTacToe
    8. Arduino Quadruped
    9. 볼트와 Arduino를 사용하여 LED 밝기 제어
    10. Arduino 조이스틱