Grandes respuestas ya, solo me gustaría agregar algunas otras cosas que debe tener en cuenta. Como hardlib y Goufalite ya han mencionado, la forma de hacerlo es trigonométricamente. He dibujado una representación en 2-d de la cámara y el objeto IoT:
Como puede ver, el campo de visión de la cámara será más grande que el objeto, si no está cerca, cuando el objeto se aleje más.
Ahora, es posible que desee que la cámara esté siempre centrada en el objeto. En ese caso, simplemente puede tomar los cálculos a los que hace referencia hardlib:
ϴ = arctan(y/x)
... que será el ángulo en sentido antihorario desde el eje x, por convención. También necesitará el ángulo alejado del nivel:
α = arctan(z / ((y^2+x^2)^1/2))
Obviamente, tendrá que calcular en función de la posición de la cámara en el origen en los tres ejes.
Por otro lado, es posible que prefiera no hacer que la cámara se mueva más de lo necesario, es decir, hacer que la cámara solo se mueva una vez que el objeto parece estar a punto de salir del marco. En ese caso, es probable que desee una variable de "presión" que hará que la cámara tenga más probabilidades de cambiar su ángulo en función de lo cerca que esté el objeto del borde del encuadre.
Si sigue esa ruta, necesitará saber el ángulo del campo de visión de la cámara en ambos campos de visión, para poder determinar dónde se compara el objeto con el campo de visión de la cámara.