Уведомления

Группа в Telegram: @pythonsu

#1 Май 6, 2017 18:58:39

Timuridze
Зарегистрирован: 2017-05-06
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Бот для телеграмм на питон(получение картинки с веб камеры)

День добрый, на балконе лежит raspbery которая работает в качестве моста между ethernet и wifi, решил нагрузить её полезным функционалом. Хочу чтобы по запросу бот в телеграмм присылал фото с веб камеры(камера смотрит на дорогу и видно пробки полезно когда едешь домой и планируешь маршрут). Нашел на гитхабе пример (https://github.com/ericho/robotina). Собственно сам я в Python 0. Поэтому прошу помощи.

Код работает фото отсылает НО, видимо настройки с которыми делается фото не оптимальные, вечером картинка приходит нормальная, видно дорогу. а днем когда света больше картинка полностью засвеченная. Вопросов два
1. Как сделать авторизацию бота (добавить список пользователей которым можно пользоваться ботом) желательно отдельным файлом в котором прописать id пользователей.
2. Основная задача это как получать нормальную не засвеченную картинку. как то передавать параметры может яркость контрастность.
Еще раз повторюсь в питон 0, если не затруднит поподробнее и попроще. В дальнейшем конечно хотелось бы функционал расширить, например передавать температуру в помещении, или например не фото а видео присылать, ну это уже мечты.

Может у кого то есть готовые наработки и он поделится, могу заплатить немного если нужно? В общем приму любую помощь.

фото днем и вечером



Сам код

   GNU nano 2.2.6                                  Файл: robotina.py                                                                         
""" A simple Telegram bot to get photos from a camera """
import cv2
import telepot
import time
TOKEN = "*****:********"
PHOTO = 'test.png'
CAM_PORT = 0
bot = telepot.Bot(TOKEN)
#def help_cmd(bot, update):
 #   text = ('/start command activates a motion capture mode.\n'
#            '/stop  command does the opposite.\n'
#            '/shot is used to get an actual snapshot.')
 #   bot.sendMessage(chat_id=update.message.chat_id, text=text)
#$config = {
#       cv2.CV_CAP_PROP_BRIGHTNESS: 50,
#       camera.CV_CAP_PROP_CONTRAST: 50,
#       camera.CV_CAP_PROP_SATURATION: 50,
#}
#for param, value in config.iteritems():
#       cv2.SetCaptureProperty(capture, param, value)
#
#
def take_photo():
    camera = cv2.VideoCapture(CAM_PORT)
#    camera.set(16,90)
    # Wait some time to get ligth in the camera
    time.sleep(1)
    rc, image = camera.read()
    if rc:
        cv2.imwrite(PHOTO, image)
    del(camera)
    return rc
def send_photo(chat_id, photo_path, caption):
    with open(photo_path, 'rb') as photo:
        bot.sendPhoto(chat_id, photo, caption)
def handle_messages(msg):
    """ The entry point to the message reception """
    content_type, chat_type, chat_id = telepot.glance(msg)
    print(content_type, chat_type, chat_id)
    if content_type == 'text':
        text = msg['text']
        if text == '/getphoto':
            if take_photo():
                send_photo(chat_id, PHOTO, 'This is a test caption')
            else:
                bot.SendMessage(chat_id, 'A problem occurred taking the photo')
        else:
            #error_msg = "No se de que me hablas!"
            error_msg = "I don't know what are you talking about!"
            bot.sendMessage(chat_id, error_msg)
bot.message_loop(handle_messages)
print('Listen messages...')
while True:
    time.sleep(5)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version