如何利用NX4024K实现汽车警报监控系统的设计

该项目可用于监控油温和压力、水温、电压、燃油液位。通过nextion显示器或诺基亚lcd显示,以让你更直观的了解自己爱车的各项数值。
这次的项目中我们使用了一辆旧车,一辆toyotamr21990。
由于没有obd端口,并且需要测量油温和压力并报警异常值,因此我们决定使用arduinouno和诺基亚显示器从安装在汽车上的电阻传感器获取数据。
接下来是arduino输入板:op=油压;ot=油温;wt水温;v=伏特
再是用于lcd显示的程序:
#include u8glib.h 
#define backlight_pin 9 
int piezopin = 8;  //8 digital pin the piezo buzzer is attached for alarm. 
const int oiltemppin = a1;      //analog pin 
const int oilpressurepin = a2;  //oil spacer temp and pressure 
const int watertemppin = a3;    // fitted in water hose after thermostat 
const int voltpin = a4;         // from acc 
const int fuelpin = a5;         //from dash fuel gauge 

int ta = 130;     //oiltmp alarm level over 130 
float oa = 1.5;   //oilpres alarm level under 1.5 
int wa = 100;     //watertmp alarm level over 100 
float va = 12.0;  //volts alarm under 12.0v  
float fa = 5;     //fuel alarm under 10 
u8glib_pcd8544 u8g(13,11, 7, 5, 6);  // clk=13, din=11, ce=7, dc=5, rst=6 
void draw(void) { 
float oiltempres = analogread(oiltemppin);//resistance value    (432.667-resistance)/1.75 
double oiltemp = (432.667 - oiltempres) /1.80;// 50c=347ohm  60=324   70=312   80c=     95c=   110=   120= 
float watertempres = analogread(watertemppin);//resistance value   (350.124-resistance)/1.25  
double watertemp = (350.124 - watertempres) /1.25;// 40c=297ohm   50=287   60=276   70=263   80=250  90=233 fan on 
float oilpresres = analogread(oilpressurepin);// 1=   2=   2.5=170  3=195  4=227  5=258 6=280  12.1v 
float oilpressure = (98.5 - oilpresres) / -31.098; // 
if  (oilpressure ta) {u8g.drawstr(50, 8, # );tone(piezopin, 500,3000);analogwrite(backlight_pin,250);} //tone(pin,freq,duration) 
u8g.setprintpos(55, 17); 
u8g.print(oilpressure, 1);   
u8g.drawstr(80, 17, % ); 
if ((oilpressure 13.0)) {u8g.drawstr(50, 17, # );tone(piezopin, 1000,3000);analogwrite(backlight_pin,250);} 
u8g.setprintpos(55, 26); 
u8g.print(watertemp, 0);  
u8g.drawstr(80, 26, c ); 
if (watertemp > wa) {u8g.drawstr(50, 26, # );tone(piezopin, 1500,3000);analogwrite(backlight_pin,250);} 
u8g.setprintpos(55, 35); 
u8g.print(volts, 1);   
u8g.drawstr(80, 35, v ); 
if (volts < va) {u8g.drawstr(50, 35, # );tone(piezopin, 2500,3000);analogwrite(backlight_pin,250);} 
u8g.setprintpos(55, 44); 
u8g.print(fuel, 0);   
u8g.drawstr(80, 44, l ); 
if ((fuel 1)) {u8g.drawstr(50, 44, # );tone(piezopin, 3000,1000);analogwrite(backlight_pin,250);} 
//used for testing only 
//u8g.setprintpos(60, 44); 
//u8g.print(fuel, 0);   
//u8g.setprintpos(30, 44); 
//u8g.print(oilpresres, 1); 
//u8g.setprintpos(5, 44); 
// u8g.print(watertempres, 0); 

void setup(void) { 
analogwrite(backlight_pin,20);  /* set the backlight intensity */ 

void loop(void) { 
u8g.firstpage();   
do { 
draw(); 
} while( u8g.nextpage() ); 
delay(1000);  // update every 1000 = 1 sec 

由于诺基亚显示屏变亮(灰色阴影)的问题,导致显示屏连接不良。最终我决定升级到nextion显示器,结果看起来也更好。
由于uno只有一个hardwareserial端口(引脚0/1),并且它与usb-serialuart共享,因此使用nextion显示器调试项目很痛苦,所以我们转到链接中的页面并按照说明进行操作,然后我们串行连接在引脚10,11上。
我的nextionhid的硬件连接:
+5v(红色):来自arduino板的5v
tx(蓝色):引脚10(softwareserialrx)
rx(黄色):引脚11(软件串行tx)
gnd(黑色):uno的gnd。
颜色是显示器附带的颜色,它带有一个微型分线板上的微型usb连接器。
nextion显示屏图片

超远距离传输,超低功耗,安信可LoRa全系列产品如何选购?
多传感器时空标定
核心网通过引入SCEF可以满足5G多样化业务的需求
都逃不过“真香定律”!搭载144Hz竞速屏的iQOO Neo3你猜多少钱
广东联通携手华为已完成了智能城域网综合业务承载的功能验证
如何利用NX4024K实现汽车警报监控系统的设计
社交应用程序ParlerCEO:禁令后所有供应商都放弃其公司
谈谈中国激光的技术升级之路
从入门到高手,电子工程师必备的15款工具!
《2019物联网行业100强》榜单新鲜出炉,SIMBOSS荣登100强
电池指示电路图解
钠离子电池制备上面临哪些挑战
讲述Nordic nRF5 SDK的主要调试手段,以帮助大家快速定位问题
3种常用的单片机晶振电路原理和作用图解
工信部:我国将加快无线通信网络业务创新应用
直流电机的功率如何增大
中国最优秀的IC设计企业TOP100最新名单出炉!(含传感器10强企业)
关于PCB各层的含义你都知道吗
模式带宽在光纤测试中的用途
通信基站是否会对信号屏蔽器的效果造成影响