Professional Documents
Culture Documents
Energy generation: We are using vertical wind turbine and Solar panels to generate
electricity without any air pollution.
wireless and wired charging: We have developed a wireless power transmission module
using copper coil and T5336 IC. User can charge vehicle using wired adapter as well as
wirelessly during driving.
Power
Batteries Copper Coil
distribution
Android App: The Android app is used to find the nearest charging lane and monitor the
available charging at charging station.
Charging
Android App Cloud
infrastructure
6.2 Tools and Technologies Used
Micro- Python - MicroPython is a software implementation of a programming language
largely compatible with Python 3, written in C, that is optimized to run on a
microcontroller. MicroPython is a full Python compiler and runtime that runs on the
micro-controller hardware. The user is presented with an interactive prompt (the REPL)
to execute supported commands immediately. Included are a selection of core Python
libraries; MicroPython includes modules which give the programmer access to low-level
hardware. The source code for the project is available on GitHub under the MIT License.
MicroPython was originally created by the Australian programmer and physicist Damien
George, after a successful Kickstarter backed campaign in 2013. While the original
Kickstarter campaign released MicroPython with an STM32F4-powered development
board "pyboard", MicroPython supports a number of ARM based architectures. The ports
supported in the mainline are ARM Cortex-M (many STM32 boards, TI CC3200/WiPy,
Teensy boards, Nordic nRF series, SAMD21 and SAMD51), ESP8266, ESP32, 16bit
PIC, Unix, Windows, Zephyr, and JavaScript. Also, there are many forks for a variety of
systems and hardware platforms not supported in the mainline.
MQTT:
Why MQTT?
MQTT has unique features you can hardly find in other protocols, like:
It’s a lightweight protocol. So, it’s easy to implement in software and fast in data
transmission.
It’s based on a messaging technique. Of course, you know how fast your
messenger/WhatsApp message delivery is. Likewise, the MQTT protocol.
Minimized data packets. Hence, low network usage.
Low power usage. As a result, it saves the connected device’s battery.
It’s real time! That’s is specifically what makes it perfect for IoT applications.
o HTML
Hypertext Markup Language (HTML) is the standard markup language used to
create web pages. A markup language is your way of making notes in a digital
document that can be distinguished from regular text. It’s the most basic building
block you’ll need for developing websites.
o CSS
CSS (Cascading Style Sheets) is the language used to present the document you
create with HTML. Where HTML comes first and creates the foundation for your
page, CSS comes along next and is used to create the page’s layout, color, fonts,
and…well, the style!
o JavaScript
Another MAJOR tool in your front-end developer toolbox is going to be
JavaScript (JS). Where HTML is a markup language and CSS is a style sheet
language, JS is the first language I’ve mentioned that’s a Bonafede programming
language. What’s the difference? Where HTML and CSS determine the
presentation of a page, JS determines the function.
Arduino Ide
Arduino IDE is an open source software that is mainly used for writing and compiling the
code into the Arduino Module. It is an official Arduino software, making code
compilation too easy that even a common person with no prior technical knowledge can
get their feet wet with the learning process. It is easily available for operating systems
like MAC, Windows, Linux and runs on the Java Platform that comes with inbuilt
functions and commands that play a vital role for debugging, editing and compiling the
code in the environment. A range of Arduino modules available including Arduino Uno,
Arduino Mega, Arduino Leonardo, Arduino Micro and many more.
Android Studio
Android Studio is the official integrated development environment (IDE) for Google's
Android operating system, built on JetBrains' IntelliJ IDEA software and designed
specifically for Android development. It is available for download on Windows, macOS
and Linux based operating systems. It is a replacement for the Eclipse Android
Development Tools (ADT) as the primary IDE for native Android application
development.
Android Studio was announced on May 16, 2013 at the Google I/O conference. It was in
early access preview stage starting from version 0.1 in May 2013, then entered beta stage
starting from version 0.8 which was released in June 2014. The first stable build was
released in December 2014, starting from version 1.0.
6.3 Project Code
#include "FirebaseESP8266.h"
#include <ESP8266WiFi.h>
#include <Wire.h>
#include "SSD1306Wire.h"
void setup()
{
Serial.begin(115200);
display.init();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_16);
display.drawString(0, 0, "Wireless");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 16, "Charging");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 46, "Lane");
display.display();
delay(5000);
display.clear();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_16);
display.drawString(0, 0, "Please Wait");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 16, "Connecting");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 46, "to Network...");
display.display();
delay(5000);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to Wi-Fi");
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(300);
}
Serial.println();
Serial.print("Connected with IP: ");
Serial.println(WiFi.localIP());
Serial.println();
display.clear();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_16);
display.drawString(0, 0, "Successfully");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 16, "Connected");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 46, "to Network.");
display.display();
delay(5000);
display.clear();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_16);
display.drawString(0, 0, "Please Wait");
display.setFont(ArialMT_Plain_24);
display.drawString(0, 16, "Sensors are");
display.setFont(ArialMT_Plain_16);
display.drawString(0, 46, "Initializing ...");
display.display();
delay(5000);
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
}
void loop()
{
int a = analogRead(0);
int val = map(a, 0, 900, 0, 100);
int b =(Firebase.getInt(firebaseData, "data"));
Serial.print("Updated :");
Serial.println(firebaseData.intData());
if (Firebase.setInt(firebaseData, "data",val))
{
Serial.println("PASSED");
Serial.println("PATH: " + firebaseData.dataPath());
Serial.println("TYPE: " + firebaseData.dataType());
Serial.println("ETag: " + firebaseData.ETag());
Serial.print("VALUE: ");
Serial.println("------------------------------------");
Serial.println();
}
else
{
Serial.println("FAILED");
Serial.println("REASON: " + firebaseData.errorReason());
Serial.println("------------------------------------");
Serial.println();
}
display.clear();
display.flipScreenVertically();
display.setFont(ArialMT_Plain_16);
display.drawString(10, 0, "Charging:");
display.setFont(ArialMT_Plain_24);
display.drawString(40, 16,String(val)+"%");
display.setFont(ArialMT_Plain_24);
display.drawString(10, 40,"Available");
display.display();
delay(20000);
}
Chapter 7
Software Testing
6.1 Types of Testing
Testing is the process of evaluating a system or its component(s) with the intent to find whether
it satisfies the specified requirements or not. Testing is executing a system in order to identify
any gaps, errors, or missing requirements in contrary to the actual requirements.
Mastering the domain of a system always gives the tester an edge over someone with limited
domain knowledge. Unlike black-box testing, where the tester only tests the application's user
interface; in grey-box testing, the tester has access to design documents and the database. Having
this knowledge, a tester can prepare better test data and test scenarios while making a test plan.
6.3 Test Cases
6.3.1 Test Cases for Hardware
No. Module Expected Result Actual Result Status
1. Energy generation Enough energy should Wind turbine and solar Success
be generate using wind panel generating
and solar panel. enough energy.
2. Power storage Batteries should store Batteries are storing Success
the power generated by require amount of
wind and solar panel. energy.
3. Current sensor Current sensor should Current sensor is Success
measure current measuring current
accurately. accurately.
4. Voltage sensor voltage sensor should voltage sensor is Success
measure voltage measuring voltage
accurately. accurately.
5. Wired charging User can charge Users can charge Success
vehicle using adapter. vehicle using adapter
6. Wireless charging. Users shold charge Users can charge Success
vehicle wirelessly. vehicle wirelessly.
In this system, a simple prototype of wireless charging lane will present and through the
experiment, it is showing that this lane can provide a scale-down model with wireless power
transmission for EVs, which makes the idea of charging-on-the-way into reality preliminarily.
Because of low transfer efficiency, future work focuses on the optimization of the wireless
charging lane. In addition, some control strategy can also be introduced into the proposed
system. For instance, coils will not be powered until the vehicle is detected by position sensors.