首页 技术 正文
技术 2022年11月9日
0 收藏 869 点赞 4,064 浏览 9121 个字

报一个错,找不到min函数

#define min(X,Y) ((X) < (Y) ? (X) : (Y))

手动添加

项目(1-2)ES32获取mpu9250传入数据库

 

项目(1-2)ES32获取mpu9250传入数据库

之后不报错了

 

、最原始的采集

/************************************************************
MPU9250_Basic
Basic example sketch for MPU-9250 DMP Arduino Library
Jim Lindblom @ SparkFun Electronics
original creation date: November 23, 2016
https://github.com/sparkfun/SparkFun_MPU9250_DMP_Arduino_LibraryThis example sketch demonstrates how to initialize the
MPU-9250, and stream its sensor outputs to a serial monitor.Development environment specifics:
Arduino IDE 1.6.12
SparkFun 9DoF Razor IMU M0Supported Platforms:
- ATSAMD21 (Arduino Zero, SparkFun SAMD21 Breakouts)
*************************************************************/
#include <SparkFunMPU9250-DMP.h>#define SerialPort SerialMPU9250_DMP imu;void setup()
{
SerialPort.begin(115200); // Call imu.begin() to verify communication with and
// initialize the MPU-9250 to it's default values.
// Most functions return an error code - INV_SUCCESS (0)
// indicates the IMU was present and successfully set up
if (imu.begin() != INV_SUCCESS)
{
while (1)
{
SerialPort.println("Unable to communicate with MPU-9250");
SerialPort.println("Check connections, and try again.");
SerialPort.println();
delay(5000);
}
} // Use setSensors to turn on or off MPU-9250 sensors.
// Any of the following defines can be combined:
// INV_XYZ_GYRO, INV_XYZ_ACCEL, INV_XYZ_COMPASS,
// INV_X_GYRO, INV_Y_GYRO, or INV_Z_GYRO
// Enable all sensors:
imu.setSensors(INV_XYZ_GYRO | INV_XYZ_ACCEL | INV_XYZ_COMPASS); // Use setGyroFSR() and setAccelFSR() to configure the
// gyroscope and accelerometer full scale ranges.
// Gyro options are +/- 250, 500, 1000, or 2000 dps
imu.setGyroFSR(2000); // Set gyro to 2000 dps
// Accel options are +/- 2, 4, 8, or 16 g
imu.setAccelFSR(2); // Set accel to +/-2g
// Note: the MPU-9250's magnetometer FSR is set at
// +/- 4912 uT (micro-tesla's) // setLPF() can be used to set the digital low-pass filter
// of the accelerometer and gyroscope.
// Can be any of the following: 188, 98, 42, 20, 10, 5
// (values are in Hz).
imu.setLPF(5); // Set LPF corner frequency to 5Hz // The sample rate of the accel/gyro can be set using
// setSampleRate. Acceptable values range from 4Hz to 1kHz
imu.setSampleRate(10); // Set sample rate to 10Hz // Likewise, the compass (magnetometer) sample rate can be
// set using the setCompassSampleRate() function.
// This value can range between: 1-100Hz
imu.setCompassSampleRate(10); // Set mag rate to 10Hz
}void loop()
{
// dataReady() checks to see if new accel/gyro data
// is available. It will return a boolean true or false
// (New magnetometer data cannot be checked, as the library
// runs that sensor in single-conversion mode.)
if ( imu.dataReady() )
{
// Call update() to update the imu objects sensor data.
// You can specify which sensors to update by combining
// UPDATE_ACCEL, UPDATE_GYRO, UPDATE_COMPASS, and/or
// UPDATE_TEMPERATURE.
// (The update function defaults to accel, gyro, compass,
// so you don't have to specify these values.)
imu.update(UPDATE_ACCEL | UPDATE_GYRO | UPDATE_COMPASS | UPDATE_TEMP);
printIMUData();
}
}void printIMUData(void)
{
// After calling update() the ax, ay, az, gx, gy, gz, mx,
// my, mz, time, and/or temerature class variables are all
// updated. Access them by placing the object. in front: // Use the calcAccel, calcGyro, and calcMag functions to
// convert the raw sensor readings (signed 16-bit values)
// to their respective units.
float accelX = imu.calcAccel(imu.ax);
float accelY = imu.calcAccel(imu.ay);
float accelZ = imu.calcAccel(imu.az);
float gyroX = imu.calcGyro(imu.gx);
float gyroY = imu.calcGyro(imu.gy);
float gyroZ = imu.calcGyro(imu.gz);
float magX = imu.calcMag(imu.mx);
float magY = imu.calcMag(imu.my);
float magZ = imu.calcMag(imu.mz);
// long imu_temperature=imu.temperature; SerialPort.println();
SerialPort.print("Time: " + String(imu.time) + " ms");
SerialPort.print("Accel: " + String(accelX) + ", " +
String(accelY) + ", " + String(accelZ) + " g");
SerialPort.print(" ");
SerialPort.print("Gyro: " + String(gyroX) + ", " +
String(gyroY) + ", " + String(gyroZ) + " dps");
SerialPort.print(" ");
SerialPort.print("Mag: " + String(magX) + ", " +
String(magY) + ", " + String(magZ) + " uT");
SerialPort.print(" ");
// SerialPort.print("temperature: " +imu_temperature);
}

  

