first
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
#include <ArduinoJson.h>
|
||||
#include <SPI.h>
|
||||
#include <LoRa.h>
|
||||
#include "DHT.h"
|
||||
|
||||
#define DHTPIN 3
|
||||
#define DHTTYPE DHT11
|
||||
DHT dht(DHTPIN, DHTTYPE);
|
||||
|
||||
int lightPin = A0;
|
||||
int counter = 0;
|
||||
int LEDPin = 4;
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
while (!Serial);
|
||||
|
||||
Serial.println("LoRa Sender");
|
||||
|
||||
if (!LoRa.begin(866E6)) {
|
||||
Serial.println("Starting LoRa failed!");
|
||||
while (1);
|
||||
}
|
||||
dht.begin();
|
||||
LoRa.crc();
|
||||
LoRa.setSyncWord(0x22);
|
||||
// register the receive callback
|
||||
LoRa.onReceive(onReceive);
|
||||
|
||||
// put the radio into receive mode
|
||||
LoRa.receive();
|
||||
// attachInterrupt(digitalPinToInterrupt(2), lora, HIGH);
|
||||
pinMode(LEDPin, OUTPUT);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
|
||||
StaticJsonBuffer<200> jsonBuf;
|
||||
|
||||
JsonObject& json = jsonBuf.createObject();
|
||||
|
||||
Serial.print("Sending packet: ");
|
||||
Serial.println(counter);
|
||||
|
||||
float h = dht.readHumidity();
|
||||
float t = dht.readTemperature();
|
||||
|
||||
json["count"] = counter;
|
||||
json["temperature"] = t;
|
||||
json["humidity"] = h;
|
||||
json["light"] = analogRead(lightPin);
|
||||
|
||||
// send packet
|
||||
LoRa.beginPacket();
|
||||
json.printTo(LoRa);
|
||||
LoRa.endPacket();
|
||||
|
||||
counter++;
|
||||
LoRa.onReceive(onReceive);
|
||||
LoRa.receive();
|
||||
|
||||
delay(1000);
|
||||
}
|
||||
|
||||
void lora() {
|
||||
Serial.println("Get Pin High");
|
||||
int packetSize = LoRa.parsePacket();
|
||||
if (packetSize) {
|
||||
// received a packet
|
||||
Serial.print("Received packet '");
|
||||
|
||||
// read packet
|
||||
while (LoRa.available()) {
|
||||
Serial.print((char)LoRa.read());
|
||||
}
|
||||
|
||||
// print RSSI of packet
|
||||
Serial.print("' with RSSI ");
|
||||
Serial.println(LoRa.packetRssi());
|
||||
}
|
||||
}
|
||||
|
||||
void onReceive(int packetSize) {
|
||||
// received a packet
|
||||
Serial.print("Received packet '");
|
||||
uint8_t d[packetSize];
|
||||
// read packet
|
||||
for (int i = 0; i < packetSize; i++) {
|
||||
// Serial.print((char)LoRa.read());
|
||||
d[i] = LoRa.read();
|
||||
Serial.print(d[i], HEX);
|
||||
Serial.print(" ");
|
||||
}
|
||||
|
||||
// print RSSI of packet
|
||||
Serial.print("' with RSSI ");
|
||||
Serial.println(LoRa.packetRssi());
|
||||
|
||||
if (int(d[packetSize - 1]) % 2 == 0) {
|
||||
Serial.println("LED on");
|
||||
digitalWrite(LEDPin, HIGH);
|
||||
} else {
|
||||
Serial.println("LED off");
|
||||
digitalWrite(LEDPin, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user