Este artigo demonstra a conexão do sensor de temperatura DHT11 à placa ESP32 e envio dos dados da temperatura ao IBM Watson IoT Platform com plotagem dos dados em aplicativo Django.
Requisitos
Placa ESP32 e sensor de temperatura DTH11.
Framework Django instalado.
Arduino IDE com configuração da espressif para programação da placa ESP32.
Conta no IBM Watson IoT Platform para conexão do dispositivo ao broker MQTT.
VSCode instalado para edição do código python ou outra IDE de preferência.
Incluindo dispositivo no IBM Watson IoT Platform
Acesse o endereço https://internetofthings.ibmcloud.com/, crie uma conta.
Selecione a organização que foi criada e em Dashboard na IBM Watson IoT Platform na guia dispositivos inclua seu dispositivo Esp32.
Escolha um nome e um ID para o dispositivo.
Após preencher as informações do dispositivo salve-as em um local seguro para posteriormente configurar no Arduino IDE.

Observação: Guarde o token de autenticação pois não será possível recuperá-lo posteriormente.
Configuração do ESP32 no Arduino IDE
Siga as orientações para a configuração da placa Esp32 no Arduino IDE conforme indicado em espressif.
Código ESP32 com sensor DTH11
No Arduino IDE Instale as bibliotecas DTH.h, WiFi.h, WiFiClient.h e PubSubClient.h. Em seguida crie o código para a configuração da placa.
Observação: Quando for compilar o código na placa Esp32 o sensor DTH11 deve estar desconectado da mesma.
Conexão física da placa Esp32 com sensor DTH11

Criando o projeto Django
Crie e ative o ambiente de desenvolvimento virtual digitando os comandos no terminal linux:
virtualenv -p python3 .
source bin/activate
Depois de ter ativado o ambiente virtual instale e crie o projeto Django:
pip3 install django
django-admin startproject myproject .
python manage.py startapp myapp
No VSCode selecione o diretório myproject e dentro do diretório myapp crie o arquivo myApplicationIoT.py, nesse arquivo será configurado a conexão do aplicativo Django com o servidor broker MQTT da IBM Watson IoT Platform.
No terminal do VSCode instale a biblioteca iot da IBM:
pip3 install wiotp-sdk
Edite o arquivo myApplicationIoT.py da seguinte forma:
Em appConfig a key é a chave da API que pode ser obtida ou criada em Dashboard Aplicativos na IBM Watson IoT Platform. O token é obtido quando da criação do dispositivo na plataforma sendo o token de autenticação.
Na pasta myproject configure as urls:
Edite o arquivo views.py no diretório myapp conforme o código:
No diretório myapp crie a pasta templates e indique o caminho configurando o arquivo settings.py.
‘DIRS’: [‘%s/templates/’%(BASE_DIR)],
No sub-diretório templates dentro do diretório myapp crie um arquivo .html para servir como layout da página do aplicativo.
Para plotar a temperatura do sensor DTH11 deve ser criado no diretório static um arquivo .js que, deverá realizar requisições Ajax para a localhost/api do Django atualizando os dados do sensor. O Gauge para visualizar a temperatura utiliza a biblioteca javascript zingchart.
Digite o comando ./manage.py runserver no terminal do VSCode para iniciar o servidor e visualizar a aplicação funcionando.
O projeto completo pode ser baixado no GitHub