Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/JAlcocerT/RPi
Browse files Browse the repository at this point in the history
  • Loading branch information
JAlcocerT committed Dec 13, 2023
2 parents b7a7ce2 + 214b893 commit 0398f9f
Show file tree
Hide file tree
Showing 5 changed files with 202 additions and 2 deletions.
178 changes: 178 additions & 0 deletions _posts/2023-12-11-rpi-gps-superset.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
---
title: RPi IoT Project - GPS Data (VK-162) with Apache Superset
author: JAlcocerT
date: 2023-12-11 00:10:00 +0800
categories: [IoT & Data Analytics]
tags: [Sensors,Python,MongoDB]
image:
path: /img/superset.png
alt: IoT Project with Python, MongoDB, DHT11/22 sensors and Metabase.
render_with_liquid: false

---


## ToDo list

- [ ] Job Done!
+ [ ] Setup BI - Superset
+ [ ] Hardware Checks
+ [ ] Connecting everything


## Apache Superset Setup

Apache Superset is a [Free BI Web Tool](https://superset.apache.org/docs/intro/) that we can [use with our RPi projects locally](https://superset.apache.org/docs/installation/installing-superset-using-docker-compose/).


```sh
git clone https://github.com/apache/superset.git
cd superset

docker compose -f docker-compose-non-dev.yml up -d

#git checkout 3.0.0
#TAG=3.0.0 docker compose -f docker-compose-non-dev.yml up
```

Then, just use Superset with its UI at: **http://localhost:8088/login/**

![Desktop View](/img/superset-working.png){: width="972" height="589" }
_DHT22 connection to a Raspberry Pi 4_

*Default credentials are: admin/admin*

- [ ] Job Done!
+ [x] Setup BI - Superset
+ [ ] Hardware Checks
+ [ ] Connecting everything


## Sensors

* VK-162
* Columbus V-800 + [gpsd-gps](https://gpsd.io/) client
* BY-353 USB GPS


## FAQ

### Apache SupetSet with Portainer

This is the Stack in case that you can to deploy Superset with Portainer:

```yml
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset:${TAG:-latest-dev}
x-superset-depends-on: &superset-depends-on
- db
- redis
x-superset-volumes:
&superset-volumes # /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
- ./docker:/app/docker
- superset_home:/app/superset_home

version: "3.7"
services:
redis:
image: redis:7
container_name: superset_cache
restart: unless-stopped
volumes:
- redis:/data

db:
env_file: docker/.env-non-dev
image: postgres:14
container_name: superset_db
restart: unless-stopped
volumes:
- db_home:/var/lib/postgresql/data
- ./docker/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d

superset:
env_file: docker/.env-non-dev
image: *superset-image
container_name: superset_app
command: ["/app/docker/docker-bootstrap.sh", "app-gunicorn"]
user: "root"
restart: unless-stopped
ports:
- 8088:8088
depends_on: *superset-depends-on
volumes: *superset-volumes

superset-init:
image: *superset-image
container_name: superset_init
command: ["/app/docker/docker-init.sh"]
env_file: docker/.env-non-dev
depends_on: *superset-depends-on
user: "root"
volumes: *superset-volumes
healthcheck:
disable: true

superset-worker:
image: *superset-image
container_name: superset_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file: docker/.env-non-dev
restart: unless-stopped
depends_on: *superset-depends-on
user: "root"
volumes: *superset-volumes
healthcheck:
test:
[
"CMD-SHELL",
"celery -A superset.tasks.celery_app:app inspect ping -d celery@$$HOSTNAME",
]

superset-worker-beat:
image: *superset-image
container_name: superset_worker_beat
command: ["/app/docker/docker-bootstrap.sh", "beat"]
env_file: docker/.env-non-dev
restart: unless-stopped
depends_on: *superset-depends-on
user: "root"
volumes: *superset-volumes
healthcheck:
disable: true

volumes:
superset_home:
external: false
db_home:
external: false
redis:
external: false
```
### Apache Supserset DS's and API
* Data Sources: <https://superset.apache.org/docs/databases/db-connection-ui>
* API info: <https://superset.apache.org/docs/api>
### PhyPhox
* You can also save GPS data thanks to the [F/OSS PhyPhox](https://github.com/phyphox/phyphox-android) - An app that allow us to use phone's sensors for physics experiments:
* Also available for [ESP32 with micropython](https://github.com/phyphox/phyphox-micropython)
* And [also for Arduino](https://github.com/phyphox/phyphox-arduino)
26 changes: 24 additions & 2 deletions _tabs/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,34 @@ This Web is generated by the content posted publically on **[https://github.com/

Please feel free to copy, modify, distribute and suggest any further improvements on the content.

* In this web there are several mentions to other of my public guides about:
* In this web there are several mentions to other of **my public guides** about:
* Linux: <https://jalcocert.github.io/Linux/>
* Docker: <https://github.com/JAlcocerT/Docker>


> If you found any of the content useful and want to **support this project**, you can do it [here](https://ko-fi.com/jalcocertech).
{: .prompt-tip }

Want to take your IoT Knowledge to the next level? You can also get my [**IoT in Data Analytics eBook**](https://ko-fi.com/s/86175d7928)
Want to take your IoT Knowledge to the next level? You can also get my [**IoT in Data Analytics eBook** 📘](https://ko-fi.com/s/86175d7928).

It will mean a lot to me ❤️ + it will send the signal that content like this is useful to you.

## FAQ

### Where can I learn more about RPi?

Internet is a great place to learn for free.

But even better is to create projects with what you learn, specially if you start creating new puzzles with separate piezes of information.

I have taken many ideas from the following sources (and many more):

* <https://ugeek.github.io/>
* <https://www.youtube.com/@DBTechYT>
* <https://www.youtube.com/@TechWithTim>
* <https://www.youtube.com/@PeladoNerd>
* <https://www.youtube.com/@TechWorldwithNana>
* <https://www.youtube.com/@Jims-Garage>
* <https://www.youtube.com/@AwesomeOpenSource>
* <https://wiki.opensourceisawesome.com/>
* <https://www.linuxfordevices.com/>
Binary file added img/superset-login.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/superset-working.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/superset.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 0398f9f

Please sign in to comment.