I am doing a project to receive data from receiver lora to transmitter lora and that data to thinspeak channel . now I cannot connect the wifi . please help and give a solution . below is the code I used .
#include <WiFi.h>
//Libraries for LoRa
#include <SPI.h>
#include <LoRa.h>
//define the pins used by the LoRa transceiver module
#define ss 5
#define rst 14
#define dio0 2
#define BAND 433E6 //433E6 for Asia, 866E6 for Europe, 915E6 for North America
// Replace with your network credentials
String apiKey = "YW8C9PBC8XHWXJQ7"; // Enter your Write API key from ThingSpeak
const char *ssid = "Alexahome"; // replace with your wifi ssid and wpa2 key
const char *password = "12345678";
const char* server = "api.thingspeak.com";
WiFiClient client;
// Initialize variables to get and save LoRa data
int rssi;
String loRaMessage;
String accelerationMagnitude;
String readingID;
// Replaces placeholder with DHT values
String processor(const String& var){
//Serial.println(var);
if(var == "ACCELERATION_MAGNITUDE")
{
return accelerationMagnitude;
}
else if (var == "RRSI")
{
return String(rssi);
}
return String();
}
void setup() {
Serial.begin(115200);
int counter;
//setup LoRa transceiver module
LoRa.setPins(ss, rst, dio0); //setup LoRa transceiver module
while (!LoRa.begin(BAND) && counter < 10) {
Serial.print(".");
counter++;
delay(500);
}
if (counter == 10) {
// Increment readingID on every new reading
Serial.println("Starting LoRa failed!");
}
Serial.println("LoRa Initialization OK!");
// Connect to Wi-Fi network with SSID and password
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
}
// Print local IP address and start web server
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
// Read LoRa packet and get the sensor readings
void loop()
{
int packetSize = LoRa.parsePacket();
if (packetSize)
{
Serial.print("Lora packet received: ");
while (LoRa.available()) // Read packet
{
String LoRaData = LoRa.readString();
Serial.print(LoRaData);
int pos1 = LoRaData.indexOf('/');
int pos2 = LoRaData.indexOf('&');
readingID = LoRaData.substring(0, pos1); // Get readingID
accelerationMagnitude = LoRaData.substring(pos1+1, pos2); // Get temperature
}
rssi = LoRa.packetRssi(); // Get RSSI
Serial.print(" with RSSI ");
Serial.println(rssi);
}
if (client.connect(server, 80)) // "184.106.153.149" or api.thingspeak.com
{
String postStr = apiKey;
postStr += "&field1=";
postStr += String(readingID);
postStr += "&field2=";
postStr += String(accelerationMagnitude);
postStr += "&field3=";
postStr += String(rssi);
postStr += "\r\n\r\n\r\n\r\n";
client.print("POST /update HTTP/1.1\n");
client.print("Host: api.thingspeak.com\n");
client.print("Connection: close\n");
client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
client.print("Content-Type: application/x-www-form-urlencoded\n");
client.print("Content-Length: ");
client.print(postStr.length());
client.print("\n\n");
client.print(postStr);
}
//delay(30000);
}
below was output .
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13964
load:0x40080400,len:3600
entry 0x400805f0
LoRa Initialization OK!
Connecting to Alexahome.......................................................................................................................................................................................................................................�ets Jul 29 2019 12:21:46
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1344
load:0x40078000,len:13964
load:0x40080400,len:3600
entry 0x400805f0
LoRa Initialization OK!