# Temperature Monitoring # Overview **Author**: sh224jz **Project**: Temperature sensor (DHT11) connected to Heltec esp32 LoRa v2 and uploaded to Datacake. **Estimated time to complete**: 5-10 hours. # Objective I chose to make this project to learn more about the basics of IoT and to write code especially in python. This project only serves as a learning platform. # Material | Product | Link | Price | | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----- | | AZDelivery NodeMCU ESP32 Heltec |[Link](https://www.amazon.se/AZDelivery-NodeMCU-Heltec-OLED-skärm-inklusive/dp/B08243JHMW/ref=sr_1_2?crid=3E0EDM0R9FDF9&keywords=heltec+esp32&qid=1656842246&sprefix=heltec+esp32%2Caps%2C94&sr=8-2) | 40$ | | AZDelivery KY-015 DHT 11 |[Link](https://www.amazon.se/dp/B089W8DB5P/ref=twister_B08C8Z4325?_encoding=UTF8&psc=1) | 7$ | | AZDelivery Mini Breadboard | [Link](https://www.amazon.se/dp/B07KKJSFM1/ref=twister_B08BFDKJDC?_encoding=UTF8&th=1) | 6$ | | Elegoo Duplex Kabel | [Link](https://www.amazon.se/Elegoo-Flerfärgad-Breadboard-Bandkablar-Arduino/dp/B01EV70C78/ref=pd_bxgy_img_sccl_1/260-0418443-4154665?pd_rd_w=Bvr2I&content-id=amzn1.sym.ac31a142-07ec-4ec2-a56a-32921a0c41c2&pf_rd_p=ac31a142-07ec-4ec2-a56a-32921a0c41c2&pf_rd_r=PQYNPM0PA5K3B6B8W1F8&pd_rd_wg=2vVjl&pd_rd_r=80dc653c-2777-4b6b-9903-a42a6f8e9ea4&pd_rd_i=B01EV70C78&psc=1) | 8$ | # Computer setup **IDE**: Atom with Pymakr The code is uploaded through Atom and posted on Datacake. **Follow these links.** Firmware Update & Running Code https://hackmd.io/@lnu-iot/By5ZUqvOq Installing Atom IDE https://hackmd.io/@lnu-iot/SydH7MTcw Datacake - WiFi, using MQTT https://hackmd.io/@lnu-iot/r1aui0B59 # Putting everything together ![](https://i.imgur.com/cFGKrsg.png) # Platform My choice of platform is Datacake, its easy to setup and uses MQTT to send data from the DHT11 sensor via WiFI to the Datacake dashboard. Datacake can be used for free but offers subscription plans. ![](https://i.imgur.com/5Aj08qP.png) # Code ``` from mqtt import MQTTClient import time import ujson import machine import config from machine import Pin from dht import DHT def sub_cb(topic, msg): print(msg) # MQTT Setup client = MQTTClient(config.SERIAL_NUMBER, config.MQTT_BROKER, user=config.TOKEN, password=config.TOKEN, port=config.PORT) client.set_callback(sub_cb) client.connect() print('connected to MQTT broker') # The MQTT topic that we publish data to my_topic = config.TOPIC # The Pin that DHT11 is connected to th = DHT(Pin('P19', mode=Pin.OPEN_DRAIN), 0) while True: # Get Sensor data and send it to the broker, under topic time.sleep(2) result = th.read() temperature = result.temperature time.sleep(2) client.publish(topic=my_topic, msg=str(temperature)) client.check_msg() print("Data sent to MQTT, sleeping for 20 min") time.sleep(1194) ``` # Transmitting the data / connectivity Data is sent every 20 minutes via WiFi using MQTT as transport protocol, data is saved everytime its sent. ![](https://i.imgur.com/gJde7Ez.png) ![](https://i.imgur.com/GlOgIiP.png) # Finalizing the design ![](https://i.imgur.com/6ksx6b6.jpg)