
27.Aug.2023
In this article, we will pull data in JSON format from a web server using Flutter and PHP and visualize this data as a line graph.
Flutter is an open source UI (User Interface) development framework developed by Google. PHP, on the other hand, is a popular programming language designed specifically for web development. Using these two technologies, we will develop an application that pulls temperature and humidity data from a database and displays this data as a line graph.
Requirements
Flutter installed development environment (Android Studio, VS Code etc.)
A web server or local server with PHP support (such as XAMPP)
A database (e.g. MySQL)
Step 1: Data Extractions (PHP)
In the first step, we will pull the last 5 measurements from the database using PHP codes. We will return these measurements in JSON format.
<?php
$servername="localhost";
$username="username";
$password="password";
$dbname="database_name";
$conn=new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Error connecting to database: " . $conn->connect_error);
}
$sql="SELECT * FROM dht ORDER BY id DESC LIMIT 5";
$result=$conn->query($sql);
$data=array();
if ($result->num_rows > 0) {
while($row=$result->fetch_assoc()) {
$data[]=array(
"deg1"=> (int)$row["temp"],
"deg2"=> (int)$row["humd"]
);
}
}
echo json_encode($data);
$conn->close();
?>
Step 2: Developing Flutter App
In the Flutter application, we will run PHP codes using the HTTP package and process the incoming JSON data and display it as a line graph and list.
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';
import 'package:fl_chart/fl_chart.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
List<Map<String, int>> data = [];
@override
void initState() {
super.initState();
fetchData();
}
Future<void> fetchData() async {
final response = await http.get(Uri.parse('https://iot.milivolt.news/fetch_data.php'));
if (response.statusCode == 200) {
final jsonData = json.decode(response.body) as List<dynamic>;
setState(() {
data = jsonData.map((item) => {
"deg1": item["deg1"] as int,
"deg2": item["deg2"] as int,
}).toList();
});
} else {
throw Exception('Failed to load data');
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Temp end Humd from IoT Server'),
),
body: Column(
children: [
AspectRatio(
aspectRatio: 1.5,
child: LineChart(
LineChartData(
titlesData: FlTitlesData(
leftTitles: SideTitles(showTitles: true),
bottomTitles: SideTitles(showTitles: true),
),
borderData: FlBorderData(show: true),
gridData: FlGridData(show: true),
lineBarsData: [
LineChartBarData(
spots: data.asMap().entries.map((entry) {
final index = entry.key;
final value = entry.value;
return FlSpot(index.toDouble(), value["deg1"]!.toDouble());
}).toList(),
isCurved: true,
colors: [Colors.blue],
dotData: FlDotData(show: false),
belowBarData: BarAreaData(show: false),
),
LineChartBarData(
spots: data.asMap().entries.map((entry) {
final index = entry.key;
final value = entry.value;
return FlSpot(index.toDouble(), value["deg2"]!.toDouble());
}).toList(),
isCurved: true,
colors: [Colors.red],
dotData: FlDotData(show: false),
belowBarData: BarAreaData(show: false),
),
],
),
),
),
SizedBox(height: 16),
Expanded(
child: ListView.builder(
itemCount: data.length,
itemBuilder: (context, index) {
return ListTile(
title: Text('Temperature: ${data[index]["deg1"]}°C'),
subtitle: Text('Humidity: ${data[index]["deg2"]}%'),
);
},
),
),
],
),
),
);
}
}
In this article, we covered the process of pulling data from a web server and visualizing it with a line graph in a scenario where Flutter and PHP are combined. With Flutter's rich UI capabilities and PHP's database processing capabilities, you can effectively visualize your data in your mobile app.

Mobile programming Fundamentals for Control Applications
Fundamentals of mobile application development for control of electronic systems
05.04.2023

With the Flutter-Dart language, can we write an artificial intelligence program that takes a picture and lists the objects in it?
Flutter-Dart language, artificial intelligence program
06.04.2023

Writing Applications that control Electronic Devices with Flutter-Dart Programming Language
Controlling Electronic Devices remotely
06.04.2023

Controlling Wifi Devices with Flutter-Dart
Control of remote devices with Android apps, Wifi-based control applications
07.04.2023

Developing an Application to Send Data to a Bluetooth-enabled Thermal Printer with Flutter
Mobile app developed with Flutter explains the step-by-step process of sending text to a Bluetooth-enabled thermal printer. Contains information about printer commands and Bluetooth communications
11.01.2024

Application Development Example with Flutter and Arduino
Learn to connect mobile devices with embedded systems! In this article, learn step by step how to develop an app using Flutter and Arduino
01.03.2024

Bluetooth Speaker Project with Flutter - Audio data transfer
In this project we will try to understand how the Bluetooth speaker system is designed and how to develop it. We will examine the basics of Android programming, MCU programming-embedded system design.
24.07.2023

IoT System Design 1 – Temperature and Humidity Monitoring System
IoT system design with ESP 12f. Monitoring of temperature, humidity in web & mobile. Arduino, DHT11 sensor.
30.08.2023

IoT System Design 2- Sending Temperature and Humidity Data to Web Server with Arduino
Learn the steps to send temperature and humidity data from DHT11 sensor with Arduino to web server via ESP 12f
30.08.2023

IoT System Design 3- Data Processing on the Web Server Side
Learn to transmit data from DHT11 sensor with Arduino to web server via ESP8266 and save it to database with PHP.
30.08.2023

IoT System Design 4- Creating a Web Interface
Learn how data is pulled from the IoT system and used graphically.
30.08.2023

IoT System Design 5- Mobile Application Visualizing IoT Data with Flutter
Code descriptions of an application that pulls, graphs, and lists IoT data with Flutter.
30.08.2023

Mobile Application Development for Smart Homes
In this article, you can find the steps and examples of mobile application development using WiFi communication
01.09.2023

Developing Mobile Applications with Artificial Intelligence – Voltmeter Interface Application
The mobile application developed with artificial intelligence visualizes the microcontroller volt measurement with numerical data.
12.09.2023

Mobile Application Interface Development Study for Smart Homes
Ways to develop mobile applications with Flutter for smart home and workplace systems
16.09.2023

Designing an Air Quality Measurement System 1 – Basic definitions of Air Quality
Air Quality Measurement System design and air quality parameters. PM2.5, CO, NO2, O3, SO2 measurement
02.10.2023

Designing an Air Quality Measurement System 2- MQ-135 Gas Sensor Review
MQ-135 Gas Sensor: A powerful sensor used to monitor air quality and detect gases. Offers precise measurement
02.10.2023

Designing an Air Quality Measurement System 3 - Measurement with MQ-135 and DHT-11
Designing an Air Quality Measurement System - Measurement with MQ-135 and DHT-11.
10.10.2023

Designing an Air Quality Measurement System 4 – Air Quality Monitoring Mobile Application
Air Quality Monitoring Mobile Application. Receive air quality data via Bluetooth, parse it in JSON format
10.10.2023