Files
Jose e322b295f2 modified: Makefile
new file:   include/OSAL_Memory.c
	new file:   include/OSAL_Memory.h
	new file:   include/OSAL_Timers.c
	new file:   include/OSAL_Timers.h
	new file:   include/comdef.h
	new file:   include/saddr.c
	new file:   include/saddr.h
	modified:   main.c
2025-02-23 20:53:04 +01:00

68 lines
1.8 KiB
C

#include "hal_types.h"
#include "hal_defs.h"
// #include "hal_gpio.h"
#include "hal_timer.h"
#include "ZComDef.h"
#include "OSAL.h"
// #include "ZStack.h"
#include "i2c.h"
// Include necessary libraries for the sensors (BME280, Wind Vane, etc.)
#include "bme280.h"
#include "wind_vane.h"
#include "rain_gauge.h"
#include "anemometer.h"
#include "zigbee_comm.h"
#include "config.h"
// Global variables to store sensor data
uint8 zcl_temp_humidity_data[6]; // For temperature, humidity, pressure
uint8 zcl_wind_data[2]; // For wind speed, wind direction
// Initialize all sensors
void init_sensors() {
BME280_init();
WindVane_init();
RainGauge_init();
Anemometer_init();
}
// Read sensor data and store it
void read_sensor_data() {
int32 temperature, humidity, pressure;
BME280_readData(&temperature, &humidity, &pressure);
// Store BME280 data
zcl_temp_humidity_data[0] = (uint8)(temperature >> 8);
zcl_temp_humidity_data[1] = (uint8)(temperature & 0xFF);
zcl_temp_humidity_data[2] = (uint8)(humidity >> 8);
zcl_temp_humidity_data[3] = (uint8)(humidity & 0xFF);
zcl_temp_humidity_data[4] = (uint8)(pressure >> 8);
zcl_temp_humidity_data[5] = (uint8)(pressure & 0xFF);
// Read and store wind data
zcl_wind_data[0] = WindVane_read(); // Wind direction
zcl_wind_data[1] = Anemometer_read(); // Wind speed
// Read rain gauge data
RainGauge_read();
}
// Main application loop
void main_loop() {
while (1) {
read_sensor_data(); // Read all sensor data
send_zigbee_data(); // Send collected data over Zigbee
osal_delay(60000); // Delay for 1 minute (60000ms)
}
}
int main() {
hal_init(); // Initialize the CC2530 hardware
init_sensors(); // Initialize all sensors
main_loop(); // Enter main loop
return 0;
}