Commit 59190794 authored by 957dd's avatar 957dd

Merge branch 'feature/add_ads1115' into 'master'

feat:加入了霍尔传感器的使用和读值与上报 See merge request !36
parents 14829c54 170e1f10
cmake_minimum_required(VERSION 3.10) cmake_minimum_required(VERSION 3.10)
project(DeviceControlSystem project(DeviceControlSystem
VERSION 1.1.2 VERSION 1.1.3
LANGUAGES C LANGUAGES C
) )
......
...@@ -760,6 +760,30 @@ system/sensor/INA226.c.s: ...@@ -760,6 +760,30 @@ system/sensor/INA226.c.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/system/sensor/INA226.c.s $(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/system/sensor/INA226.c.s
.PHONY : system/sensor/INA226.c.s .PHONY : system/sensor/INA226.c.s
system/sensor/ads1115.o: system/sensor/ads1115.c.o
.PHONY : system/sensor/ads1115.o
# target to build an object file
system/sensor/ads1115.c.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/system/sensor/ads1115.c.o
.PHONY : system/sensor/ads1115.c.o
system/sensor/ads1115.i: system/sensor/ads1115.c.i
.PHONY : system/sensor/ads1115.i
# target to preprocess a source file
system/sensor/ads1115.c.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/system/sensor/ads1115.c.i
.PHONY : system/sensor/ads1115.c.i
system/sensor/ads1115.s: system/sensor/ads1115.c.s
.PHONY : system/sensor/ads1115.s
# target to generate assembly for a file
system/sensor/ads1115.c.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/main.dir/build.make CMakeFiles/main.dir/system/sensor/ads1115.c.s
.PHONY : system/sensor/ads1115.c.s
system/sensor/heat.o: system/sensor/heat.c.o system/sensor/heat.o: system/sensor/heat.c.o
.PHONY : system/sensor/heat.o .PHONY : system/sensor/heat.o
...@@ -1446,6 +1470,9 @@ help: ...@@ -1446,6 +1470,9 @@ help:
@echo "... system/sensor/INA226.o" @echo "... system/sensor/INA226.o"
@echo "... system/sensor/INA226.i" @echo "... system/sensor/INA226.i"
@echo "... system/sensor/INA226.s" @echo "... system/sensor/INA226.s"
@echo "... system/sensor/ads1115.o"
@echo "... system/sensor/ads1115.i"
@echo "... system/sensor/ads1115.s"
@echo "... system/sensor/heat.o" @echo "... system/sensor/heat.o"
@echo "... system/sensor/heat.i" @echo "... system/sensor/heat.i"
@echo "... system/sensor/heat.s" @echo "... system/sensor/heat.s"
......
#define PROJECT_VERSION_MAJOR 1 #define PROJECT_VERSION_MAJOR 1
#define PROJECT_VERSION_MINOR 1 #define PROJECT_VERSION_MINOR 1
#define PROJECT_VERSION_PATCH 2 #define PROJECT_VERSION_PATCH 3
#define GIT_HASH "" #define GIT_HASH ""
#define BUILD_TIMESTAMP "2025-05-20T12:37:15" #define BUILD_TIMESTAMP "2025-05-22T11:00:34"
#define BUILD_USER "orangepi" #define BUILD_USER "orangepi"
No preview for this file type
...@@ -13,6 +13,9 @@ extern char* TOPIC2_BACK; ...@@ -13,6 +13,9 @@ extern char* TOPIC2_BACK;
extern char* TOPIC3_BACK; extern char* TOPIC3_BACK;
extern uint16_t AppExit_pin_pwm; extern uint16_t AppExit_pin_pwm;
extern int heartbeat_count;//心跳计时
//extern ThreadPool *pool; //extern ThreadPool *pool;
#define BROKER_ADDRESS "119.45.167.177" #define BROKER_ADDRESS "119.45.167.177"
#define BROKER_PORT 1883 #define BROKER_PORT 1883
......
...@@ -5,15 +5,15 @@ extern int sda_pin; // GPIO0 ...@@ -5,15 +5,15 @@ extern int sda_pin; // GPIO0
extern int scl_pin; // GPIO1 extern int scl_pin; // GPIO1
// I2C 起始信号 // I2C 起始信号
void i2c_start(int sda_pin, int scl_pin); void i2c_start(int sda, int scl);
// I2C 停止信号 // I2C 停止信号
void i2c_stop(int sda_pin, int scl_pin); void i2c_stop(int sda, int scl);
// I2C 发送一个字节 // I2C 发送一个字节
void i2c_write_byte(int sda_pin, int scl_pin, uint8_t data); void i2c_write_byte(int sda, int scl, uint8_t data);
// I2C 读取一个字节 // I2C 读取一个字节
uint8_t i2c_read_byte(int sda_pin, int scl_pin, bool ack); uint8_t i2c_read_byte(int sda, int scl, bool ack);
#endif #endif
\ No newline at end of file
...@@ -24,7 +24,7 @@ int ipaddr() {//获取ip ...@@ -24,7 +24,7 @@ int ipaddr() {//获取ip
} }
//printf("ip:%s\n",ip_address); //printf("ip:%s\n",ip_address);
my_zlog_debug("ip:%s",ip_address); // my_zlog_debug("ip:%s",ip_address);
freeifaddrs(ifap); freeifaddrs(ifap);
......
...@@ -12,9 +12,12 @@ ...@@ -12,9 +12,12 @@
#include "fileopen.h" #include "fileopen.h"
#include "device_change.h" #include "device_change.h"
#include "judg.h" #include "judg.h"
#include "ads1115.h"
struct mosquitto *mosq; struct mosquitto *mosq;
int heartbeat_count=0;
char* TOPIC = NULL; char* TOPIC = NULL;
char* TOPIC2 = NULL; char* TOPIC2 = NULL;
char* TOPIC3 = NULL; char* TOPIC3 = NULL;
...@@ -71,8 +74,7 @@ void on_connect(struct mosquitto *mosq, void *obj, int rc) {//回调函数 ...@@ -71,8 +74,7 @@ void on_connect(struct mosquitto *mosq, void *obj, int rc) {//回调函数
} }
} }
void mqtt_wirte(){//心跳格式,每5s一次心跳 void heartbeat_send() {//心跳发送格式
float voltage = INA226_readBusVoltage(sda_pin, scl_pin); float voltage = INA226_readBusVoltage(sda_pin, scl_pin);
float current = INA226_readCurrent(sda_pin, scl_pin); float current = INA226_readCurrent(sda_pin, scl_pin);
char voltage_str[20]; // 足够存储转换后的字符串的缓冲区 char voltage_str[20]; // 足够存储转换后的字符串的缓冲区
...@@ -86,7 +88,7 @@ void mqtt_wirte(){//心跳格式,每5s一次心跳 ...@@ -86,7 +88,7 @@ void mqtt_wirte(){//心跳格式,每5s一次心跳
char *version_num = program_version(); char *version_num = program_version();
if(heat_tem() !=0 ) {//获取CPU温度 if(heat_tem() !=0 ) {//获取CPU温度
my_zlog_debug("获取cpu温度失败");
} }
message=1; message=1;
...@@ -117,8 +119,34 @@ void mqtt_wirte(){//心跳格式,每5s一次心跳 ...@@ -117,8 +119,34 @@ void mqtt_wirte(){//心跳格式,每5s一次心跳
mosquitto_publish(mosq, NULL, TOPIC3, strlen(payload), payload, 0, false); mosquitto_publish(mosq, NULL, TOPIC3, strlen(payload), payload, 0, false);
cJSON_Delete(root); // 释放 cJSON 对象 cJSON_Delete(root); // 释放 cJSON 对象
}
void angle_mqtt_send() {
float angle_shot=ads1115_read_channel(2);
if(angle_shot>0){
angle_shot=ads1115_read_channel(2)*365/5;
my_zlog_debug("%.2f",angle_shot);
topic_middle_value();
cJSON *root = cJSON_CreateObject();
char TOPIC_send_angle[26];
sprintf(TOPIC_send_angle,"dev_rtinfo/%s",TOPIC3);
cJSON_AddStringToObject(root, "type","tank_angle");
cJSON_AddNumberToObject(root, "angle:",angle_shot);
char *payload = cJSON_PrintUnformatted(root);
my_zlog_debug("%s",payload);
mosquitto_publish(mosq, NULL, TOPIC_send_angle, strlen(payload), payload, 0, false);
cJSON_Delete(root); // 释放 cJSON 对象
}
}
void mqtt_wirte(){//心跳格式,每5s一次心跳
if( AppExit_pin_pwm == 202) angle_mqtt_send();
if( heartbeat_count >= 100) heartbeat_send();
return ;
} }
void message_3(cJSON *body,cJSON *pwm_ctrl){//message_type为3,控制pwm void message_3(cJSON *body,cJSON *pwm_ctrl){//message_type为3,控制pwm
......
...@@ -10,62 +10,62 @@ void i2c_delay() { ...@@ -10,62 +10,62 @@ void i2c_delay() {
} }
// I2C 起始信号 // I2C 起始信号
void i2c_start(int sda_pin, int scl_pin) { void i2c_start(int sda, int scl) {
digitalWrite(sda_pin, HIGH); digitalWrite(sda, HIGH);
digitalWrite(scl_pin, HIGH); digitalWrite(scl, HIGH);
i2c_delay(); i2c_delay();
digitalWrite(sda_pin, LOW); digitalWrite(sda, LOW);
i2c_delay(); i2c_delay();
digitalWrite(scl_pin, LOW); digitalWrite(scl, LOW);
i2c_delay(); i2c_delay();
} }
// I2C 停止信号 // I2C 停止信号
void i2c_stop(int sda_pin, int scl_pin) { void i2c_stop(int sda, int scl) {
digitalWrite(sda_pin, LOW); digitalWrite(sda, LOW);
digitalWrite(scl_pin, LOW); digitalWrite(scl, LOW);
i2c_delay(); i2c_delay();
digitalWrite(scl_pin, HIGH); digitalWrite(scl, HIGH);
i2c_delay(); i2c_delay();
digitalWrite(sda_pin, HIGH); digitalWrite(sda, HIGH);
i2c_delay(); i2c_delay();
} }
// I2C 发送一个字节 // I2C 发送一个字节
void i2c_write_byte(int sda_pin, int scl_pin, uint8_t data) { void i2c_write_byte(int sda, int scl, uint8_t data) {
for (int i = 7; i >= 0; i--) { for (int i = 7; i >= 0; i--) {
digitalWrite(sda_pin, (data >> i) & 0x01); digitalWrite(sda, (data >> i) & 0x01);
i2c_delay(); i2c_delay();
digitalWrite(scl_pin, HIGH); digitalWrite(scl, HIGH);
i2c_delay(); i2c_delay();
digitalWrite(scl_pin, LOW); digitalWrite(scl, LOW);
i2c_delay(); i2c_delay();
} }
// 接收 ACK // 接收 ACK
pinMode(sda_pin, INPUT); pinMode(sda, INPUT);
digitalWrite(scl_pin, HIGH); digitalWrite(scl, HIGH);
i2c_delay(); i2c_delay();
digitalWrite(scl_pin, LOW); digitalWrite(scl, LOW);
pinMode(sda_pin, OUTPUT); pinMode(sda, OUTPUT);
} }
// I2C 读取一个字节 // I2C 读取一个字节
uint8_t i2c_read_byte(int sda_pin, int scl_pin, bool ack) { uint8_t i2c_read_byte(int sda, int scl, bool ack) {
uint8_t data = 0; uint8_t data = 0;
pinMode(sda_pin, INPUT); pinMode(sda, INPUT);
for (int i = 7; i >= 0; i--) { for (int i = 7; i >= 0; i--) {
digitalWrite(scl_pin, HIGH); digitalWrite(scl, HIGH);
i2c_delay(); i2c_delay();
data |= (digitalRead(sda_pin) << i); data |= (digitalRead(sda) << i);
digitalWrite(scl_pin, LOW); digitalWrite(scl, LOW);
i2c_delay(); i2c_delay();
} }
// 发送 ACK/NACK // 发送 ACK/NACK
pinMode(sda_pin, OUTPUT); pinMode(sda, OUTPUT);
digitalWrite(sda_pin, ack ? LOW : HIGH); digitalWrite(sda, ack ? LOW : HIGH);
digitalWrite(scl_pin, HIGH); digitalWrite(scl, HIGH);
i2c_delay(); i2c_delay();
digitalWrite(scl_pin, LOW); digitalWrite(scl, LOW);
pinMode(sda_pin, INPUT); pinMode(sda, INPUT);
return data; return data;
} }
\ No newline at end of file
...@@ -67,8 +67,12 @@ void *Mqttbeat(void *arg) { ...@@ -67,8 +67,12 @@ void *Mqttbeat(void *arg) {
Delay_Ms(15,0); Delay_Ms(15,0);
while(1) { while(1) {
ipaddr();//获取ip ipaddr();//获取ip
Delay_Ms(3,0); if( AppExit_pin_pwm == 202) Delay_Ms(0,90);
mqtt_wirte();//心跳,3s一个 if( AppExit_pin_pwm != 202) Delay_Ms(0,100);
heartbeat_count++;
mqtt_wirte();//心跳,3s一个
if(heartbeat_count>=100) heartbeat_count=0;
} }
return NULL; return NULL;
} }
......
...@@ -4,66 +4,66 @@ ...@@ -4,66 +4,66 @@
float currentLSB ; float currentLSB ;
// 初始化 INA226 // 初始化 INA226
bool INA226_begin(int sda_pin, int scl_pin) { bool INA226_begin(int sda, int scl) {
pinMode(sda_pin, OUTPUT); pinMode(sda, OUTPUT);
pinMode(scl_pin, OUTPUT); pinMode(scl, OUTPUT);
digitalWrite(sda_pin, HIGH); digitalWrite(sda, HIGH);
digitalWrite(scl_pin, HIGH); digitalWrite(scl, HIGH);
return true; return true;
} }
// 配置 INA226 // 配置 INA226
bool INA226_configure(int sda_pin, int scl_pin) { bool INA226_configure(int sda, int scl) {
uint16_t config = 0x4127; // 默认配置:16 次平均,1.1ms 转换时间,连续模式 uint16_t config = 0x4127; // 默认配置:16 次平均,1.1ms 转换时间,连续模式
i2c_start(sda_pin, scl_pin); i2c_start(sda, scl);
i2c_write_byte(sda_pin, scl_pin, INA226_ADDRESS << 1); i2c_write_byte(sda, scl, INA226_ADDRESS << 1);
i2c_write_byte(sda_pin, scl_pin, INA226_REG_CONFIG); i2c_write_byte(sda, scl, INA226_REG_CONFIG);
i2c_write_byte(sda_pin, scl_pin, config >> 8); i2c_write_byte(sda, scl, config >> 8);
i2c_write_byte(sda_pin, scl_pin, config & 0xFF); i2c_write_byte(sda, scl, config & 0xFF);
i2c_stop(sda_pin, scl_pin); i2c_stop(sda, scl);
return true; return true;
} }
// 校准 INA226 // 校准 INA226
bool INA226_calibrate(int sda_pin, int scl_pin, float rShuntValue, float iMaxExpected) { bool INA226_calibrate(int sda, int scl, float rShuntValue, float iMaxExpected) {
currentLSB = iMaxExpected/32767.0 ; // 计算电流 LSB,/INA226_REG_CALIBRATION currentLSB = iMaxExpected/32767.0 ; // 计算电流 LSB,/INA226_REG_CALIBRATION
uint16_t calibrationValue = (uint16_t)(0.00512 / (currentLSB * rShuntValue)); uint16_t calibrationValue = (uint16_t)(0.00512 / (currentLSB * rShuntValue));
i2c_start(sda_pin, scl_pin); i2c_start(sda, scl);
i2c_write_byte(sda_pin, scl_pin, INA226_ADDRESS << 1); i2c_write_byte(sda, scl, INA226_ADDRESS << 1);
i2c_write_byte(sda_pin, scl_pin, INA226_REG_CALIBRATION); i2c_write_byte(sda, scl, INA226_REG_CALIBRATION);
i2c_write_byte(sda_pin, scl_pin, calibrationValue >> 8); i2c_write_byte(sda, scl, calibrationValue >> 8);
i2c_write_byte(sda_pin, scl_pin, calibrationValue & 0xFF); i2c_write_byte(sda, scl, calibrationValue & 0xFF);
i2c_stop(sda_pin, scl_pin); i2c_stop(sda, scl);
return true; return true;
} }
// 读取总线电压 // 读取总线电压
float INA226_readBusVoltage(int sda_pin, int scl_pin) { float INA226_readBusVoltage(int sda, int scl) {
i2c_start(sda_pin, scl_pin); i2c_start(sda, scl);
i2c_write_byte(sda_pin, scl_pin, INA226_ADDRESS << 1); i2c_write_byte(sda, scl, INA226_ADDRESS << 1);
i2c_write_byte(sda_pin, scl_pin, INA226_REG_BUSVOLTAGE); i2c_write_byte(sda, scl, INA226_REG_BUSVOLTAGE);
i2c_start(sda_pin, scl_pin); i2c_start(sda, scl);
i2c_write_byte(sda_pin, scl_pin, (INA226_ADDRESS << 1) | 1); i2c_write_byte(sda, scl, (INA226_ADDRESS << 1) | 1);
uint8_t high = i2c_read_byte(sda_pin, scl_pin, true); uint8_t high = i2c_read_byte(sda, scl, true);
uint8_t low = i2c_read_byte(sda_pin, scl_pin, false); uint8_t low = i2c_read_byte(sda, scl, false);
i2c_stop(sda_pin, scl_pin); i2c_stop(sda, scl);
int16_t value = (high << 8) | low; int16_t value = (high << 8) | low;
return value * 0.00125; // 1.25mV/LSB return value * 0.00125; // 1.25mV/LSB
} }
// 读取电流 // 读取电流
float INA226_readCurrent(int sda_pin, int scl_pin) { float INA226_readCurrent(int sda, int scl) {
i2c_start(sda_pin, scl_pin); i2c_start(sda, scl);
i2c_write_byte(sda_pin, scl_pin, INA226_ADDRESS << 1); i2c_write_byte(sda, scl, INA226_ADDRESS << 1);
i2c_write_byte(sda_pin, scl_pin, INA226_REG_CURRENT); i2c_write_byte(sda, scl, INA226_REG_CURRENT);
i2c_start(sda_pin, scl_pin); i2c_start(sda, scl);
i2c_write_byte(sda_pin, scl_pin, (INA226_ADDRESS << 1) | 1); i2c_write_byte(sda, scl, (INA226_ADDRESS << 1) | 1);
uint8_t high = i2c_read_byte(sda_pin, scl_pin, true); uint8_t high = i2c_read_byte(sda, scl, true);
uint8_t low = i2c_read_byte(sda_pin, scl_pin, false); uint8_t low = i2c_read_byte(sda, scl, false);
i2c_stop(sda_pin, scl_pin); i2c_stop(sda, scl);
int16_t value = (high << 8) | low; int16_t value = (high << 8) | low;
return value * currentLSB; // 假设电流 LSB 为 1mA return value * currentLSB; // 假设电流 LSB 为 1mA
} }
\ No newline at end of file
...@@ -11,18 +11,18 @@ ...@@ -11,18 +11,18 @@
#define INA226_REG_CALIBRATION (0x05) #define INA226_REG_CALIBRATION (0x05)
// 初始化 INA226 // 初始化 INA226
bool INA226_begin(int sda_pin, int scl_pin); bool INA226_begin(int sda, int scl);
// 配置 INA226 // 配置 INA226
bool INA226_configure(int sda_pin, int scl_pin); bool INA226_configure(int sda, int scl);
// 校准 INA226 // 校准 INA226
bool INA226_calibrate(int sda_pin, int scl_pin, float rShuntValue, float iMaxExpected); bool INA226_calibrate(int sda, int scl, float rShuntValue, float iMaxExpected);
// 读取总线电压 // 读取总线电压
float INA226_readBusVoltage(int sda_pin, int scl_pin); float INA226_readBusVoltage(int sda, int scl);
// 读取电流 // 读取电流
float INA226_readCurrent(int sda_pin, int scl_pin); float INA226_readCurrent(int sda, int scl);
#endif // INA226_H #endif // INA226_H
\ No newline at end of file
#include "ads1115.h"
#include "common.h"
int _sda_pin =0;
int _scl_pin =1;
#define ADS1115_ADDR 0x48
// I2C写寄存器
static void ads1115_write_register(uint8_t reg, uint16_t val) {
i2c_start(_sda_pin, _scl_pin);
i2c_write_byte(_sda_pin, _scl_pin, (ADS1115_ADDR << 1) | 0);
i2c_write_byte(_sda_pin, _scl_pin, reg);
i2c_write_byte(_sda_pin, _scl_pin, (val >> 8) & 0xFF);
i2c_write_byte(_sda_pin, _scl_pin, val & 0xFF);
i2c_stop(_sda_pin, _scl_pin);
}
// 读取转换寄存器
static uint16_t ads1115_read_conversion() {
uint16_t result = 0;
i2c_start(_sda_pin, _scl_pin);
i2c_write_byte(_sda_pin, _scl_pin, (ADS1115_ADDR << 1) | 0);
i2c_write_byte(_sda_pin, _scl_pin, 0x00);
i2c_start(_sda_pin, _scl_pin);
i2c_write_byte(_sda_pin, _scl_pin, (ADS1115_ADDR << 1) | 1);
uint8_t msb = i2c_read_byte(_sda_pin, _scl_pin, 1);
uint8_t lsb = i2c_read_byte(_sda_pin, _scl_pin, 0);
i2c_stop(_sda_pin, _scl_pin);
result = (msb << 8) | lsb;
return result;
}
bool ads1115_init(int _sda_pin, int _scl_pin) {
pinMode(_sda_pin, OUTPUT);
pinMode(_scl_pin, OUTPUT);
digitalWrite(_sda_pin, HIGH);
digitalWrite(_scl_pin, HIGH);
return true;
}
// 读取某个单端通道电压,channel = 0~3
float ads1115_read_channel(int channel) {
uint16_t config = 0;
if (channel == 0) config = 0xC203; // MUX=100 (AIN0-GND)
else if (channel == 1) config = 0xD203; // MUX=101 (AIN1-GND)
else if (channel == 2) config = 0xE203; // MUX=110 (AIN2-GND)
else if (channel == 3) config = 0xF203; // MUX=111 (AIN3-GND)
else return -1.0f;
ads1115_write_register(0x01, config);
delayMicroseconds(10000); // 等待转换
uint16_t raw = ads1115_read_conversion();
int16_t val = (int16_t)raw;
float voltage_divided = val * 4.096f / 32768.0f;
//float real_voltage = val * 6.144f / 32768.0f;
// 假设分压电阻 R1=2k, R2=10k
float real_voltage = voltage_divided * (10.0f + 2.0f) / 10.0f;//无分压电阻
return real_voltage;
}
#ifndef ADS1115_H
#define ADS1115_H
#include <stdint.h>
#include <stdbool.h>
// 初始化GPIO引脚(SDA、SCL),必须先调用
bool ads1115_init(int _sda_pin, int _scl_pin);
// 读取指定通道AIN0~AIN3的电压值(单位伏特)
// 输入参数 channel: 0~3
// 返回实际电压值,负数代表错误
float ads1115_read_channel(int channel);
#endif
\ No newline at end of file
...@@ -15,10 +15,10 @@ int main(int argc, char *argv[]) { ...@@ -15,10 +15,10 @@ int main(int argc, char *argv[]) {
//printf("WiringPi setup failed!\n"); //printf("WiringPi setup failed!\n");
return 3; return 3;
} }
if (!INA226_begin(sda_pin, scl_pin)) { if (!INA226_begin(sda_pin, scl_pin)&& !ads1115_init(sda_pin, scl_pin)) {
my_zlog_fatal("INA226 初始化失败!"); my_zlog_fatal("INA226 初始化失败或者ads1115初始化失败!");
//printf("INA226 初始化失败!\n"); //printf("INA226 初始化失败!\n");
return 4; return 4;
} }
if(Device_File_Init()!=0) { if(Device_File_Init()!=0) {
my_zlog_fatal("This is a fatal message"); my_zlog_fatal("This is a fatal message");
...@@ -33,17 +33,17 @@ int main(int argc, char *argv[]) { ...@@ -33,17 +33,17 @@ int main(int argc, char *argv[]) {
int adino_jude = system("pactl load-module module-alsa-source device=hw:2,0"); int adino_jude = system("pactl load-module module-alsa-source device=hw:2,0");
if (adino_jude == 0) { if (adino_jude == 0) {
my_zlog_debug("命令执行成功!\n"); my_zlog_debug("命令执行成功!");
} else { } else {
my_zlog_warn("命令执行失败,返回状态码: %d\n", adino_jude ); my_zlog_warn("命令执行失败,返回状态码: %d", adino_jude );
} }
my_zlog_info("程序初始化成功"); my_zlog_info("程序初始化成功");
//printf("程序初始化成功\n"); //printf("程序初始化成功\n");
system("pkill chromium"); system("pkill chromium");
// 配置 INA226 // 配置 INA226
if(!INA226_configure(sda_pin, scl_pin)) { if(!INA226_configure(sda_pin, scl_pin)) {
my_zlog_warn("INA226初始化失败"); my_zlog_warn("INA226初始化失败");
} }
......
...@@ -16,5 +16,6 @@ ...@@ -16,5 +16,6 @@
#include "request.h" #include "request.h"
#include "fileopen.h" #include "fileopen.h"
#include "log.h" #include "log.h"
#include "ads1115.h"
#endif #endif
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment