arduino+屏幕+短信+土壤湿度传感器
时间:2023-11-20 17:37:01
家里种了一些雏菊,对土壤湿度要求很高,对我这样的新手来说还是有些困难的。为了掌握花盆的湿度,使用它arduino一个小的土壤湿度监测装置,可以通过小屏幕观察土壤湿度,也可以通过SIM900A,收到短信湿度短信。我贴出源码,有时间补充照片和设备连接。
#include
#include
#include
#include
#include
#include
#define TFT_CS 10
#define TFT_RST 9 ///我在这里用的arduino硬复位,软复位请9脚
#define TFT_DC 8
Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
/读取土壤湿度传感器的模拟量/
float vpp = 0.0048828125; //5/1023 转换电压系数
void setup() {
Serial.begin(9600);
tft.initR(INITR_144GREENTAB); //初始化
tft.fillScreen(ST7735_BLACK);//设置黑屏
tft.setRotation(0)//旋转屏幕
Serial.print(“AT CMGD=1\r\n”);
}
void loop() {
int counts = analogRead(A0); //A0接模拟采样口
int counts2 = analogRead(A1); //A0接模拟采样口
int counts3 = analogRead(A5); //A0接模拟采样口
int humidity= map(counts,0,1023,100,0);
int humidity2= map(counts二、0、1023、100、0);
int humidity3= map(counts三、0、1023、100、0);
tft.setTextColor(ST7735_RED);///设置字体颜色为黄色
tft.setTextSize(1)//设置字体大小
tft.setCursor(0,10);
tft.print(“NO.1 humidity: “);
tft.print(humidity);
tft.println(” % “);
tft.println(””);
tft.print(“NO.2 humidity: “);
tft.print(humidity2);
tft.println(” % “);
tft.println(””);
tft.print(“NO.3 humidity: “);
tft.print(humidity3);
tft.println(” % “);
tft.println(””);
tft.fillScreen(ST7735_BLACK);
delay(21600000);
CS();
CF();
CG();
Serial.print(humidity);
delay(9000);
Serial.println(" %RH");
Serial.print(“NO2 humidity= “); ///短信内容
delay(9000);
Serial.print(humidity2);
delay(9000);
Serial.println(” %RH”);
Serial.print(“NO3 humidity= “); ///短信内容
delay(9000);
Serial.print(humidity3);
delay(9000);
Serial.println(” %RH”);
WR();
}
void CS(){
Serial.print(“AT CSCS=“GSM”\r\n”); //设置GSM字符集
//Serial.print(““AAAA””);
delay(9000);
}
void CF(){
Serial.print(“AT CMGF=1\r\n”); ///设置为文本模式
delay(9000);
}
void CG(){
Serial.print(“AT CMGS=“18853105850”\r\n”); //设置手机号码
delay(9000);
Serial.print("NO1 humidity= "); ///短信内容
delay(9000);
}
void CQ(){
Serial.print(“AT CMGS=“18853105850”\r\n”); //设置手机号码
delay(9000);
Serial.print("NO1 humidity= "); ///短信内容
delay(9000);
}
void WR(){
delay(9000);
Serial.write(0x1A);
}