59 lines
1.9 KiB
Org Mode
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
|