增加数据库交互,增加wifi连接

修改自己的数据库地址

#include <Arduino.h>#include <WiFi.h>
#include <WiFiMulti.h>#include <HTTPClient.h>#include <SparkFunMPU9250-DMP.h>#define USE_SERIAL Serial
#define SerialPort SerialWiFiMulti wifiMulti;MPU9250_DMP imu;const char* ssid = "love";
const char* password = "love123456";// 1 WIFI连接初始化
void wifi_int(){
USE_SERIAL.println();
USE_SERIAL.println();
USE_SERIAL.println(); WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
} Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP()); // wifiMulti.addAP("love", "love123456");
}// 2 传感器初始化
void IMU_int(){
// Call imu.begin() to verify communication with and
// initialize the MPU-9250 to it's default values.
// Most functions return an error code - INV_SUCCESS (0)
// indicates the IMU was present and successfully set up
if (imu.begin() != INV_SUCCESS)
{
while (1)
{
SerialPort.println("Unable to communicate with MPU-9250");
SerialPort.println("Check connections, and try again.");
SerialPort.println();
delay(5000);
}
} // Use setSensors to turn on or off MPU-9250 sensors.
// Any of the following defines can be combined:
// INV_XYZ_GYRO, INV_XYZ_ACCEL, INV_XYZ_COMPASS,
// INV_X_GYRO, INV_Y_GYRO, or INV_Z_GYRO
// Enable all sensors:
imu.setSensors(INV_XYZ_GYRO | INV_XYZ_ACCEL | INV_XYZ_COMPASS); // Use setGyroFSR() and setAccelFSR() to configure the
// gyroscope and accelerometer full scale ranges.
// Gyro options are +/- 250, 500, 1000, or 2000 dps
imu.setGyroFSR(2000); // Set gyro to 2000 dps
// Accel options are +/- 2, 4, 8, or 16 g
imu.setAccelFSR(2); // Set accel to +/-2g
// Note: the MPU-9250's magnetometer FSR is set at
// +/- 4912 uT (micro-tesla's) // setLPF() can be used to set the digital low-pass filter
// of the accelerometer and gyroscope.
// Can be any of the following: 188, 98, 42, 20, 10, 5
// (values are in Hz).
imu.setLPF(5); // Set LPF corner frequency to 5Hz // The sample rate of the accel/gyro can be set using
// setSampleRate. Acceptable values range from 4Hz to 1kHz
imu.setSampleRate(10); // Set sample rate to 10Hz // Likewise, the compass (magnetometer) sample rate can be
// set using the setCompassSampleRate() function.
// This value can range between: 1-100Hz
imu.setCompassSampleRate(10); // Set mag rate to 10Hz }//3 发送数据给服务器 数据库
void send_imu_http(float accelX,float accelY , float accelZ, float gyroX , float gyroY, float gyroZ,float magX,float magY,float magZ,float imu_temperature){
HTTPClient http;
USE_SERIAL.print("[HTTP] begin...\n");
// String http_msg="http://45.76.105.89/IMU/msql_inset.php?ax=1.0&ay=2.0&az=3.0&gx=4.0&gy=5.0&gz=6.0&mx=7.0&my=8.0&mz=9.0&temperature=10.0"; // -1 修改自己的服务器
String http_msg=String("")+"http://45.76.105.89/IMU/msql_inset.php?"
+"ax="+accelX+"&ay="+accelY+"&az="+accelZ
+"&gx="+gyroX+"&gy="+gyroY+"&gz="+ gyroZ
+"&mx="+magX+"&my="+magY+"&mz="+magZ
+"&temperature="+imu_temperature; http.begin(http_msg); //HTTP
USE_SERIAL.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if(httpCode > 0) {
// HTTP header has been send and Server response header has been handled
USE_SERIAL.printf("[HTTP] GET... code: %d\n", httpCode); // file found at server
if(httpCode == HTTP_CODE_OK) {
String payload = http.getString();
USE_SERIAL.println(payload);
}
} else {
USE_SERIAL.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end(); }// 4 主函数 初始化
void setup() { USE_SERIAL.begin(115200);//串口初始化 wifi_int();// wifi连接初始化 IMU_int();// 传感器初始化 mpu9250}// 5 主函数 无限循环
void loop() { delay(9000);// 延迟9秒 程序运行约1秒 加起来10秒循环一次// 读取传感器数据
if ( imu.dataReady() )
{
imu.update(UPDATE_ACCEL | UPDATE_GYRO | UPDATE_COMPASS | UPDATE_TEMP);// // 原始数据转换
float accelX = imu.calcAccel(imu.ax); //加速度
float accelY = imu.calcAccel(imu.ay);
float accelZ = imu.calcAccel(imu.az);
float gyroX = imu.calcGyro(imu.gx); // 陀螺仪
float gyroY = imu.calcGyro(imu.gy);
float gyroZ = imu.calcGyro(imu.gz);
float magX = imu.calcMag(imu.mx);//磁力计
float magY = imu.calcMag(imu.my);
float magZ = imu.calcMag(imu.mz);
//串口打印传感器数据
SerialPort.println();
SerialPort.print("Time: " + String(imu.time) + " ms");
SerialPort.print("Accel: " + String(accelX) + ", " +
String(accelY) + ", " + String(accelZ) + " g");
SerialPort.print(" ");
SerialPort.print("Gyro: " + String(gyroX) + ", " +
String(gyroY) + ", " + String(gyroZ) + " dps");
SerialPort.print(" ");
SerialPort.print("Mag: " + String(magX) + ", " +
String(magY) + ", " + String(magZ) + " uT");
SerialPort.print(" ");
// SerialPort.print("temperature: " +imu_temperature);//发送给服务器数据库
send_imu_http(accelX,accelY,accelZ,gyroX,gyroY,gyroZ,magX,magY,magZ,23.5);
}}

  

数据库php代码

<?php//   http://45.76.105.88/IMU/msql_inset.php?ax=1.0&ay=2.0&az=3.0&gx=4.0&gy=5.0&gz=6.0&mx=7.0&my=8.0&mz=9.0&temperature=10.0
echo "设备请求插入新数据:<br>";
// 1获取请求参数
echo "服务器时间:".date('Y-m-d H:i:s')."<br>";// 当前时间echo "加速度 ";
echo "ax: ";echo $_GET["ax"]." ";//
echo "ay: ";echo $_GET["ay"]." ";//
echo "az: ";echo $_GET["az"]." ";// echo "陀螺仪 ";
echo "gx: ";echo $_GET["gx"]." ";//
echo "gy: ";echo $_GET["gy"]." ";//
echo "gz: ";echo $_GET["gz"]." ";// echo "磁力计 ";
echo "mx: ";echo $_GET["mx"]." ";//
echo "my: ";echo $_GET["my"]." ";//
echo "mz: ";echo $_GET["mz"]." ";// echo "温度 ";
echo $_GET["temperature"];echo "<br>";// 2交互数据库// 2-1连接
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "IMU";// 数据库
$tablename = "IMU";// 数据库
//创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
//检测是否连接成功
if ($conn->connect_error) {
die("数据库连接失败: " . $conn->connect_error."<br>");
}
echo "数据库连接成功<br> ";// 2-2插入$sql="INSERT INTO ".$tablename." (ax,ay,az,gx,gy,gz,mx,my,mz,temperature) VALUES (".$_GET["ax"].",".$_GET["ay"].",".$_GET["az"].",".$_GET["gx"].",".$_GET["gy"].",".$_GET["gz"].",".$_GET["mx"].",".$_GET["my"].",".$_GET["mz"].",".$_GET["temperature"].");";if ($conn->query($sql) === TRUE) {
echo "新记录插入成功" . "<br>";
} else {
echo "数据库插入失败: " . $sql . "<br>" . $conn->error;
}// 2-4关闭结束$conn->close();
//echo "数据库关闭<br>";?>

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,910
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,498
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,135
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,300