MQTT

 

MQTT: протокол обмена данными

MQTT — это стандартизированный протокол обмена сообщениями для взаимодействия между компьютерами. Протокол отличается простой реализацией и высокой эффективностью передачи данных. MQTT поддерживает обмен сообщениями в обоих направлениях: от устройств к облаку и обратно.

Вам необходимо добавить следующие параметры в файл config.yaml:

MQTT:
  url: "amqp://guest:guest@localhost:5672/%2F"
  exchange_name: "unicounter"
  queue_name: "unicounter"
  routing_key: "unicounter"
  app_id: "unicounter-1"
  period_sec: 1
  debug: true

Мы используем стандартный протокол ampq.

Вы можете использовать RabbitMQ как вариант, но можете заменить его на свой адрес ampq вместе с логином и паролем.

Программа отправляет сообщения следующего вида:

'{"some_camera_1": {"default": 6}}'

То есть одно сообщение может содержать обновление для нескольких камер, в каждой из которых — для нескольких типов подсчитанных объектов.

Отображается только то, что было подсчитано, то есть не накопленный итог, а просто количество, прошедшее за период.

Для тестирования вы можете установить Erlang и Rabbit и запустить эти два скрипта Python.

sender_example.py:

import pika

connection = pika.BlockingConnection(
    pika.ConnectionParameters(host='localhost'))
channel = connection.channel()

channel.queue_declare(queue='unicounter')

channel.basic_publish(exchange='', routing_key='unicounter', body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()

consumer_example.py:

import pika, sys, os

def main():
    connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
    channel = connection.channel()

    channel.queue_declare(queue='unicounter')

    def callback(ch, method, properties, body):
        print(f" [x] Received {body}")

    channel.basic_consume(queue='unicounter', on_message_callback=callback, auto_ack=True)

    print(' [*] Waiting for messages. To exit press CTRL+C')
    channel.start_consuming()

if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        print('Interrupted')
        try:
            sys.exit(0)
        except SystemExit:
            os._exit(0)

    Давайте сделаем проект вместе

    Заполните форму или позвоните нам
    +7 917 275-91-04

    Выберите продукцию для подсчета, впишите свое имя и телефон, нажмите кнопку


      Поможем убедиться, что видеосчетчик подойдет. Обучим счетчик на ваших видео и покажем предварительный результат. Если алгоритм не справится, честно скажем об этом до подписания договора.
      Гарантия Money Back. Если в течение месяца после внедрения счетчика вы останетесь недовольны его работой, вернем деньги. Без условий. Вы ничем не рискуете.
      Обсудить проект