# 🚨 Glide working as GUI for IIoT projects

**URL:** <https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367>\
**Category:** Project Showcase\
**Created:** [May 4, 2023, 10:52pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367 "2023-05-04T22:52:52Z")\
**Posts on this page:** 17\
**Page:** 1

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [May 4, 2023, 10:52pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/1 "2023-05-04T22:52:52Z")

</div>

Hi everyone!

Most of you know my love for real-time applications and industrial process monitoring. Taking advantage of the fact that Glide has improved its capabilities and has powerful new tools, I made a new demo to simulate a small SCADA system to monitor 18 variables (I/O signals) .

My laptop simulates values from my virtual Factory (pressure, temperature, status ON/OFF, etc) and using a software working as “IoT Gateway” I can collect the data associated to my 18 variables and log all this to a Google Sheet every 30 sec.

Later, my App reads that data constantly via Google Sheet API calls (no automatic or manual Glide updates, I mean my app doesn’t consume Glide’s update quota) and any user can monitor the factory process regularly in a safe manner.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/8/5/85f7983bb84c88dca96ab58bd752995742cbfe4f.jpeg)

You will able to see how the devices’ data change every 30 sec on screens automatically while you monitor or analyze how the factory is working. Although I set the data update to 30 seconds, I could have set it to 10 seconds (faster) but I didn’t want to force a situation that is not normally intended for this type of solution.

A system like it can have an update rate every 3, 5, 10 min (or more) depending on the process to be controlled.

The APP has some technical tricks and advance animations/chart to help users to understand the data and the process (well… I hope so! 🥴)

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/2/a/2ac79dc6ce91701ade934a20e47b8e1e6a0fa985.jpeg)

