Project tutorial
Hot Air Balloon or Weather Satellite Navigation System

Hot Air Balloon or Weather Satellite Navigation System © GPL3+

Navigational Tracking Device to keep an eye on altitude of Hot Air Balloon or Weather Balloon Satellite.

  • 1,960 views
  • 0 comments
  • 14 respects

Components and supplies

Apps and online services

About this project

Hot Air Balloon is a risky and challenging sport testing your navigational skills. If you lost in the balloon, this device will help you to track on GPS as well as will tell about the accurate altitude of your balloon. It is also helpful when you launch your own weather balloon Satellite and it is difficult to find it. It is the most difficult part of whole process, so you have to keep this device in balloon carriage to keep it tracked.

Here we will first of all acquire data from the sensor and then transmit it through wifi board ESP8266. The process is simple.

Step 1: Adding Wifi To Arduino UNO

  • Connect your UNO to ESP 8266 as shown in circuit diagram above.
  • Connect the Arduino’s 3v3 (3.3V) output to ESP8266. The ESP8266 works with 3.3V and not 5V, so this is necessary.
  • Connect the RES or RESET pin, When you ground the reset pin, the Arduino works as a dumb USB to serial connector, which is what we want to talk to the ESP8266.
  • Connect the RXD pin of the Arduino to the RX pin of the ESP8266.
  • Connect the TXD pin of the Arduino to the TX pin of the ESP. When we want two things to talk to each other over serial, we connect the TX pin of one to the RX of the other (send goes to receive and the opposite). Here we do not have the Arduino talk to the ESP8266 though, our computer is talking to it via the Arduino.
  • Connect GND and VCC.

Finally CH_PD connects.

Step 2: In Arduino IDE

In the Arduino IDE, you don’t need to choose a board, as we’re not uploading anything to the ESP8266. Just choose the right port in the Tools menu and go to ToolsSerial Monitor. Then simply set your baud rate to 115200 (the default ESP8266 firmware uses it) and your line endings to Both NL & CR.

And since we talked about the CH_PD pin, remember that if you want to flash the ESP8266 you should connect the GPIO0 pin.

Step 3: Connecting DPS310

We are doing I2C connection here as per the circuit Diagram.

Step 4: Installing Infineon DPS310 Libraries

Link: https://github.com/Infineon/DPS310-Pressure-Sensor

To install the DPS310 pressure sensor library in the Arduino IDE, please go now to Sketch > Include Library > Add .ZIP Library... in the Arduino IDE and navigate to the downloaded .ZIP file of this repository. The library will be installed in your Arduino sketch folder in libraries and you can select as well as include this one to your project under Sketch > Include Library> IFX_DPS310.

Step 5: Arduino Libraries to Communicate with Google Maps

Link: https://github.com/witnessmenow/arduino-google-maps-api

Code

Sending Data from Arduino To WebsiteC/C++
#include "SoftwareSerial.h"
String ssid ="yourSSID";

String password="yourPassword";

SoftwareSerial esp(6, 7);// RX, TX

String data;

String server = "yourServer"; // www.example.com

String uri = "yourURI";// our example is /esppost.php

int DHpin = 8;//sensor pin

byte dat [5];

String temp ,hum;

void setup() {

pinMode (DHpin, OUTPUT);

esp.begin(9600);

Serial.begin(9600);

reset();

connectWifi();

}

//reset the esp8266 module

void reset() {

esp.println("AT+RST");

delay(1000);

if(esp.find("OK") ) Serial.println("Module Reset");

}

//connect to your wifi network

void connectWifi() {

String cmd = "AT+CWJAP=\"" +ssid+"\",\"" + password + "\"";

esp.println(cmd);

delay(4000);

if(esp.find("OK")) {

Serial.println("Connected!");

}

else {

connectWifi();

Serial.println("Cannot connect to wifi"); }

}

byte read_data () {

byte data;

for (int i = 0; i < 8; i ++) {

if (digitalRead (DHpin) == LOW) {

while (digitalRead (DHpin) == LOW); // wait for 50us

delayMicroseconds (30); // determine the duration of the high level to determine the data is '0 'or '1'

if (digitalRead (DHpin) == HIGH)

data |= (1 << (7-i)); // high front and low in the post

while (digitalRead (DHpin) == HIGH);

// data '1 ', wait for the next one receiver

}

} return data; }

void start_test () {

digitalWrite (DHpin, LOW); // bus down, send start signal

delay (30); // delay greater than 18ms, so DHT11 start signal can be detected

digitalWrite (DHpin, HIGH);

delayMicroseconds (40); // Wait for DHT11 response

pinMode (DHpin, INPUT);

while (digitalRead (DHpin) == HIGH);

delayMicroseconds (80);

// DHT11 response, pulled the bus 80us

if (digitalRead (DHpin) == LOW);

delayMicroseconds (80);

// DHT11 80us after the bus pulled to start sending data

for (int i = 0; i < 4; i ++)

// receive temperature and humidity data, the parity bit is not considered

dat[i] = read_data ();

pinMode (DHpin, OUTPUT);

digitalWrite (DHpin, HIGH);

// send data once after releasing the bus, wait for the host to open the next Start signal

}

void loop () {

start_test ();

// convert the bit data to string form

hum = String(dat[0]);

temp= String(dat[2]);

data = "temperature=" + temp + "&humidity=" + hum;// data sent must be under this form //name1=value1&name2=value2.

httppost();

delay(1000);

}

void httppost () {

esp.println("AT+CIPSTART=\"TCP\",\"" + server + "\",80");//start a TCP connection.

if( esp.find("OK")) {

Serial.println("TCP connection ready");

} delay(1000);

String postRequest =

"POST " + uri + " HTTP/1.0\r\n" +

"Host: " + server + "\r\n" +

"Accept: *" + "/" + "*\r\n" +

"Content-Length: " + data.length() + "\r\n" +

"Content-Type: application/x-www-form-urlencoded\r\n" +

"\r\n" + data;

String sendCmd = "AT+CIPSEND=";//determine the number of caracters to be sent.

esp.print(sendCmd);

esp.println(postRequest.length() );

delay(500);

if(esp.find(">")) { Serial.println("Sending.."); esp.print(postRequest);

if( esp.find("SEND OK")) { Serial.println("Packet sent");

while (esp.available()) {

String tmpResp = esp.readString();

Serial.println(tmpResp);

}

// close the connection

esp.println("AT+CIPCLOSE");

}

}}

Schematics

Connecting Arduino to esp8266
Uno esp connection dibqmpurhi
DPS310 Connection
Capture ulkmpz9oi6

Comments

Similar projects you might like

Safe City: A Device to Keep You Safe

Project tutorial by Patel Darshil

  • 7,483 views
  • 0 comments
  • 24 respects

Safe Home Smart Home: Safety Device For Every Family Member

Project tutorial by Patel Darshil

  • 4,215 views
  • 0 comments
  • 10 respects

Arduino UNO Mini-Weather Station

Project tutorial by Igor Fonseca Albuquerque

  • 25,857 views
  • 21 comments
  • 67 respects

Traffic Monitor- Monitors traffic on the Go

Project tutorial by Patel Darshil

  • 3,741 views
  • 0 comments
  • 8 respects

Easy IOT Water Leakage Indicator

Project tutorial by Patel Darshil

  • 9,183 views
  • 2 comments
  • 13 respects

IoT arduino ESP Garage Door opener (UD)

Project in progress by David Smerkous

  • 11,556 views
  • 6 comments
  • 17 respects
Add projectSign up / Login