Lora Project
Lora Project
com/earlephilhower/arduinopico/releases/download/global/
package_rp2040_index.json
Raspberry Pi Pico and this I2c lcd working process. #include <LiquidCrystal_PCF8574.h> (Compatible
library)
LORA TRANSMITTER
LORA RECIEVER
Library
const int pulsePin = 26; // GPIO26 (Pin 31) for pulse rate sensor signal
int pulseValue = 0; // Variable to store pulse rate sensor reading
void setup() {
// Initialize Serial communication
Serial.begin(9600);
while (!Serial);
void loop() {
// Read analog value from the pulse rate sensor
pulseValue = analogRead(pulsePin);
void setup() {
// Initialize Serial communication
Serial.begin(9600);
while (!Serial);
void loop() {
// Check for incoming LoRa packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// Received a packet
String receivedData = "";
while (LoRa.available()) {
receivedData += (char)LoRa.read();
}
Serial.println("Received packet: " + receivedData);
const int pulsePin = 26; // GPIO26 (Pin 31) for pulse rate sensor signal
int pulseValue = 0; // Variable to store pulse rate sensor reading
void loop() {
// Read pulse rate sensor value
pulseValue = analogRead(pulsePin);
void setup() {
// Initialize Serial communication
Serial.begin(9600);
while (!Serial);
void loop() {
// Check if a LoRa packet is available
int packetSize = LoRa.parsePacket();
if (packetSize) {
String receivedData = "";
long packetRSSI = LoRa.packetRssi(); // Get the RSSI (signal strength) of the packet
long packetSnr = LoRa.packetSnr(); // Get the SNR (Signal-to-Noise Ratio)
void setup() {
// Initialize Serial communication
Serial.begin(9600);
while (!Serial);
void loop() {
// Read pulse rate sensor value
pulseValue = analogRead(pulsePin);
void setup() {
// Initialize Serial communication
Serial.begin(9600);
while (!Serial);
void loop() {
// Check for incoming LoRa packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// Received a packet
String receivedData = "";
while (LoRa.available()) {
receivedData += (char)LoRa.read();
}
////GPS WORKING
#include <TinyGPS++.h> // Include TinyGPS++ library
void loop() {
// Check if GPS data is available from Serial1
while (Serial1.available() > 0) {
char c = Serial1.read(); // Read one character from GPS
gps.encode(c); // Decode the GPS data
// If new GPS data is available and the location is valid, print latitude and longitude
if (gps.location.isUpdated() && gps.location.isValid()) {
float latitude = gps.location.lat();
float longitude = gps.location.lng();
////lora transmitter
#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>
#include <MPU6050.h> // Include MPU6050 library
#include <OneWire.h>
#include <DallasTemperature.h>
#include <TinyGPS++.h> // Include TinyGPS++ library for GPS parsing
void setup() {
// Initialize Serial communication
Serial.begin(9600);
while (!Serial);
Receiver code
#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h> // Include the new LCD library
void setup() {
// Initialize Serial communication
Serial.begin(9600);
while (!Serial);
// Initialize LCD
lcd.begin(16, 2); // Set the size of the LCD (16 columns, 2 rows)
lcd.setBacklight(1); // Turn on the backlight
lcd.setCursor(0, 0);
lcd.print("Initializing...");
void loop() {
// Check if LoRa data is available to read
int packetSize = LoRa.parsePacket();
if (packetSize) {
// Read the incoming packet
String receivedData = "";
while (LoRa.available()) {
receivedData += (char)LoRa.read();
}
Transmitter code
#include <SPI.h>
#include <LoRa.h>
#include <Wire.h>
#include <MPU6050.h> // Include MPU6050 library
#include <OneWire.h>
#include <DallasTemperature.h>
#include <TinyGPS++.h> // Include TinyGPS++ library for GPS parsing
void setup() {
// Initialize Serial communication
Serial.begin(9600);
while (!Serial);
void loop() {
// Read pulse rate sensor value
pulseValue = analogRead(pulsePin);