Greetings!
I need help guys
I wanna know how to send data to arduino
I'm using the following on the project
*firebase
*web server
I want to use the app to send data to firebase
then to web server to arduino
idea in mind :
am I going to use POST on the arduino code and php to firebase code?
aim:
--
using the mobile app
to make it more easier to change the SSID and password of the arduino device easily
here's the code for the arduino
#include <SoftwareSerial.h>
#include <DHT.h>;
SoftwareSerial Serial1(10, 11);
#define Trash "Trash3"
#define DHTTYPE DHT11
#define DHTPIN 2
#define TRIGGER_PIN 4
#define ECHO_PIN 3
DHT dht(DHTPIN, DHTTYPE, 11);
float humidity, temp_f;
int distance;
long duration;
String buff(64);
String getStr(128);
void setup() {
 Serial.begin(9600);
 Serial1.begin(9600);
 //Serial1.resetESP();
 delay(2000);
 Serial1.setTimeout(5000);
 dht.begin();
 pinMode(TRIGGER_PIN, OUTPUT);
 pinMode(ECHO_PIN, INPUT);
 if (!connectWiFi()) {
  Serial.println("Can not connect to the WiFi.");
  while (true)
   ; // do nothing
 }
 Serial.println("OK, Connected to WiFi.");
 sendCommand("AT+CIPSTA?");
 //sendCommand("AT+CIPDNS_CUR?");
 sendCommand("AT+CIPSTAMAC?");
Â
}
void loop() {
 temp_f = dht.readTemperature();
 humidity = dht.readHumidity();
 digitalWrite(TRIGGER_PIN, LOW);
 delayMicroseconds(2);
 digitalWrite(TRIGGER_PIN, HIGH);
 delayMicroseconds(10);
 digitalWrite(TRIGGER_PIN, LOW);
 duration = pulseIn(ECHO_PIN, HIGH);
 distance = duration * 0.034 / 2;
 // connect to server
 if (sendCommand("AT+CIPSTART=\"TCP\",\"gg.com\",80")) {
  Serial.println("connected to Cloud");
  // build HTTP request
  getStr = "GET /upload.php?trash=";
  getStr += Trash;
  getStr += "&distance=";
  getStr += distance;
  getStr += "&temp_f=";
  getStr += temp_f;
  getStr += "&humidity=";
  getStr += humidity;
  getStr += " HTTP/1.1\r\n";
  getStr += "Host: gg.com\r\n\r\n";
  // open send buffer
  buff = "AT+CIPSEND=";
  buff += getStr.length();
  if (sendCommand(buff.c_str()) && Serial1.find(">")) { // AT firmware is ready to accept data
   // send HTTP request
   Serial.println(getStr);
   Serial1.print(getStr);
   // print HTTP response
   if (Serial1.find("+IPD,")) { // response received
    int l = Serial1.parseInt();
    while (l > 0) {
     if (Serial1.available()) {
      Serial.write(Serial1.read());
      l--;
     }
    }
    Serial.println("--------------");
   } else {
    Serial.println("no response");
   }
  } else {
   Serial.println("send error");
  }
  sendCommand("AT+CIPCLOSE");
 } else {
  Serial.println("Error connecting");
 }
}
bool connectWiFi() {
 if (!sendCommand("ATE0")) // echo off
  return false;
 if (!sendCommand("AT+CIPMUX=0")) // set single connection mode
  return false;
 if (!sendCommand("AT+CWMODE=1")) // set STA mode
  return false;
 return sendCommand("AT+CWJAP=\"CAPSTONE\",\"capstonemis\"");
}
bool sendCommand(const char* cmd) {
 Serial.println(cmd);
 Serial1.println(cmd);
 while (true) {
  buff = Serial1.readStringUntil('\n');
  buff.trim();
  if (buff.length() > 0) {
   Serial.println(buff);
   if (buff == "OK" || buff == "SEND OK" || buff == "ALREADY CONNECTED")
    return true;
   if (buff == "ERROR" || buff == "FAIL" || buff == "SEND FAIL")
    return false;
  }
 }
}
here's the code on the web server to connect to firebase
<?php
require 'firebaseLib.php';
$Trash = $_GET["trash"];
$Distance = $_GET["distance"];
$Temperature = $_GET["temp_f"];
$Humidity= $_GET["humidity"];
// --- This is your Firebase URL
$baseURI = 'https://thesis1-69.firebaseio.com';
// --- Use your token from Firebase here
$token = 'gg';
// --- Here is your parameter from the http GET
$devicestatus= array('Distance' => $Distance,'Temperature' => $Temperature,'Humidity' => $Humidity);
$firebasePath = '/thesis1-69/';
$full= array($Trash => $devicestatus);
/// --- Making calls
$fb = new Firebase($baseURI, $token);
$fb -> update($firebasePath, $full);
?>
Thank you