토론

라즈베리 파이로 간단한 AI 보안 로봇 만들기

Wikiprompt, 무료 프롬프트 백과사전에서

Coin Shot ☁️

2026년 6월 14일

라즈베리 파이로 간단한 AI 보안 로봇 만들기 시네마틱 3D 액션 광고 - [제품/브랜드 삽입], 극적인 스튜디

프롬프트 내용저장

🌐
라즈베리 파이, ESP32, 카메라, 모션 감지, 서보 추적, 텔레그램 알림을 사용하여 간단한 AI 보안 로봇을 만들어 드리겠습니다. 배선, 코드, 부품 목록, 설정 순서를 제공합니다. **부품 목록** - 라즈베리 파이 4 (2GB 이상 권장) - ESP32 개발 보드 - 라즈베리 파이 카메라 모듈 v2 또는 USB 웹캠 - 서보 모터 2개 (팬/틸트용, 예: SG90) - PIR 모션 센서 (HC-SR501) - 브레드보드 또는 3D 프린트된 프레임 - 점퍼 와이어, 전원 공급 장치 (5V/2.5A 이상) **배선** 1. **서보 모터**: 각 서보의 신호 핀을 ESP32의 GPIO 핀 (예: GPIO 13, GPIO 12)에 연결합니다. 전원 핀은 5V, 접지 핀은 GND에 연결합니다. 2. **PIR 센서**: PIR의 출력 핀을 ESP32의 GPIO 핀 (예: GPIO 14)에 연결합니다. 전원은 5V, 접지는 GND. 3. **카메라**: 라즈베리 파이 카메라 모듈을 CSI 포트에 연결하거나 USB 웹캠을 USB 포트에 연결합니다. 4. **ESP32와 라즈베리 파이 통신**: ESP32를 USB 케이블로 라즈베리 파이에 연결하거나, Wi-Fi를 통해 MQTT 또는 HTTP로 통신합니다 (권장: Wi-Fi). **설정 순서** 1. 라즈베리 파이 OS 설치 및 부팅 2. 라즈베리 파이에 Python, OpenCV, python-telegram-bot 라이브러리 설치 3. ESP32에 Arduino IDE 또는 MicroPython 펌웨어 업로드 4. ESP32 코드에서 Wi-Fi 자격 증명 및 라즈베리 파이 IP 설정 5. 라즈베리 파이 코드에서 텔레그램 봇 토큰 및 채팅 ID 설정 6. 서보 및 PIR 테스트 7. 통합 테스트 및 배포 **코드** **ESP32 코드 (Arduino IDE)** ```cpp #include <WiFi.h> #include <HTTPClient.h> #include <Servo.h> const char* ssid = "YOUR_WIFI"; const char* password = "YOUR_PASSWORD"; const char* serverName = "http://YOUR_PI_IP:5000/motion"; Servo servoX; Servo servoY; int pirPin = 14; int pirState = LOW; int posX = 90; int posY = 90; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting..."); } servoX.attach(13); servoY.attach(12); pinMode(pirPin, INPUT); } void loop() { pirState = digitalRead(pirPin); if (pirState == HIGH) { HTTPClient http; http.begin(serverName); int httpCode = http.GET(); http.end(); delay(5000); // 5초 대기 } // 서보 제어는 라즈베리 파이에서 명령을 받아 수행 (예: /servo?x=120&y=80) if (WiFi.status() == WL_CONNECTED) { HTTPClient http; http.begin("http://YOUR_PI_IP:5000/get_servo"); int httpCode = http.GET(); if (httpCode > 0) { String payload = http.getString(); // payload 형식: "x:120,y:80" int commaIndex = payload.indexOf(','); String xStr = payload.substring(2, commaIndex); String yStr = payload.substring(commaIndex + 3); posX = xStr.toInt(); posY = yStr.toInt(); servoX.write(posX); servoY.write(posY); } http.end(); } delay(100); } ``` **라즈베리 파이 코드 (Python)** ```python from flask import Flask, request, jsonify import cv2 import numpy as np import telegram import asyncio import threading import time app = Flask(__name__) # 텔레그램 설정 TOKEN = 'YOUR_BOT_TOKEN' CHAT_ID = 'YOUR_CHAT_ID' bot = telegram.Bot(token=TOKEN) # 카메라 설정 camera = cv2.VideoCapture(0) # 또는 카메라 모듈 사용 시 cv2.VideoCapture(0) 대신 picamera 사용 fgbg = cv2.createBackgroundSubtractorMOG2() # 서보 상태 servo_x = 90 servo_y = 90 def send_telegram_alert(frame): # 프레임을 저장하고 텔레그램으로 전송 cv2.imwrite('alert.jpg', frame) asyncio.run(bot.send_photo(chat_id=CHAT_ID, photo=open('alert.jpg', 'rb'))) def motion_detection(): global servo_x, servo_y while True: ret, frame = camera.read() if not ret: continue fgmask = fgbg.apply(frame) # 모션 감지 로직 (간단한 예) if np.sum(fgmask) > 10000: # 모션 발생 시 텔레그램 알림 send_telegram_alert(frame) # 모션 중심 계산 (간단한 예) M = cv2.moments(fgmask, True) if M['m00'] != 0: cx = int(M['m10'] / M['m00']) cy = int(M['m01'] / M['m00']) # 서보 각도 계산 (간단한 비례 제어) servo_x = max(0, min(180, 90 + (cx - 320) * 0.1)) servo_y = max(0, min(180, 90 + (cy - 240) * 0.1)) time.sleep(0.1) @app.route('/motion', methods=['GET']) def motion_trigger(): # ESP32에서 PIR 감지 시 호출 return jsonify({'status': 'ok'}) @app.route('/get_servo', methods=['GET']) def get_servo(): return f"x:{servo_x},y:{servo_y}" if __name__ == '__main__': # 모션 감지 스레드 시작 threading.Thread(target=motion_detection, daemon=True).start() app.run(host='0.0.0.0', port=5000) ``` **설정 순서 상세** 1. 라즈베리 파이 OS 설치 (Raspberry Pi Imager 사용) 2. SSH 활성화 및 Wi-Fi 설정 3. 라즈베리 파이에서 다음 명령 실행: ```bash sudo apt update && sudo apt upgrade -y sudo apt install python3-pip pip3 install opencv-python flask python-telegram-bot ``` 4. ESP32에 Arduino IDE 설치 및 보드 설정 (ESP32 Dev Module) 5. ESP32 코드 업로드 (Wi-Fi 자격 증명 및 라즈베리 파이 IP 수정) 6. 라즈베리 파이 코드 저장 (예: `security_robot.py`) 및 실행 7. 텔레그램 봇 생성 (BotFather) 및 토큰, 채팅 ID 확인 8. 서보 및 PIR 연결 확인, 각도 테스트 9. 전체 시스템 테스트: PIR 감지 시 ESP32가 라즈베리 파이에 신호, 라즈베리 파이가 모션 감지 및 텔레그램 알림, 서보가 객체 추적 **참고 사항** - 카메라 모듈 사용 시 `picamera` 라이브러리 설치 및 코드 수정 필요 - 서보 전원 공급 시 전압 강하 방지를 위해 별도 전원 권장 - 보안을 위해 텔레그램 토큰 및 채팅 ID를 환경 변수로 관리 - 모션 감지 알고리즘은 필요에 따라 더 정교하게 수정 가능 (예: YOLO 객체 감지)

전체 프롬프트를 보려면 로그인하세요

Continue with:

By logging in, you agree to our Terms of Use and Privacy Policy

사용법

이 프롬프트는 coding와 함께 사용하도록 설계되었습니다. 위의 프롬프트 내용을 복사하여 원하는 AI 도구에 붙여넣으세요.

최상의 결과를 얻으려면 자리 표시자(대괄호 또는 대문자로 표시)를 특정 요구 사항으로 사용자 지정할 수 있습니다.

참고 자료

분류:coding| twitter| raspberry-pi| esp32

토론