WikiJS/test_transfer_odt_5.html

1991 lines
110 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
title: Transfer Linux Lamp
description:
published: 1
date: 2024-02-02T20:07:41.428Z
tags:
editor: code
dateCreated: 2024-02-01T23:17:04.906Z
-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title></title>
<meta name="generator" content="LibreOffice 7.3.7.2 (Linux)"/>
<meta name="created" content="2020-12-11T19:06:01.168136779"/>
<meta name="changed" content="2024-02-02T21:04:57.696204319"/>
<style type="text/css">
@page { size: 8.5in 11in; margin: 0.79in }
p { line-height: 115%; margin-bottom: 0.1in; background: transparent }
h2 { margin-top: 0.14in; margin-bottom: 0.08in; background: transparent; page-break-after: avoid }
h2.western { font-family: "Liberation Serif", serif; font-size: 18pt; font-weight: bold }
h2.cjk { font-family: "Noto Serif CJK SC"; font-size: 18pt; font-weight: bold }
h2.ctl { font-family: "Lohit Devanagari"; font-size: 18pt; font-weight: bold }
h1 { margin-bottom: 0.08in; background: transparent; page-break-after: avoid }
h1.western { font-family: "Liberation Sans", sans-serif; font-size: 18pt; font-weight: bold }
h1.cjk { font-family: "Noto Sans CJK SC"; font-size: 18pt; font-weight: bold }
h1.ctl { font-family: "Lohit Devanagari"; font-size: 18pt; font-weight: bold }
a:link { color: #000080; so-language: zxx; text-decoration: underline }
code.western { font-family: "Liberation Mono", monospace }
code.cjk { font-family: "Noto Sans Mono CJK SC", monospace }
code.ctl { font-family: "Liberation Mono", monospace }
a:visited { color: #800000; so-language: zxx; text-decoration: underline }
</style>
</head>
<body lang="en-US" link="#000080" vlink="#800000" dir="ltr">
<div title="header"><p style="line-height: 100%; margin-bottom: 0.2in">
<br/>
</p>
</div><p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">enabling
SSH</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><a href="https://randomnerdtutorials.com/installing-raspbian-lite-enabling-and-connecting-with-ssh/"><font face="Liberation Serif, serif">https://randomnerdtutorials.com/installing-raspbian-lite-enabling-and-connecting-with-ssh/</font></a></code></p>
<ul>
<li><p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">add
file “ssh” into boot folder</font></code></p>
</ul>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Establishing
an SSH Communication</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo ssh <a href="mailto:pi@192.168.178.25">pi@192.168.178.25</a></font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">user:
pi, pass: pi</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Shutting
Down</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo poweroff</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><a href="https://randomnerdtutorials.com/raspberry-pi-apache-mysql-php-lamp-server/"><font face="Liberation Serif, serif">https://randomnerdtutorials.com/raspberry-pi-apache-mysql-php-lamp-server/</font></a></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><a href="https://www.instructables.com/Installing-LAMP-Linux-Apache-MySQL-PHP-on-a-Raspbe/"><font face="Liberation Serif, serif">https://www.instructables.com/Installing-LAMP-Linux-Apache-MySQL-PHP-on-a-Raspbe/</font></a></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Updating
and Upgrading</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo apt update &amp;&amp; sudo apt upgrade -y</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Install
Apache2</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo apt install apache2 -y</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Testing
Apache installation</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
cd /var/www/html</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
ls -al</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">This
should show “index.html”</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">get
RasPi IP address</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
hostname -I</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">enter
IP address into Browser → the Apache Debian page should appear</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Install
PHP</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
cd /var/www/html</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo apt install php -y</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo rm index.html</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo nano index.php</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Add
following script into the php file:</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">&lt;?php
echo &quot;hello world&quot;; ?&gt;</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Save
with Ctrl+X &gt;&gt; y &gt;&gt; Enter, </font></code><code class="western"><font face="Liberation Serif, serif">or
Ctrl+O &gt;&gt; Enter &gt;&gt; Ctrl+X</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">OR</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">&lt;?php
phpinfo(); ?&gt;</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">OR</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
echo &quot;&lt;?php phpinfo ();?&gt;&quot; &gt;
/var/www/html/index.php</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Restart
Apache</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo service apache2 restart</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">test
if Apache2 is serving .php files by opening RasPi IP address in
browser </font></code>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">if
all is fine, index.php can be removed</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo rm index.php</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Install
MySQL (MariaDB Server)</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo apt install mariadb-server php-mysql -y</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo service apache2 restart</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo mysql_secure_installation</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">In
all cases, answer with y</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">create
new user “</font></code><code class="western"><font face="Liberation Serif, serif">admin”
with password “</font></code><code class="western"><font face="Liberation Serif, serif">your_password”</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo mysql --user=root --password</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">&gt;
create user admin@localhost identified by 'your_password';</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">&gt;
grant all privileges on *.* to admin@localhost;</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">&gt;
FLUSH PRIVILEGES;</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">&gt;
exit;</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Important
to generate user that is not limited to a certain domain!!</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">&gt;
</font></code><code class="western"><font face="Liberation Serif, serif">grant
all privileges on *.* to 'admin3'@'%';</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Install
phpMyAdmin</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
cd /var/www/html</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo apt install phpmyadmin -y</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Options:</font></code></p>
<ul>
<li><p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">dbconfig-common</font></code></p>
<li><p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Apache2</font></code></p>
<li><p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Configuring
phpmyadmin? OK</font></code></p>
<li><p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Configure
database for phpmyadmin with dbconfig-common? Yes</font></code></p>
<li><p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Password:
pi</font></code></p>
</ul>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo phpenmod mysqli</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo service apache2 restart</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">open
following address</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><a name="__DdeLink__164_1253080105"></a>
<code class="western"><font face="Liberation Serif, serif">http://192.168.</font></code><code class="western"><font face="Liberation Serif, serif">178.25</font></code><code class="western"><font face="Liberation Serif, serif">/phpmyadmin</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">if
“Not Found”</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
cd /var/www/html</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
ls</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">&gt;&gt;
</font></code><code class="western"><font face="Liberation Serif, serif">phpmyadmin</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">again,
open following address</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><a href="http://192.168.178.25/phpmyadmin"><font face="Liberation Serif, serif">http://192.168.178.25/phpmyadmin</font></a></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">login
with username=root, password=pi</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">change
the permissions for your /var/www/html/ folder.</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
cd ~</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
ls -lh /var/www/</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo chown -R pi:www-data /var/www/html/</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo chmod -R 770 /var/www/html/</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
ls -lh /var/www/</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><a href="https://randomnerdtutorials.com/esp32-esp8266-raspberry-pi-lamp-server/"><font face="Liberation Serif, serif">https://randomnerdtutorials.com/esp32-esp8266-raspberry-pi-lamp-server/</font></a></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Create
database:</font></code></p>
<ul>
<li><p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">esp_data</font></code></p>
<li><p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">utf8mb4_general_ci</font></code></p>
</ul>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Create
table by calling SQL query:</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">CREATE
TABLE SensorData (</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western">
</code><code class="western"><font face="Liberation Serif, serif">id
INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western">
</code><code class="western"><font face="Liberation Serif, serif">sensor
VARCHAR(30) NOT NULL,</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western">
</code><code class="western"><font face="Liberation Serif, serif">location
VARCHAR(30) NOT NULL,</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western">
</code><code class="western"><font face="Liberation Serif, serif">value1
VARCHAR(10),</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western">
</code><code class="western"><font face="Liberation Serif, serif">value2
VARCHAR(10),</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western">
</code><code class="western"><font face="Liberation Serif, serif">value3
VARCHAR(10),</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western">
</code><code class="western"><font face="Liberation Serif, serif">reading_time
TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">)</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">PHP
script that is responsible for receiving incoming requests from the
ESP32 or ESP8266 and inserting the data into a MySQL database.</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
cd ~</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif">nano
/var/www/html/post-esp-data.php</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><a href="https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki/Troubleshooting"><font face="Liberation Serif, serif">https://github.com/ChuckBell/MySQL_Connector_Arduino/wiki/Troubleshooting</font></a></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">tr
to connect to msql from another computer:</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif">mysql
-u</font></code><code class="western"><font face="Liberation Serif, serif">admin</font></code><code class="western"><font face="Liberation Serif, serif">
-p</font></code><code class="western"><font face="Liberation Serif, serif">pi</font></code><code class="western"><font face="Liberation Serif, serif">
h192.168.178.25 port=3306</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif">mysql
--u</font></code><code class="western"><font face="Liberation Serif, serif">ser=</font></code><code class="western"><font face="Liberation Serif, serif">admin</font></code><code class="western"><font face="Liberation Serif, serif">
--p</font></code><code class="western"><font face="Liberation Serif, serif">assword=</font></code><code class="western"><font face="Liberation Serif, serif">pi</font></code><code class="western"><font face="Liberation Serif, serif">
--h</font></code><code class="western"><font face="Liberation Serif, serif">ost=</font></code><code class="western"><font face="Liberation Serif, serif">192.168.178.25
--port=3306</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif">mysql
--u</font></code><code class="western"><font face="Liberation Serif, serif">ser=</font></code><code class="western"><font face="Liberation Serif, serif">admin</font></code><code class="western"><font face="Liberation Serif, serif">
--p</font></code><code class="western"><font face="Liberation Serif, serif">assword=</font></code><code class="western"><font face="Liberation Serif, serif">pi</font></code><code class="western"><font face="Liberation Serif, serif">
--h</font></code><code class="western"><font face="Liberation Serif, serif">ost=
127.0.0.1</font></code><code class="western"><font face="Liberation Serif, serif">
--port=3306</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif">mysql
-u </font></code><code class="western"><font face="Liberation Serif, serif">admin</font></code><code class="western"><font face="Liberation Serif, serif">
-p </font></code><code class="western"><font face="Liberation Serif, serif">pi</font></code><code class="western"><font face="Liberation Serif, serif">
-h 127.0.0.1 test_arduino</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Important
in case of “ERROR 2003 (HY000): Can't connect to local MySQL server
through socket”</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf </font></code>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">Here,
the binding address = 127.0.0.1 must be commented out!!!</font></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><a href="https://pawelrychlicki.pl/Article/Details/65/fixing-sqlstatehy000-2002-in-the-nextcloudowncloud-with-the-mysqlmariadb-and-the-tlsssl-ubuntu-linux-1804-server"><font face="Liberation Serif, serif">https://pawelrychlicki.pl/Article/Details/65/fixing-sqlstatehy000-2002-in-the-nextcloudowncloud-with-the-mysqlmariadb-and-the-tlsssl-ubuntu-linux-1804-server</font></a></code></p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<h1 class="western">1<code class="western"><font face="Liberation Serif, serif">Configuring
WiFi in headless mode</font></code></h1>
<p><code class="western"><a href="https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md"><font face="Liberation Serif, serif">https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md</font></a></code></p>
<p><code class="western"><a href="https://www.seeedstudio.com/blog/2021/01/25/three-methods-to-configure-raspberry-pi-wifi/"><font face="Liberation Serif, serif">https://www.seeedstudio.com/blog/2021/01/25/three-methods-to-configure-raspberry-pi-wifi/</font></a></code></p>
<p><br/>
<br/>
</p>
<h2 class="western">1.1<code class="western"><font face="Liberation Serif, serif">ssh</font></code></h2>
<p><code class="western"><font face="Liberation Serif, serif">To
enable SSH on a headless Raspberry Pi, simply place a file named
“ssh”, without any extension, onto the boot partition of the SD
card from another computer. This will tell Raspberry Pi to enable SSH
when booting. The content of the file does not matter.</font></code></p>
<p><br/>
<br/>
</p>
<h2 class="western">1.2<code class="western"><font face="Liberation Serif, serif">wpa_supplicant.conf
</font></code>
</h2>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
nano /etc/wpa_supplicant/wpa_supplicant.conf</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">ctrl_interface=DIR=/var/run/wpa_supplicant
GROUP=netdev</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">update_config=1</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">country=</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">&lt;Country
Code&gt;</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">network={</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">ssid=&quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">&lt;SSID&gt;</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">psk=&quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">&lt;PASSWORD&gt;</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">scan_ssid=1</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">}</font></code></p>
<p><br/>
<br/>
</p>
<h1 class="western">2<code class="western"><font face="Liberation Serif, serif">Arduino
script for writing to MariaDB/MySQL database</font></code></h1>
<p><code class="western"><font face="Liberation Serif, serif">Check
sketch “Complex_Insert_WiFi_BE”</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">3<code class="western"><font face="Liberation Serif, serif">Showing
DB content as html page</font></code></h1>
<p><code class="western"><a href="https://randomnerdtutorials.com/esp32-esp8266-raspberry-pi-lamp-server/"><font face="Liberation Serif, serif">https://randomnerdtutorials.com/esp32-esp8266-raspberry-pi-lamp-server/</font></a></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$ nano
/var/www/html/esp-data.php</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">open
page http://192.168.178.25/esp-data.php</font></code></p>
<p><br/>
<br/>
</p>
<h2 class="western">3.1<code class="western"><font face="Liberation Serif, serif">esp-data.php</font></code></h2>
<p><code class="western"><font face="Liberation Serif, serif">&lt;!DOCTYPE
html&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;html&gt;&lt;body&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;?php</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">/*</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Rui
Santos</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Complete
project details at
https://RandomNerdTutorials.com/esp32-esp8266-mysql-database-php/</font></code></p>
<p><code class="western"> </code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Permission
is hereby granted, free of charge, to any person obtaining a copy</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">of
this software and associated documentation files.</font></code></p>
<p><code class="western"> </code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">The
above copyright notice and this permission notice shall be included
in all</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">copies
or substantial portions of the Software.</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">*/</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$servername
= &quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">192.168.178.25</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;;</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">//
REPLACE with your Database name</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$dbname
= &quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">test_arduino</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">//
REPLACE with Database user</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">$username
= &quot;</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">admin3</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">&quot;;</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">//
REPLACE with Database user password</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">$password
= &quot;</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">pi</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">&quot;;</span></font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">//
Create connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$conn =
new mysqli($servername, $username, $password, $dbname);</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">//
Check connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">if
($conn-&gt;connect_error) {</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">die(&quot;Connection
failed: &quot; . $conn-&gt;connect_error);</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">} </font></code>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$sql =
&quot;SELECT </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">message,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">sensor_</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">
FROM </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">hello_sensor</span></font></code><code class="western"><font face="Liberation Serif, serif">
ORDER BY </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif">
DESC&quot;;</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">echo
'&lt;table cellspacing=&quot;5&quot; cellpadding=&quot;5&quot;&gt;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;tr&gt;
</font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif">&lt;/td&gt;
</font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">message</span></font></code><code class="western"><font face="Liberation Serif, serif">&lt;/td&gt;
</font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">sensor</span></font></code><code class="western"><font face="Liberation Serif, serif">_num</font></code><code class="western"><font face="Liberation Serif, serif">&lt;/td&gt;
</font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">v</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">alue</span></font></code><code class="western"><font face="Liberation Serif, serif">&lt;/td&gt;
</font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">&lt;/td&gt;
</font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;/tr&gt;';</font></code></p>
<p><code class="western"> </code>
</p>
<p><code class="western"><font face="Liberation Serif, serif">if
($result = $conn-&gt;query($sql)) {</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">while
($row = $result-&gt;fetch_assoc()) {</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif">
= $row[&quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;];</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">message</span></font></code><code class="western"><font face="Liberation Serif, serif">
= $row[&quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">message</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;];</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">sensor_num</span></font></code><code class="western"><font face="Liberation Serif, serif">
= $row[&quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">sensor_num</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;];</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code><code class="western"><font face="Liberation Serif, serif">
= $row[&quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;];</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">re</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">corded</span></font></code><code class="western"><font face="Liberation Serif, serif">
= $row[&quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;];</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//
Uncomment to set timezone to - 1 hour (you can change 1 to any
number)</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//$row_reading_time
= date(&quot;Y-m-d H:i:s&quot;, strtotime(&quot;$row_reading_time - 1
hours&quot;));</font></code></p>
<p><code class="western"> </code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//
Uncomment to set timezone to + 4 hours (you can change 4 to any
number)</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//$row_reading_time
= date(&quot;Y-m-d H:i:s&quot;, strtotime(&quot;$row_reading_time + 4
hours&quot;));</font></code></p>
<p><code class="western"> </code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">echo
'&lt;tr&gt; </font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;'
. $row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif">
. '&lt;/td&gt; </font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;'
. $row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">message</span></font></code><code class="western"><font face="Liberation Serif, serif">
. '&lt;/td&gt; </font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;'
. $row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">sensor_</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif">
. '&lt;/td&gt; </font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;'
. $row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code><code class="western"><font face="Liberation Serif, serif">
. '&lt;/td&gt; </font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;td&gt;'
. $row_</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">r</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">ecorded</span></font></code><code class="western"><font face="Liberation Serif, serif">
. '&lt;/td&gt; </font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;/tr&gt;';</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">}</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$result-&gt;free();</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">}</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$conn-&gt;close();</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">?&gt; </font></code>
</p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;/table&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;/body&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;/html&gt;</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">4<code class="western"><font face="Liberation Serif, serif">Plotting
of data from </font></code><code class="western"><font face="Liberation Serif, serif">MariaDB/MySQL
database</font></code></h1>
<p><code class="western"><a href="https://randomnerdtutorials.com/visualize-esp32-esp8266-sensor-readings-from-anywhere/"><font face="Liberation Serif, serif">https://randomnerdtutorials.com/visualize-esp32-esp8266-sensor-readings-from-anywhere/</font></a></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
nano /var/www/html/esp-</font></code><code class="western"><font face="Liberation Serif, serif">chart</font></code><code class="western"><font face="Liberation Serif, serif">.php</font></code></p>
<h2 class="western">4.1<code class="western"><font face="Liberation Serif, serif">esp-chart.php</font></code></h2>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;!--</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Rui
Santos</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Complete
project details at https://RandomNerdTutorials.com</font></code></p>
<p><code class="western"> </code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Permission
is hereby granted, free of charge, to any person obtaining a copy</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">of
this software and associated documentation files.</font></code></p>
<p><code class="western"> </code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">The
above copyright notice and this permission notice shall be included
in all</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">copies
or substantial portions of the Software.</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">--&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;?php</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$servername
= &quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">192.168.178.25</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;;</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">//
REPLACE with your Database name</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$dbname
= &quot;</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">test_arduino</span></font></code><code class="western"><font face="Liberation Serif, serif">&quot;;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">//
REPLACE with Database user</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">$username
= &quot;</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">admin3</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">&quot;;</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">//
REPLACE with Database user password</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">$password
= &quot;</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">pi</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">&quot;;</span></font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">//
Create connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$conn =
new mysqli($servername, $username, $password, $dbname);</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">//
Check connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">if
($conn-&gt;connect_error) {</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">die(&quot;Connection
failed: &quot; . $conn-&gt;connect_error);</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">} </font></code>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$sql =
&quot;SELECT </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">message,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">sensor_</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value_h</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">,
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">
FROM </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">hello_sensor
</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">WHERE
sensor_num = 0</span></font></code><code class="western"><font face="Liberation Serif, serif">
ORDER BY </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">num</span></font></code><code class="western"><font face="Liberation Serif, serif">
DESC limit 40&quot;;</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$result
= $conn-&gt;query($sql);</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">while
($data = $result-&gt;fetch_assoc()){</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$sensor_data[]
= $data;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">}</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">
= array_column($sensor_data, '</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">');</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">//
******* Uncomment to convert readings time array to your timezone
********</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">/*$i =
0;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">foreach
($readings_time as $reading){</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//
Uncomment to set timezone to - 1 hour (you can change 1 to any
number)</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$readings_time[$i]
= date(&quot;Y-m-d H:i:s&quot;, strtotime(&quot;$reading - 1
hours&quot;));</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//
Uncomment to set timezone to + 4 hours (you can change 4 to any
number)</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//$readings_time[$i]
= date(&quot;Y-m-d H:i:s&quot;, strtotime(&quot;$reading + 4
hours&quot;));</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">$i
+= 1;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">}*/</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code><code class="western"><font face="Liberation Serif, serif">
= json_encode(array_reverse(array_column($sensor_data, '</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code><code class="western"><font face="Liberation Serif, serif">')),
JSON_NUMERIC_CHECK);</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value_</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">h</span></font></code><code class="western"><font face="Liberation Serif, serif">
= json_encode(array_reverse(array_column($sensor_data, '</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value_</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">h</span></font></code><code class="western"><font face="Liberation Serif, serif">')),
JSON_NUMERIC_CHECK);</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">
= json_encode(array_reverse($</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">),
JSON_NUMERIC_CHECK);</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">/*echo
$value1;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">echo
$value2;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">echo
$value3;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">echo
$reading_time;*/</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$result-&gt;free();</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$conn-&gt;close();</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">?&gt;</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;!DOCTYPE
html&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;html&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;meta
name=&quot;viewport&quot; content=&quot;width=device-width,
initial-scale=1&quot;&gt;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;script
src=&quot;https://code.highcharts.com/highcharts.js&quot;&gt;&lt;/script&gt;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;style&gt;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">body
{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">min-width:
310px;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif"> max-width:
1280px;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif"> height:
500px;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">margin:
0 auto;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">}</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">h2
{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">font-family:
Arial;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">font-size:
2.5rem;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">text-align:
center;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">}</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;/style&gt;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;body&gt;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;h2&gt;ESP
Weather Station&lt;/h2&gt;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;div
id=&quot;chart-temperature&quot; class=&quot;container&quot;&gt;&lt;/div&gt;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&lt;div
id=&quot;chart-humidity&quot; class=&quot;container&quot;&gt;&lt;/div&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;script&gt;</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">var
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code><code class="western"><font face="Liberation Serif, serif">
= &lt;?php echo $</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code><code class="western"><font face="Liberation Serif, serif">;
?&gt;;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">var
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value_</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">h</span></font></code><code class="western"><font face="Liberation Serif, serif">
= &lt;?php echo $</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value_</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">h</span></font></code><code class="western"><font face="Liberation Serif, serif">;
?&gt;;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">var
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">
= &lt;?php echo $</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code><code class="western"><font face="Liberation Serif, serif">;
?&gt;;</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">var
chartT = new Highcharts.Chart({</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">chart:{
renderTo : 'chart-temperature' },</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">title:
{ text: 'BME280 Temperature' },</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">series:
[{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">showInLegend:
false,</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">data:
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value</span></font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">}],</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">plotOptions:
{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">line:
{ animation: false,</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">dataLabels:
{ enabled: true }</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">},</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">series:
{ color: '#059e8a' }</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">},</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">xAxis:
{ </font></code>
</p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">type:
'datetime',</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">categories:
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">},</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">yAxis:
{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">title:
{ text: 'Temperature (Celsius)' }</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//title:
{ text: 'Temperature (Fahrenheit)' }</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">},</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">credits:
{ enabled: false }</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">});</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">var
chartH = new Highcharts.Chart({</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">chart:{
renderTo:'chart-humidity' },</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">title:
{ text: 'BME280 Humidity' },</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">series:
[{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">showInLegend:
false,</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">data:
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">value_</span></font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">h</span></font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">}],</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">plotOptions:
{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">line:
{ animation: false,</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">dataLabels:
{ enabled: true }</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">}</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">},</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">xAxis:
{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">type:
'datetime',</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">//dateTimeLabelFormats:
{ second: '%H:%M:%S' },</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">categories:
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">recorded</span></font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">},</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">yAxis:
{</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">title:
{ text: 'Humidity (%)' }</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">},</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">credits:
{ enabled: false }</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">});</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;/script&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;/body&gt;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&lt;/html&gt;</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">5<code class="western"><font face="Liberation Serif, serif">Using
canvas.js</font></code></h1>
<p><code class="western"><a href="https://canvasjs.com/php-charts/multiseries-chart/"><font face="Liberation Serif, serif">https://canvasjs.com/php-charts/multiseries-chart/</font></a></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">6<code class="western"><font face="Liberation Serif, serif">External
access to LAMP server</font></code></h1>
<p><code class="western"><font face="Liberation Serif, serif">port 22
(ssh), port 80 (http)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><a href="https://raspberrypi.stackexchange.com/questions/105080/how-to-remote-to-raspberry-pi-from-outside-local-network"><font face="Liberation Serif, serif">https://raspberrypi.stackexchange.com/questions/105080/how-to-remote-to-raspberry-pi-from-outside-local-network</font></a></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><a href="https://howtoraspberrypi.com/enable-mysql-remote-connection-raspberry-pi/"><font face="Liberation Serif, serif">https://howtoraspberrypi.com/enable-mysql-remote-connection-raspberry-pi/</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Configure
MySQL to accept external connections to Raspberry Pi</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
nano /etc/mysql/my.cnf</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">#bind-address
= 127.0.0.1 </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">&lt;&lt;&lt;&lt;&lt;
comment the line bind-address</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">optionall</font></code><code class="western"><font face="Liberation Serif, serif">y
</font></code><code class="western"><font face="Liberation Serif, serif">m</font></code><code class="western"><font face="Liberation Serif, serif">odify
the MySQL port </font></code><code class="western"><font face="Liberation Serif, serif">to
reduce risk of attacks, e.g.</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">port =
8457</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif">/etc/init.d/mysql
restart</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">7<code class="western"><font face="Liberation Serif, serif">RasPi
as Samba server</font></code></h1>
<p><code class="western"><a href="https://aallan.medium.com/adding-an-external-disk-to-a-raspberry-pi-and-sharing-it-over-the-network-5b321efce86a"><font face="Liberation Serif, serif">https://aallan.medium.com/adding-an-external-disk-to-a-raspberry-pi-and-sharing-it-over-the-network-5b321efce86a</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">SMB is
the best protocol for use on multiple platforms due to superior
interoperability</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">in case
of issue “chown: changing ownership of '...': Operation not
permitted”:</font></code></p>
<p><code class="western"><a href="https://stackoverflow.com/questions/25559700/chown-command-returning-operation-not-permitted"><font face="Liberation Serif, serif">https://stackoverflow.com/questions/25559700/chown-command-returning-operation-not-permitted</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">get
uid:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ cat
/etc/passwd |grep pi</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">get
gid:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">cat
/etc/group |grep pi</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Give
pi:pi access to the entire /</font></code><code class="western"><font face="Liberation Serif, serif">mnt/usb</font></code><code class="western"><font face="Liberation Serif, serif">
mount:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
mount -o remount,gid=</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">&lt;pi's
gid&gt;</span></font></code><code class="western"><font face="Liberation Serif, serif">,uid=</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">&lt;pi's
uid&gt;</span></font></code><code class="western"><font face="Liberation Serif, serif">
/mnt/usb</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">Attention:
</font></code><code class="western"><font face="Liberation Serif, serif">FAT
file system doesn't support such permissions, so they can't be
applied after the drive is mounted</font></code></p>
<p><code class="western"><a href="https://raspberrypi.stackexchange.com/questions/40408/how-to-change-permissions-on-external-hard-drive-connected-to-raspberry"><font face="Liberation Serif, serif">https://raspberrypi.stackexchange.com/questions/40408/how-to-change-permissions-on-external-hard-drive-connected-to-raspberry</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Instead,
drive should be formatted with pi user </font></code><code class="western"><font face="Liberation Serif, serif">and/or
ntfs file sstem</font></code><code class="western"><font face="Liberation Serif, serif">?</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">Mounting
USB drive </font></code><code class="western"><font face="Liberation Serif, serif">that
is</font></code><code class="western"><font face="Liberation Serif, serif"><b>
</b></font></code><code class="western"><font face="Liberation Serif, serif"><b>NTFS</b></font></code><code class="western"><font face="Liberation Serif, serif"><b>???-</b></font></code><code class="western"><font face="Liberation Serif, serif">formatted</font></code><code class="western"><font face="Liberation Serif, serif">
under specific name:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
</font></code><code class="western"><font face="Liberation Serif, serif">fdisk
-l</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
umount </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">/dev/sda1</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
mkdir /mnt/usb</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
chown -R pi:pi /mnt/usb</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">seems
like this command has to be used each time the usb drive is
connected: </font></code><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: transparent">sudo
mount /dev/sda1 /mnt/usb -o uid=pi,gid=pi</span></font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">append
following text to this file for automatic mounting under the
specified path:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
nano </font></code><code class="western"><font face="Liberation Serif, serif">/etc/fstab</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">/dev/sda1
/mnt/usb auto defaults,user 0 1</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">OR:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">/dev/sda1 /mnt/usb </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">ntfs-3g</span></font></code><code class="western"><font face="Liberation Serif, serif">
defaults,user,uid=</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">1000</span></font></code><code class="western"><font face="Liberation Serif, serif">,gid=</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">1000</span></font></code><code class="western"><font face="Liberation Serif, serif">,noatime 0 0</font></code></p>
<p><code class="western"><a href="https://raspberrypi.stackexchange.com/questions/40408/how-to-change-permissions-on-external-hard-drive-connected-to-raspberry"><font face="Liberation Serif, serif">https://raspberrypi.stackexchange.com/questions/40408/how-to-change-permissions-on-external-hard-drive-connected-to-raspberry</font></a></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">Make
the drive accessible from the network </font></code><code class="western"><font face="Liberation Serif, serif">by
adding following text</font></code><code class="western"><font face="Liberation Serif, serif">:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
apt-get install samba samba-common-bin</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
nano /etc/samba/smb.conf</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">[share]</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Comment</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">
= Shared Folder</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">Path
= /mnt/usb</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Browseable
= yes</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Writeable
= Yes</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">only
guest = no</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">create
mask = 0777</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">directory
mask = 0777</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Public
= yes</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Guest
ok = yes</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">$ chmod
1777 </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">/mnt/usb
</span></font></code><code class="western"><font face="Liberation Serif, serif"><b><span style="background: #ffff00">&lt;&lt;&lt;&lt;
the uSB should be mounted under this name</span></b></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ sudo
/etc/init.d/samba restart</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
service smbd restart</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
service smbd status</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><a href="https://www.raspberrypi.org/forums/viewtopic.php?t=56149"><font face="Liberation Serif, serif">https://www.raspberrypi.org/forums/viewtopic.php?t=56149</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
df</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">cd
/media</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
mkdir HDD</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
nano /etc/fstab</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">/dev/sda1
/media/HDD ntfs-3g defaults,noatime 0 0</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ cp
/etc/samba/smb.conf /etc/samba/smb.conf.bak //Make a backup of the
config file</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">nano
/etc/samba/smb.conf</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">[media]
</font></code>
</p>
<p><code class="western"><font face="Liberation Serif, serif">comment
= Media share</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">path =
/media/HDD</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">valid
users = @users</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">force
group = users</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">create
mask = 0660</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">directory
mask = 0771</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">read
only = no</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
service samba restart</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
useradd ChooseUsernameHere -m -G users</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
passwd TheChosenUsername //after this choose a password for the new
user</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
smbpasswd -a TheChosenUsername //after this enter passwd again</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;
</font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">userA pi</span></font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">mount
in Win10/Linux/etc. </font></code><code class="western"><font face="Liberation Serif, serif">a</font></code><code class="western"><font face="Liberation Serif, serif">s
</font></code><code class="western"><font face="Liberation Serif, serif">smb://192.</font></code><code class="western"><font face="Liberation Serif, serif">1</font></code><code class="western"><font face="Liberation Serif, serif">68.178.25/</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><a href="https://raspberrytips.com/format-mount-usb-drive/"><font face="Liberation Serif, serif">https://raspberrytips.com/format-mount-usb-drive/</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">Formatting
USB stick with RasPi:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
fdisk -l</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
fdisk /dev/sda</font></code><code class="western"><font face="Liberation Serif, serif">1</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Create
a new partition table : g (for GPT, use help for other format)</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Create
a new partition : n</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">You
can keep the default values for a single partition</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">Confirm
with Y to remove the signature</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">And
finally write and exit fdisk: w</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
mkfs.ext4 /dev/sda1<br/>
</font></code><code class="western"><font face="Liberation Serif, serif">OR:
$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
mkfs.vfat /dev/sda1<br/>
</font></code><code class="western"><font face="Liberation Serif, serif">OR:
$ </font></code><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">sudo
mkfs.ntfs /dev/sda1</span></font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"><a href="https://thepihut.com/blogs/raspberry-pi-tutorials/17699796-formatting-and-mounting-a-usb-drive-from-a-terminal-window"><font face="Liberation Serif, serif">https://thepihut.com/blogs/raspberry-pi-tutorials/17699796-formatting-and-mounting-a-usb-drive-from-a-terminal-window</font></a></code></p>
<p><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">$
</span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">sudo
mkfs -t vfat -I /dev/sd</span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">a</span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">1</span></font></font></code></p>
<p><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">$
</span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">sudo
mount /dev/sd</span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">a</span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">1
/</span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">mnt/u</span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="font-style: normal"><span style="background: #ffffff">sb</span></span></font></font></code><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">
-o umask=000</span></font></font></code></p>
<p><code class="western"><font color="#444444"><font face="Liberation Serif, serif"><span style="background: #ffffff">$
sudo umount /mnt/usb</span></font></font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">8<code class="western"><font face="Liberation Serif, serif">Filtering
rows with SQL</font></code></h1>
<p><code class="western"><a href="https://chartio.com/blog/simple-sql-filtering-rows/"><font face="Liberation Serif, serif">https://chartio.com/blog/simple-sql-filtering-rows/</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">SELECT
column_name1, column_name2</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">FROM
table_name</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">WHERE
column_name1 operator value;</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">SELECT
*</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">FROM
hello_sensor</span></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">WHERE
sensor_num = 0 </span></font></code>
</p>
<p><code class="western"><font face="Liberation Serif, serif"><span style="background: #ffff00">ORDER
BY `hello_sensor`.`recorded` DESC</span></font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">9<code class="western"><font face="Liberation Serif, serif">P</font></code><code class="western"><font face="Liberation Serif, serif">ython
MySQL</font></code></h1>
<h2 class="western">9.1<code class="western"><font face="Liberation Serif, serif">Python
MySQL Querying Data</font></code></h2>
<p><code class="western"><a href="https://stackoverflow.com/questions/44634810/fastest-way-to-fetch-table-from-mysql-into-pandas"><font face="Liberation Serif, serif">https://stackoverflow.com/questions/44634810/fastest-way-to-fetch-table-from-mysql-into-pandas</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">MyEngine=create_engine('[YourDatabase]://[User]:[Pass]@[Host]/[DatabaseName]',
echo = True)</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><b>Downloading:</b></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">df =
pd.read_sql_query('select * from [TableName]', con= MyEngine)</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif"><b>Uploading:</b></font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">df.to_sql([TableName],
MyEngine, if_exists = 'append', index=False)</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h2 class="western">9.2<code class="western"><font face="Liberation Serif, serif">Using
</font></code><code class="western"><font face="Liberation Serif, serif">mysql
</font></code><code class="western"><font face="Liberation Serif, serif">module</font></code></h2>
<p><code class="western"><a href="https://www.mysqltutorial.org/python-mysql-query/"><font face="Liberation Serif, serif">https://www.mysqltutorial.org/python-mysql-query/</font></a></code></p>
<p><code class="western"><a href="https://www.codespeedy.com/fetch-data-from-mysql-table-in-python-program/"><font face="Liberation Serif, serif">https://www.codespeedy.com/fetch-data-from-mysql-table-in-python-program/</font></a></code></p>
<p><code class="western"><a href="https://www.krazyprogrammer.com/2020/11/fetch-and-display-data-from-mysql-using.html"><font face="Liberation Serif, serif">https://www.krazyprogrammer.com/2020/11/fetch-and-display-data-from-mysql-using.html</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">pip
install mysql-connector</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><a href="https://www.tutorialspoint.com/python_mysql/python_mysql_select_data.htm"><font face="Liberation Serif, serif">https://www.tutorialspoint.com/python_mysql/python_mysql_select_data.htm</font></a></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">import
mysql.connector</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#establishing
the connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">conn =
mysql.connector.connect(</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">user='</font></code><code class="western"><font face="Liberation Serif, serif">admin3</font></code><code class="western"><font face="Liberation Serif, serif">',
password='</font></code><code class="western"><font face="Liberation Serif, serif">pi</font></code><code class="western"><font face="Liberation Serif, serif">',
host='192.168.178.25', database='</font></code><code class="western"><font face="Liberation Serif, serif">test_arduino</font></code><code class="western"><font face="Liberation Serif, serif">'</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Creating
a cursor object using the cursor() method</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">cursor
= conn.cursor()</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Retrieving
single row</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">quer</font></code><code class="western"><font face="Liberation Serif, serif">y</font></code><code class="western"><font face="Liberation Serif, serif">
= '''SELECT * from </font></code><code class="western"><font face="Liberation Serif, serif">hello_sensor</font></code><code class="western"><font face="Liberation Serif, serif">'''</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Executing
the query</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">cursor.execute(</font></code><code class="western"><font face="Liberation Serif, serif">quer</font></code><code class="western"><font face="Liberation Serif, serif">y</font></code><code class="western"><font face="Liberation Serif, serif">)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Fetching
1st row from the table</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">result
= cursor.fetchone();</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">print(result)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Fetching
</font></code><code class="western"><font face="Liberation Serif, serif">first
two</font></code><code class="western"><font face="Liberation Serif, serif">
row</font></code><code class="western"><font face="Liberation Serif, serif">s</font></code><code class="western"><font face="Liberation Serif, serif">
from the table</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">result
= cursor.fetchmany(size=2);</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">print(result)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Fetching
</font></code><code class="western"><font face="Liberation Serif, serif">all</font></code><code class="western"><font face="Liberation Serif, serif">
row</font></code><code class="western"><font face="Liberation Serif, serif">s</font></code><code class="western"><font face="Liberation Serif, serif">
from the table</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">result
= cursor.fetchall();</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">print(result)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Closing
the connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">conn.close()</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h2 class="western">9.3<code class="western"><font face="Liberation Serif, serif">Create
table</font></code></h2>
<p><code class="western"><a href="https://www.tutorialspoint.com/python_mysql/python_mysql_create_table.htm"><font face="Liberation Serif, serif">https://www.tutorialspoint.com/python_mysql/python_mysql_create_table.htm</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">import
mysql.connector</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#establishing
the connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">conn =
mysql.connector.connect(</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">user='root',
password='password', host='127.0.0.1', database='mydb'</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Creating
a cursor object using the cursor() method</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">cursor
= conn.cursor()</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Dropping
EMPLOYEE table if already exists.</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">cursor.execute(&quot;DROP
TABLE IF EXISTS EMPLOYEE&quot;)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Creating
table as per requirement</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sql
='''CREATE TABLE EMPLOYEE(</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">FIRST_NAME
CHAR(20) NOT NULL,</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">LAST_NAME
CHAR(20),</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">AGE
INT,</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">SEX
CHAR(1),</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">INCOME
FLOAT</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">)'''</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">cursor.execute(sql)</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">#Closing
the connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">conn.close()</font></code></p>
<p><br/>
<br/>
</p>
<h2 class="western">9.4<code class="western"><font face="Liberation Serif, serif">Insert
data</font></code></h2>
<p><code class="western"><a href="https://www.tutorialspoint.com/python_mysql/python_mysql_insert_data.htm"><font face="Liberation Serif, serif">https://www.tutorialspoint.com/python_mysql/python_mysql_insert_data.htm</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">import
mysql.connector</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">#establishing
the connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">conn =
mysql.connector.connect(</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">user='root',
password='password', host='127.0.0.1', database='mydb'</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">)</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">#Creating
a cursor object using the cursor() method</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">cursor
= conn.cursor()</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">#
Preparing SQL query to INSERT a record into the database.</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">insert_stmt
= (</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&quot;INSERT
INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)&quot;</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">&quot;VALUES
(%s, %s, %s, %s, %s)&quot;</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">)</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">data =
('Ramya', 'Ramapriya', 25, 'F', 5000)</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">try:</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">#
Executing the SQL command</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">cursor.execute(insert_stmt,
data)</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">#
Commit your changes in the database</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">conn.commit()</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">except:</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">#
Rolling back in case of error</font></code></p>
<p><code class="western"> </code><code class="western"><font face="Liberation Serif, serif">conn.rollback()</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">#
Closing the connection</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">conn.close()</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">10<code class="western"><font face="Liberation Serif, serif">Schedule
periodic RasPi reboot</font></code></h1>
<p><code class="western"><a href="https://raspberrypi.stackexchange.com/questions/2150/how-do-i-reboot-at-a-specific-time"><font face="Liberation Serif, serif">https://raspberrypi.stackexchange.com/questions/2150/how-do-i-reboot-at-a-specific-time</font></a></code></p>
<p><code class="western"><a href="https://smarthomepursuits.com/how-to-reboot-raspberry-pi-on-a-schedule/"><font face="Liberation Serif, serif">https://smarthomepursuits.com/how-to-reboot-raspberry-pi-on-a-schedule/</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
crontab -e</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&gt;&gt;&gt;&gt;&gt;
choose nano editor</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">&gt;&gt;&gt;&gt;&gt;
enter following command at end of file for </font></code><code class="western"><font face="Liberation Serif, serif">daily
</font></code><code class="western"><font face="Liberation Serif, serif">reboot
at 13:03:</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">03 13 *
* * /sbin/shutdown -r now</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">Check
time in Linux commandline:</font></code></p>
<p><code class="western"><a href="https://www.lifewire.com/display-date-time-using-linux-command-line-4032698"><font face="Liberation Serif, serif">https://www.lifewire.com/display-date-time-using-linux-command-line-4032698</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ date</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">11<code class="western"><font face="Liberation Serif, serif">Install
KeePass</font></code></h1>
<p><code class="western"><a href="https://keepass.info/download.html"><font face="Liberation Serif, serif">https://keepass.info/download.html</font></a></code></p>
<p><code class="western"><a href="https://sourceforge.net/p/keepass/discussion/329220/thread/17d1bd26/"><font face="Liberation Serif, serif">https://sourceforge.net/p/keepass/discussion/329220/thread/17d1bd26/</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
apt-add-repository ppa:jtaylor/keepass</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
apt-get update</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
apt-get install keepass2 </font></code>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">12<code class="western"><font face="Liberation Serif, serif">Clean</font></code><code class="western"><font face="Liberation Serif, serif">
the repository of downloaded packages</font></code></h1>
<p><code class="western"><a href="https://askubuntu.com/questions/634820/how-can-i-delete-ubuntu-temp-files-which-are-created-during-software-installatio"><font face="Liberation Serif, serif">https://askubuntu.com/questions/634820/how-can-i-delete-ubuntu-temp-files-which-are-created-during-software-installatio</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
</font></code><code class="western"><font face="Liberation Serif, serif">apt-get
autoclean</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
</font></code><code class="western"><font face="Liberation Serif, serif">apt-get
clean</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">13<code class="western"><font face="Liberation Serif, serif">cleanup
a /var/log/journal in Linux</font></code></h1>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">How to
tell how much space is being taken?</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif">journalctl
--disk-usage</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><font face="Liberation Serif, serif">Fix:
Option 3 (RECOMMENDED!):</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$
journalctl --vacuum-size=500M</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">This
will delete old log files until the directory reaches the threshold
size stipulated, in our case, 500M.</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<h1 class="western">14<code class="western"><font face="Liberation Serif, serif">Change
permission of mounted drive</font></code></h1>
<p style="line-height: 100%; margin-bottom: 0in"><code class="western"><font face="Liberation Serif, serif">$
</font></code><code class="western"><font face="Liberation Serif, serif">sudo
chmod -R 770 /media/bora/Medien</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">sudo
mount -o rw,remount /</font></code><code class="western"><font face="Liberation Serif, serif">media/bora/Medien</font></code></p>
<p><br/>
<br/>
</p>
<p><code class="western"><a href="https://askubuntu.com/questions/948416/changing-ownership-of-read-only-file-system-i-cant-move-delete-rename-any-f"><font face="Liberation Serif, serif">https://askubuntu.com/questions/948416/changing-ownership-of-read-only-file-system-i-cant-move-delete-rename-any-f</font></a></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">mount
-v | grep &quot;^/&quot; | awk '{print &quot;\nPartition identifier:
&quot; $1 &quot;\n Mountpoint: &quot; $3}'</font></code></p>
<p><code class="western"><font face="Liberation Serif, serif">$ </font></code><code class="western"><font face="Liberation Serif, serif">sudo
mount -o remount,rw /</font></code><code class="western"><font face="Liberation Serif, serif">dev/sda5</font></code><code class="western"><font face="Liberation Serif, serif">
/</font></code><code class="western"><font face="Liberation Serif, serif">media/bora/Medien</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><code class="western"></code><code class="western"><font face="Liberation Serif, serif">If
you are on a dual boot system and getting the error related to the
read-only file system. One probable cause could be that your other
system is not correctly shut down and might be in hibernation or
sleep. So login to that system and shut it down properly and religion
to your Linux system. this resolved the issue in my system”</font></code></p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p><br/>
<br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
<p style="line-height: 100%; margin-bottom: 0in"><br/>
</p>
</body>
</html>