Figured out how to turn on PSRAM
Now it looks like you can just allocate from a regular "malloc" Code ran successfully (afaict) when writing to 7MB - didn't seem to when doing 8MB. Not 100% sure why, but I don't think it'll matter tbh
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
# ESP Air Monitor
|
# Yet Another eSP Air Monitor - YASPAM
|
||||||
|
|
||||||
Skeletal idea for an esp based air monitor.
|
Skeletal idea for an esp based air monitor.
|
||||||
|
|
||||||
@@ -6,7 +6,7 @@ Skeletal idea for an esp based air monitor.
|
|||||||
|
|
||||||
I have used the following:
|
I have used the following:
|
||||||
|
|
||||||
* ESP32-S3 (although as far as I know, I'm not using any special features... and should work on any esp)
|
* ESP32-S3 (although as far as I know, I'm not using any special features... and should work on any esp).
|
||||||
* DHT22
|
* DHT22
|
||||||
* PMS5003
|
* PMS5003
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
#include "dht22.h"
|
#include "dht22.h"
|
||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
|
#include "esp_log.h"
|
||||||
|
|
||||||
#define DATA_GPIO CONFIG_DHT22_DATA_GPIO
|
#define DATA_GPIO CONFIG_DHT22_DATA_GPIO
|
||||||
|
|
||||||
@@ -15,7 +16,6 @@ deci_degrees_c _dht22_temperature = INT16_MIN;
|
|||||||
dht22_error dht22_read() {
|
dht22_error dht22_read() {
|
||||||
uint8_t data[5] = {0};
|
uint8_t data[5] = {0};
|
||||||
|
|
||||||
|
|
||||||
// TODO: Actually figure out how to read the data from the chip.
|
// TODO: Actually figure out how to read the data from the chip.
|
||||||
|
|
||||||
// TODO test that data[x] << 8 will be promoted to 16bits otherwise I'm shifting them to just zeros
|
// TODO test that data[x] << 8 will be promoted to 16bits otherwise I'm shifting them to just zeros
|
||||||
@@ -28,6 +28,7 @@ dht22_error dht22_read() {
|
|||||||
if (checksum_val != data[4]) {
|
if (checksum_val != data[4]) {
|
||||||
_dht22_relative_humidity = UINT16_MAX;
|
_dht22_relative_humidity = UINT16_MAX;
|
||||||
_dht22_temperature = INT16_MIN;
|
_dht22_temperature = INT16_MIN;
|
||||||
|
ESP_LOGE(TAG, "Error in final checksum check");
|
||||||
return DHT22_CHECKSUM_ERROR;
|
return DHT22_CHECKSUM_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
26
main/main.c
26
main/main.c
@@ -1,4 +1,4 @@
|
|||||||
/*
|
/**
|
||||||
* Author: Arthur Roberts (c) 2023
|
* Author: Arthur Roberts (c) 2023
|
||||||
*
|
*
|
||||||
* License: GPLv3+
|
* License: GPLv3+
|
||||||
@@ -8,11 +8,31 @@
|
|||||||
#include "freertos/FreeRTOS.h"
|
#include "freertos/FreeRTOS.h"
|
||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
#include "dht22.h"
|
#include "dht22.h"
|
||||||
|
#include "esp_log.h"
|
||||||
|
#include "esp_wifi.h"
|
||||||
|
|
||||||
|
static const char *TAG = "YASPAM";
|
||||||
|
|
||||||
|
struct air_monitor_data {
|
||||||
|
#ifdef CONFIG_DHT22_DATA_GPIO
|
||||||
|
deci_percent dht22_relative_humidity;
|
||||||
|
deci_degrees_c dht22_temperature;
|
||||||
|
#endif /* CONFIG_DHT22_DATA_GPIO */
|
||||||
|
|
||||||
|
#ifdef CONFIG_PMS5003_DATA_GPIO
|
||||||
|
// TODO
|
||||||
|
#endif /* CONFIG_PMS5003_DATA_GPIO */
|
||||||
|
int64_t time; // TODO think about how best to store this.
|
||||||
|
};
|
||||||
|
|
||||||
void app_main(void)
|
void app_main(void)
|
||||||
{
|
{
|
||||||
int ret = dht22_temperature();
|
#ifdef CONFIG_DHT22_DATA_GPIO
|
||||||
printf("Hello world! - dhtRet: %i\n", ret);
|
int ret = dht22_read();
|
||||||
|
#endif /* CONFIG_DHT22_DATA_GPIO */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (int i = 10; i >= 0; i--) {
|
for (int i = 10; i >= 0; i--) {
|
||||||
printf("Restarting in %d seconds...\n", i);
|
printf("Restarting in %d seconds...\n", i);
|
||||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||||
|
|||||||
Reference in New Issue
Block a user