muraqib/README.org
2025-04-15 01:51:07 +02:00

59 lines
1.9 KiB
Org Mode

* Muraqib
Temperature and humidity sensor that sends its data via MQTT. The project is implemented using a Wemos D1 mini board with the following components:
- DHT22 temperature and humidity sensor
- Battery shield
- 3.7V 1000mAh Lithium battery
The sensor captures the data every 5 minutes and sends it to a MQTT broker and then enters deep sleep, it is important to save power as the device runs off a battery. This sensor is part of a project to grow mushrooms in a controlled environment.
** Pinout of the board
#+ATTR_HTML: :width 40%
[[./pinout.png]]
** Dependencies
- [[https://github.com/adafruit/DHT-sensor-library][Adafruit DHT sensor library]]
- [[https://github.com/adafruit/Adafruit_Sensor][Adafruit Unified Sensor Driver]]
- [[https://github.com/knolleary/pubsubclient][PubSubClient]]
- [[https://github.com/bblanchon/ArduinoJson][ArduinoJSON]]
** Configuration
In the data directory, there is a JSON file that allows the configuration of multiple values:
- ssid: WiFi network name
- psk: WiFi password
- mqtt_host: IP address of the MQTT broker
- mqtt_user: username that has write access on the MQTT broker
- mqtt_password: password for the user that has write access on the MQTT broker
- mqtt_port: port used by the MQTT broker
- mqtt_topic: channel name
- device_id: unique identifier of the sensor
- sleep_time: time interval between each data transmission
- connection_attempts: maximum connection attemps to the network
The file needs to be renamed to config.json
** Deployment
The software uses the Arduino framework and the development environment of [[https://platformio.org/][PlatformIO]], which offers better tooling than the official Arduino IDE.
1. Upload the configuration file to the board:
#+begin_src shell
pio run -t uploadfs
#+end_src
2. Compile the project
#+begin_src shell
pio run -t compile
#+end_src
3. Upload firmware
#+begin_src shell
pio run -t upload
#+end_src