I made a little video as trailer and help, you can watch it here [Loom | Free Screen & Video Recording Software | Loom](https://www.loom.com/share/f0bda76539354f599fc18097a6e27cf7)

And of course, anyone can test my demo clicking on **[https://myfactory.glide.page](https://myfactory.glide.page)**

Thanks in advance for testing my idea.

Gracias y feliz día!

* * *

* * *

**Some caveats to keep in mind, please:**

- My laptop and my IoT gateway (a software) work as a data simulator so thy must be on obviously. **I’m going to keep my laptop ON and running as much as I can**. If there is any failure regarding data updating, probably the cause is generated by my internet or my laptop was shutdown… sorry!

- The APP has a better view working on desktop. Unfortunately, using a phone doesn’t look like very well.

- My APP or idea is not perfect, so any suggestion or clever idea to improve it is welcome.

- In a real scenario, my devices (sensors, PLC, SCADA, IoT devices, etc.) may be sending their data to my data source directly on a web or my IoT gateway works as a single data collector and sends all to my data source (Google Sheet or other database) in a synchronized way.

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [May 4, 2023, 11:21pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/2 "2023-05-04T23:21:34Z")

</div>

Nice! You can add the current date to the fetch parameters… and it will update it every 10 seconds 😉  
The charts are super cool! And gages… super extra cool!!!

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [May 5, 2023, 12:53am UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/3 "2023-05-05T00:53:49Z")

</div>

Thanks for testing!

> [@Uzo](#):
>
> You can add the current date to the fetch parameters… and it will update it every 10 seconds

yes, you are right. I know and use that trick as well: the “t” parameter

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/5/e/5e989e30514857c6dd6e943e57d2e99ed44d82f1.png)

The APP is reading and making API requests every 10 sec although my data is changing and being saved every 30 sec. I left that function to test how the app works for days (abusing this) and so far the performance is still normal.  
I will fix it once I get a real customer with a real process in order to avoid unnecessary API calls.

Gracias de nuevo!

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [May 5, 2023, 12:57am UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/4 "2023-05-05T00:57:48Z")

</div>

You can make a lot of API calls… don’t worry about that 😉  
You can make 300 per minute… so 50 users at the same time using your App…  
And if you have a Workspace account is 3000 per minute… 10x more for just $12/month

---

<div class="post-metadata">

**Author:** ![Uzo](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/uzo/32/22639_2.png) [@Uzo](https://community.glideapps.com/u/Uzo)\
**Post date:** [May 5, 2023, 1:17am UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/5 "2023-05-05T01:17:19Z")

</div>

BTW, you are covering your LInk in the screenshot… but do you know that everybody can see it? 😉  
Protect your Spreadsheets! I see that you don’t have any sensitive data there… but just to be alert, you left your sheets and scripts wild open…

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [May 5, 2023, 11:44am UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/6 "2023-05-05T11:44:48Z")

</div>

> [@Uzo](#):
>
> You can make 300 per minute… so 50 users at the same time using your App…

Right!!

When I read about these limits given by Google weeks ago to use their Google Sheet API I knew that I had to use and test them and so far, everything works without trauma.

I almost forgot thanking @Jeff_Hager for his help and clever code to create dynamic animations based on HTML. Your idea and code shown [here](https://community.glideapps.com/t/why-are-certain-features-not-available-for-glide-pages/54249/24) generated my animations:

![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/c/f/cf6189cd13f27835d6d798786d33b3590c338bae.png)

Cheers Jeff … que tengas un increíble fin de semana!

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [May 12, 2023, 1:11pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/7 "2023-05-12T13:11:18Z")

</div>

Hi @Bungchow_IDEApps … I think it can be useful for you.

Saludos!

---

<div class="post-metadata">

**Author:** ![Bungchow\_IDEApps](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/bungchow_ideapps/32/49062_2.png) [@Bungchow\_IDEApps](https://community.glideapps.com/u/Bungchow_IDEApps)\
**Post date:** [May 12, 2023, 1:55pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/8 "2023-05-12T13:55:03Z")

</div>

I’m gonna see your app. Thanks @gvalero 👍 👍

---

<div class="post-metadata">

**Author:** ![slscustom.ru](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/slscustom.ru/32/77336_2.png) [@slscustom.ru](https://community.glideapps.com/u/slscustom.ru)\
**Post date:** [January 3, 2024, 9:32pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/9 "2024-01-03T21:32:24Z")

</div>

Hi, gvalero!  
Whats to say? Cool!  
Just i see some proceses are continously taking around 20% percent of my processor just to fetching data, doesn’t matter which tabs.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/b/c/bcf07fc4923868247fbee996aba82a676ab42815.jpeg)  
Could you please tell more, why you need column.sh for?  
Why you use google for storing data? What is main reason? I mean why not some another platform?  
Thanks!

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [January 3, 2024, 11:21pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/10 "2024-01-03T23:21:27Z")

</div>

> [@slscustom.ru](#):
>
> Could you please tell more, why you need column.sh for?

Column.sh is the host for multiple column types in Glide, at least it was the case before 2023.

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/d/f/df77fa071dafe2efdf691393ce8a0b3a44471d6b.png)

I’m not sure if they still use it, but looks like they still do from your screenshot.

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [January 4, 2024, 12:55pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/11 "2024-01-04T12:55:30Z")

</div>

Hola!

Let me come back to my home and I will reply you with further details.

Happy 2024!

---

<div class="post-metadata">

**Author:** ![Myles\_Chaput](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/myles_chaput/32/62176_2.png) [@Myles\_Chaput](https://community.glideapps.com/u/Myles_Chaput)\
**Post date:** [February 15, 2024, 2:15pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/12 "2024-02-15T14:15:24Z")

</div>

Looks very nice! How did you make the gauges? and can the gauges be based off a glide sheet instead?

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [March 3, 2024, 5:43pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/13 "2024-03-03T17:43:57Z")

</div>

Hola @Myles_Chaput , sorry for my long delay.

I’ve been sick and busy these weeks and now I’m trying to make up for my time by enjoying working with Glide and helping people.

My gauges come from Google library (free), you can learn and play with them here: [Visualization: Gauge &nbsp;|&nbsp; Charts &nbsp;|&nbsp; Google for Developers](https://developers.google.com/chart/interactive/docs/gallery/gauge)

What do you mean with:

> _can the gauges be based off a glide sheet instead?_

Are you referring to whether they can work without using the Web Embed component? If so, unfortunately the answer is no.

@slscustom.ru my apologies as well, I hope you are fine!  
Regarding with your questions, here my answers:

> Could you please tell more, why you need column.sh for?

To be honest, I don’t know what process Glide internally uses in their columns, in my demo I use very often the Construct URL and Fetch JSON columns and some JS codes but I don’t have critical issues with my laptop’s CPU or phones.

> Why you use google for storing data? What is main reason?

It’s free and allows me to store enough data for what I’m trying to do/display (historical data). 😉  
If I use GT instead, I would have to use Glide API and each transaction/write will consume one update and within 3-4 days, my quota will be far exceeded. It would be a very expensive and hard solution.

Using a Google Sheet, I can store up to 70k-90k rows and read its data via GS API easily and free every 30 sec or 1 min.

Saludos!

---

<div class="post-metadata">

**Author:** ![Nataliya\_Kovaleva](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nataliya_kovaleva/32/67518_2.png) [@Nataliya\_Kovaleva](https://community.glideapps.com/u/Nataliya_Kovaleva)\
**Post date:** [March 7, 2024, 3:17am UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/14 "2024-03-07T03:17:42Z")

</div>

This is seriously mindblowing to me! 😅  
Especially Google sheet with up to 90k rows workaround that doesn’t cost any updates… I just don’t understand how 🤯  
May I ask you if you can share any tutorials or helpful posts that will elaborate on this capability?  
Much appreciated!

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [March 8, 2024, 1:17am UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/15 "2024-03-08T01:17:46Z")

</div>

> [@Nataliya\_Kovaleva](#):
>
> This is seriously mindblowing to me

Hola Nataliya!

Depending on Google Sheet API version you use, you can have many options to easily retrieve data and almost for free.

Here we talked about it with some additional tips:

> [@How To: CSV Export and send as email](https://community.glideapps.com/t/how-to-csv-export-and-send-as-email/31618/23):
>
> Hola! Playing with the Google Sheets API days ago, I found this useful tip to export your data from GS to a CSV file very easy. All what we need is follow this syntax: [https://spreadsheets.google.com/tq?tqx=out:csv&tq={Query}&key={SpreadsheetKey}&sheet={SheetName}](https://spreadsheets.google.com/tq?tqx=out:csv&tq=%7BQuery%7D&key=%7BSpreadsheetKey%7D&sheet=%7BSheetName%7D) Example: my GS is this and has more than 110k rows and if I apply a query to retrieve 3 columns and 50 rows: select A,B, D where B\>75 and B\<78 limit 50 using this data source URL https://spreadsheets.google.com/tq…

and here you can see and play with GS API v4’s some practical examples to read range values, columns, etc:

> **[Basic reading  |  Google Sheets  |  Google for Developers](https://developers.google.com/sheets/api/samples/reading)**

The plan C could be to use a service like **[Sheet.best](https://docs.sheet.best/#quickstart)** to turn your GS into a REST API and have many options to write/read/update/delete your data for a comfortable fee. I have tested this service before and it very powerful.

Have a nice night, saludos!

---

<div class="post-metadata">

**Author:** ![Nataliya\_Kovaleva](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/nataliya_kovaleva/32/67518_2.png) [@Nataliya\_Kovaleva](https://community.glideapps.com/u/Nataliya_Kovaleva)\
**Post date:** [March 8, 2024, 5:47am UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/16 "2024-03-08T05:47:39Z")

</div>

Thanks a tonnnnn!!! 🤩

---

<div class="post-metadata">

**Author:** ![MartinMolina](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/martinmolina/32/79822_2.png) [@MartinMolina](https://community.glideapps.com/u/MartinMolina)\
**Post date:** [September 21, 2024, 1:03pm UTC](https://community.glideapps.com/t/glide-working-as-gui-for-iiot-projects/61367/17 "2024-09-21T13:03:48Z")

</div>

Excelente!! lo acabo de ver, tengo algunos sensores de arduino que queria visualizar en la App.
