Ótimas respostas já, gostaria de acrescentar algumas outras coisas que você deve levar em consideração. Como hardlib e Goufalite já mencionaram, a maneira de fazer isso é trigonometricamente. Eu desenhei uma representação em 2D da câmera e do objeto IoT:
Como você pode ver, o campo de visão da câmera será maior que o objeto - se não estiver próximo, quando o objeto se afastar.
Agora, você pode querer que a câmera esteja sempre centrada no objeto. Nesse caso, você pode simplesmente fazer os cálculos que o hardlib referenciou:
ϴ = arctan(y/x)
... que será o ângulo no sentido anti-horário do eixo x, por convenção. Você também precisará do ângulo longe do nível:
α = arctan(z / ((y^2+x^2)^1/2))
Obviamente, você terá que calcular com base na posição da câmera que está na origem nos três eixos.
Por outro lado, você pode preferir não fazer a câmera se mover mais do que o necessário, ou seja, fazer a câmera se mover apenas quando o objeto parecer estar prestes a sair do quadro. Nesse caso, você provavelmente desejará uma variável de "pressão" que aumentará a probabilidade de a câmera mudar de ângulo com base na distância que o objeto está da borda do quadro.
Se você seguir esse caminho, precisará conhecer o ângulo do campo de visão da câmera nos dois campos de visão, para poder determinar onde o objeto é comparado ao campo de visão da câmera.