真夥叶 真夥叶
关注数: 0 粉丝数: 13 发帖数: 267 关注贴吧数: 26
不知道为什么报错,求大佬帮帮我 /*屏幕接线 LCD Arduino PIN1 = GND PIN2 = 5V RS(CS) = 8; RW(SID)= 9; EN(CLK) = 3; PIN15 PSB = GND; */ #include <Wire.h> #include "LCD12864RSPI.h" #include <DHT.h> #include <stdlib.h> #include <stdio.h> #include <ctype.h> #define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] ) #define ADDR 0b0100011 #define air_quality_pin A0 #define DHTPIN 7 //定义温度传感器信号针脚 #define DHTTYPE DHT11 //定义类型,DHT11或者其它 int dustPin=A1; int ledPower=2; int delayTime=280; int delayTime2=40; float offTime=9680; DHT dht(DHTPIN, DHTTYPE);//进行初始设置 char show0[]={0xCE,0xC2,0xCA,0xAA,0xB6,0xC8};//温度 char show1[]={0xBF,0xD5,0xC6,0xF8,0xD6,0xCA,0xC1,0xBF};//空气质量 char show2[]="PM2.5"; //PM2.5 char show3[]={0xB9,0xE2,0xD5,0xD5,0xC7,0xBF,0xB6,0xC8};//光照强度 char T[3]; //保存温度值 char H[3]; //保存湿度值 char A[3]; //保存空气质量指数 char I[3]; //保存光照强度值 char P[5]; //pm2.5 int temperature; //温度 int Humidity; //湿度 int air_quality; //空气质量 int val; //光照强度 int pm; //pm2.5 boolean h = true; void pm_(){ digitalWrite(ledPower,HIGH); delayMicroseconds(delayTime); float dustVal=analogRead(dustPin); delayMicroseconds(delayTime2); digitalWrite(ledPower,LOW); delayMicroseconds(offTime); pm = (float(dustVal/1024)-0.0356)*120000*0.035; itoa(pm,P,10); } void print_(){ char i = Serial.read(); if (h){ Serial.print("B"); Serial.print(" "); Serial.print(temperature); Serial.print("K"); h = false; } else if (i == 'C'){ Serial.print("C"); Serial.print(" "); Serial.print(Humidity); Serial.print("K"); i = NULL; } else if (i == 'D'){ Serial.print("D"); Serial.print(" "); Serial.print(air_quality); Serial.print("K"); i = NULL; } else if (i == 'E'){ Serial.print("E"); Serial.print(" "); Serial.print(val); Serial.print("K"); i = NULL; } else if (i == 'F'){ Serial.print("F"); Serial.print(" "); Serial.print(pm); Serial.print("K"); h = true; i = NULL; } } void Pin_init(){ pinMode(air_quality_pin,INPUT); pinMode(ledPower,OUTPUT); pinMode(dustPin,INPUT); } void illumination(){ //检测光照强度函数 Wire.beginTransmission(ADDR); Wire.write(0b00000111); Wire.endTransmission(); Wire.beginTransmission(ADDR); Wire.write(0b00100000); Wire.endTransmission(); delay(120); Wire.requestFrom(ADDR, 2); // 2byte every time for (val = 0; Wire.available() >= 1; ) { char c = Wire.read(); val = (val << 8) + (c & 0xFF); } val = val / 1.2; itoa(val,I,10); delay(100); } void Air(){ //检测空气质量函数 air_quality = analogRead(air_quality_pin); itoa(air_quality,A,10); } void Temperature(){ //检测温湿度并存入数组 temperature = dht.readTemperature();//读温度,默认为摄氏度 Humidity = dht.readHumidity(); //读取湿度 itoa(temperature,T,10); itoa(Humidity,H,10); } void LCDA_12864(){ //屏幕显示函数 /*显示温湿度*/ LCDA.DisplayString(0,0,show0,AR_SIZE(show0));//显示温湿度 LCDA.DisplaySig(0,3,58); //显示冒号 LCDA.DisplayString(0,4,T,AR_SIZE(T));//显示温度值 LCDA.DisplaySig(0,5,67); //显示”C“ LCDA.DisplayString(0,6,H,AR_SIZE(H)); //显示湿度值 LCDA.DisplaySig(0,7,37); //显示“%” /*显示空气质量*/ LCDA.DisplayString(1,0,show1,AR_SIZE(show1));//显示空气质量 LCDA.DisplaySig(1,4,58); //显示“:” LCDA.DisplayString(1,5,A,AR_SIZE(A)); //显示空气质量指数 /*显示PM2.5*/ LCDA.DisplayString(2,0,show2,AR_SIZE(show2)); LCDA.DisplaySig(2,3,58); LCDA.DisplayString(2,4,P,AR_SIZE(P)); /*显示光照强度*/ LCDA.DisplayString(3,0,show3,AR_SIZE(show3)); LCDA.DisplaySig(3,4,58); LCDA.DisplayString(3,5,I,AR_SIZE(I)); } void setup() { Pin_init(); LCDA.Initialise(); // 屏幕初始化 dht.begin(); //DHT开始工作 Serial.begin(115200); LCDA.CLEAR(); Wire.begin(); Wire.beginTransmission(ADDR); Wire.write(0b00000001); Wire.endTransmission(); } void loop() { while (1){ Temperature(); Air(); illumination(); print_(); pm_(); LCDA_12864(); } }
WiFi模块上传成功后,手机blinker点灯连不到,求大佬帮忙看看 #define BLINKER_WIFI #include <Blinker.h> char auth[] = "34308a1a533c"; char ssid[] = "123"; char pswd[] = "1234567899"; int temp_value; //温度 int humi_value; //湿度 int Light_value; //光照强度 int air_value; //空气质量 int pm_value; //pm2.5指数 int trans; char chr; char cmd; char arg1 = 0; char A[10]; int i = 0; BlinkerNumber TEMP("temp"); //温度数据 BlinkerNumber HUMI("humi"); //湿度数据 BlinkerNumber AIR("air"); //空气质量数据 BlinkerNumber LIGHT("light"); //光照强度数据 BlinkerNumber PM("pm2.5"); //pm2.5 void reset(){ cmd = NULL; arg1 = 0; memset(A,0,sizeof(A)); i = 0; trans = 0; } void ck(){ trans = atoi(A); switch (cmd){ case 'B': // 温度 temp_value = trans; TEMP.print(temp_value); reset(); Serial.print("C"); break; case 'C': //湿度 humi_value = trans; HUMI.print(humi_value); reset(); Serial.print("D"); break; case 'D': //空气质量 air_value = trans; AIR.print(air_value); reset(); Serial.print("E"); break; case 'E': //光照强度 Light_value = trans; LIGHT.print(Light_value); reset(); Serial.print("F"); break; case 'F': //pm2.5 pm_value = trans; PM.print(pm_value); reset(); Serial.print("B"); break; } } /*void heartbeat(){ TEMP.print(temp_value); HUMI.print(humi_value); AIR.print(air_value); LIGHT.print(Light_value); }*/ void setup() { // 初始化串口,并开启调试信息 Serial.begin(115200); BLINKER_DEBUG.stream(Serial); // 初始化blinker Blinker.begin(auth, ssid, pswd); //Blinker.attachHeartbeat(heartbeat); } void loop() { Blinker.run(); while (Serial.available()>0){ chr = Serial.read(); if (chr == 32){ arg1 = 1; } if (chr == 'K'){ ck(); } if (arg1 == 0){ cmd = chr; } else if (arg1 == 1){ A[i] = chr; i++; } } }
1 下一页