TGViewer
Faris Faris @faris_fi · 11 subscribers
Post #43 41
# Пример использования в основном цикле камеры
def camera_loop_with_light_control():
"""Пример интеграции управления светом в основной цикл камеры"""
global AUTO_LIGHT_ENABLED

esp32cam_url = "http://192.168.88.28/capture"
camera_active = True

# Включаем автосвет при старте
AUTO_LIGHT_ENABLED = True

try:
while camera_active:
# Получаем кадр с камеры ESP32
response = requests.get(esp32cam_url, timeout=2)
if response.status_code == 200:
img_array = np.array(bytearray(response.content), dtype=np.uint8)
frame = cv2.imdecode(img_array, cv2.IMREAD_COLOR)

if frame is not None:
# Проверяем уровень освещенности
brightness = check_light_level(frame)

# Автоматическое управление светом
control_light(brightness)

# Добавляем информацию о освещении на экран
light_status = "ВКЛ" if brightness < LIGHT_THRESHOLD else "ВЫКЛ"
cv2.putText(frame, f"Яркость: {brightness:.1f}", (10, 30),
cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2)
cv2.putText(frame, f"Свет: {light_status}", (10, 60),
cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2)
cv2.putText(frame, f"Авто: {'ВКЛ' if AUTO_LIGHT_ENABLED else 'ВЫКЛ'}", (10, 90),
cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2)

# Отображаем кадр
cv2.imshow('Камера с автосветом', frame)

# Обработка клавиш
key = cv2.waitKey(1) & 0xFF
if key == ord('q'):
break
elif key == ord('a'): # Клавиша A для переключения авторежима
toggle_auto_light()
elif key == ord('l'): # Клавиша L для ручного включения
turn_on_light()
elif key == ord('d'): # Клавиша D для ручного выключения
turn_off_light()

time.sleep(0.1)

except Exception as e:
print(f"❌ Ошибка в цикле камеры: {e}")
finally:
# Гасим свет при выходе
turn_off_light()
cv2.destroyAllWindows()

# Голосовые команды для интеграции с ассистентом
def handle_light_commands(user_text):
"""Обработка голосовых команд для света"""
user_lower = user_text.lower()

if "включи свет" in user_lower or "включи фонарик" in user_lower:
success = turn_on_light()
return "Свет включен" if success else "Не удалось включить свет"

elif "выключи свет" in user_lower or "выключи фонарик" in user_lower:
success = turn_off_light()
return "Свет выключен" if success else "Не удалось выключить свет"

elif "автоматический свет" in user_lower or "авто свет" in user_lower:
status = toggle_auto_light()
return "Автоматический свет включен" if status else "Автоматический свет выключен"

return None

# Тестирование функции
if name == "main":
print("🔦 Тестирование функции фонарика")

# Тест ручного управления
print("1. Включаем свет...")
turn_on_light()
time.sleep(2)

print("2. Выключаем свет...")
turn_off_light()
time.sleep(1)

print("3. Включаем авторежим...")
toggle_auto_light()

# Запуск тестового цикла камеры
print("4. Запуск теста камеры с автосветом...")
print(" Клавиши: A-авто, L-свет вкл, D-свет выкл, Q-выход")
camera_loop_with_light_control()
  • 💘 1
More from @faris_fi
  1. Oct 30, 2025Обновленная структура - сделанно легкую нейронную сеть для опредления емоций
  2. Oct 30, 2025project/ ├── main.py ├── models/ │ └── simple_emotion_model.json ├── emotions/ │ ├── __ini…
  3. Oct 30, 2025project/ ├── train_emotion_model.py # цей файл ├── emotions/ │ ├── __init__.py # порожній…
  4. Oct 26, 2025project/ ├── main.py ├── voice/ │ ├── __init__.py │ ├── recognition.py │ ├── synthesis.py…
  5. Oct 21, 2025Faris pinned «ВСТУП РОЗДІЛ 1. ТЕОРЕТИКО-МЕТОДОЛОГІЧНІ ЗАСАДИ ЕМПАТИЧНИХ ШІ-СИСТЕМ 1.1.Нейр…
  6. Oct 20, 2025photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →