51 lines
1.5 KiB
Org Mode
51 lines
1.5 KiB
Org Mode
* Muraqib
|
|
|
|
CO2 sensor that collects and sends its data via MQTT to a server. The board of the sensor is the Wemos D1 mini and the sensor is a SCD41.
|
|
|
|
** Pinout of the board
|
|
|
|
#+ATTR_HTML: :width 40%
|
|
[[./pinout.png]]
|
|
|
|
** Dependencies
|
|
- [[https://github.com/Sensirion/arduino-i2c-scd4x][Sensirion I²C SCD4X Arduino Library]]
|
|
- [[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.
|
|
|
|
*** Generate compilation database
|
|
#+begin_src sql
|
|
pio run -t compiledb
|
|
#+end_src
|
|
*** Upload the configuration file to the board
|
|
#+begin_src shell
|
|
pio run -t uploadfs
|
|
#+end_src
|
|
*** Compile the project
|
|
#+begin_src shell
|
|
pio run -t compile
|
|
#+end_src
|
|
*** Upload firmware
|
|
#+begin_src shell
|
|
pio run -t upload
|
|
#+end_src
|