智能温室系统 1 arduino采集数据 lora收发数据 控制电机水泵等

@[智能温室系统第一步传感器数据采集   Arduino

# 开发板用的是arduino开发板
使用的是arduino ide   可以去官网下载
我的代码里涉及到了三个外部包LORA     温湿度   线程

懒得话可以在下载我的源码。里面包含lora的原始收发程序

https://download.csdn.net/download/publicdust/11388928

 

 

本代码的功能有三个

读取各个传感器的数据,包括温湿度传感器、红外传感器、光敏、土壤湿度、烟雾

将数据通过LoRa实现和树莓派以及其他Arduino的通讯

接受树莓派的数据,做出相应的操作。包括电机转动、水泵抽水、开启电灯、蜂鸣器警报。

在这里多说一句,代码里涉及到了数据格式的转化,其实如果大家仅仅是为了读取数据完成数据的传输和不需要代码转化,因为我需要将数据通过NBIOT发出去所以在代码里添加了这个转化,不需要的可以注释掉。在这里声明一下代码里采用的通讯频率是434。
二话不说直接上代码

代码里都有注释

 

#include <DHT.h>
#include <DHT_U.h>

#include <DHT.h>
#include <DHT_U.h>

#include <DHT.h>
#include <DHT_U.h>

#include <pt.h>

#include <SPI.h>              // include libraries
#include <LoRa.h>
#include <String.h>
#include <DHT.h>
#include <Stepper.h>


#define Smoke_sensor A1    //烟雾模块引脚
#define Smoke_sensor_D 0    //D0
#define Soil_sensor A2    //土壤模块引脚
#define Soil_sensor_D 1   //D1
#define PIN_A A0        //光敏模块引脚2
#define PIN_D 2            //D2
#define Control_bee  3    //指示D3  蜂鸣器
#define Control_waterpump  4    //指示D4  水泵
#define DHTPIN 5             //温度输出引脚,D5
#define DHTTYPE DHT11        //定义传感器类型  
#define Control_led  6    //指示D6  灯泡
#define Control_motor 7  //控制电机
#define Control_fan   8  //指示D13  风扇
//人体红外传感器
#define PIR_sensor  A3    //指定PIR模拟端口 A3

 

DHT dht(DHTPIN, DHTTYPE);        //define DHT温湿度
const int csPin = 10;          // LoRa radio chip select
const int resetPin = 9;       // LoRa radio reset
const int irqPin = 2;         // change for your board; must be a hardware interrupt pin
String outgoing;              // outgoing message
byte msgCount = 0;            // count of outgoing messages
byte localAddress = 0xFF;     // address of this device
byte destination = 0xBB;      // destination to send to
long lastSendTime = 0;        // last send time
int interval = 6000;          // interval between sends

//自控制flag标志
int bee_flag = 0;   //设定蜂鸣器flag
int fan_flag = 0;   //设定风扇flag
int waterpump_flag = 0; //设定水泵flag

int redlight_value;   //红外值
int light_value;   //光强
float tem_float ; //温度
int soilsensor_value2; //土壤湿度
int array[100];
//全局字符串
String temandhum = ""; //温湿度
String redlight = ""; //红外
String light = ""; //光敏
String smoke = ""; //烟雾
String soil = ""; //土壤湿度
String mergestring = ""; //合并后的字符串
String encode_str = "";//编码后的字符串
//线程的函数名字
static struct pt receive_pt, water_pt, send_pt, motor_pt,fan_pt;

void setup() {
  pinMode(PIR_sensor, INPUT);   //设置PIR模拟端口为输入模式  //人体红外
  pinMode(Soil_sensor, INPUT);//土壤湿度传感器
  pinMode(Soil_sensor_D, INPUT);
  pinMode(Smoke_sensor, INPUT);//烟雾湿度传感器
  pinMode(Smoke_sensor_D, INPUT);
  pinMode(Control_led, OUTPUT);  //设置数字端口为输出模式  //灯泡
  pinMode(Control_bee, OUTPUT);  //蜂鸣器
  pinMode(Control_fan, OUTPUT);  //风扇
  digitalWrite(Control_fan, LOW);
  pinMode(Control_waterpump, OUTPUT);  //水泵
  digitalWrite(Control_waterpump, LOW);
  pinMode(Control_motor, OUTPUT);  //电机
  digitalWrite(Control_motor, LOW);//关闭电磁锁

 


  //线程定义
  PT_INIT(&receive_pt);
  PT_INIT(&water_pt);
  PT_INIT(&send_pt);
  PT_INIT(&motor_pt);
  PT_INIT(&fan_pt);

  Serial.begin(9600);                   // initialize serial
  while (!Serial);
  dht.begin();   //initialize dht
  Serial.println("LoRa Duplex");

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值