Sponsored Content
Top Forums Programming Wuhan Coronavirus Status App for China - Rapid Prototype using MQTT and the IoT OnOff IOS App Post 303043643 by Neo on Sunday 2nd of February 2020 10:25:57 PM
Old 02-02-2020
With a little bit of work, was able to build a nice "Wuhan Coronavirus Status" app using MQTT and the IoT-OnOff app. More on this technique here:

ESP32 (ESP-WROOM-32) as an MQTT Client Subscribed to Linux Server Load Average Messages

The result turned out nice, I think. I like the look and feel of this app considerably better than other apps I prototyped, and it is much more cost effective (free).

If anyone wants to build such an app like this, please just let me know (post back in this thread) and I will show you how to build this, step-by-step. If you want to you my MQTT server / service, I can make that happen for you as well.

So, in nutshell, you can have this "Wuhan Coronavirus" public service status app working for free, 100% and I assure you, 100% your usage data will be private and never shared with any third party, never under any circumstances. This is public app to help others, not to make money (as many companies seem to forget in times of crisis and look to profit from the misfortunes of others. Not here at unix.com! This app I created has one purpose - to help those who might need this information during a humanitarian crisis. This is how IT should really be used, to help others in times of need and crisis. If one person benefits, I am more than happy enough. I don't need money, fame or fortune from IT.


Wuhan Coronavirus Status App for China - Rapid Prototype using MQTT and the IoT OnOff IOS App-img_0463jpg


Reference to first prototype (retired):

Wuhan Coronavirus Status for China - Rapid Prototype Blynk App with ESP8266

For the next part of this project, I think I will build a Node-RED dashboard app for macOS. I installed Node-RED yesterday when searching for dashboard app, but I need to import the dashboard widgets and set it up to display a dashboard with MQTT data,
This User Gave Thanks to Neo For This Post:
 

5 More Discussions You Might Find Interesting

1. Solaris

luminis app

The guys at SunGard want to charge a lot of $$$$ for installing Luminis and we are trying to see if this can be done without them. Their installation guide provided page #53 ( http://www.luminis.nocccd.edu/documents/Luminis%20IV/lp40000in.pdf ) doesn't really tell you much. All they say is that... (4 Replies)
Discussion started by: ceci1
4 Replies

2. Solaris

Problem with /app

Hi folks, i have a problem with my /app directory on solaris 10.It is mounted under rpool root and sometimes it increase dimension bringing root out of space.I want to mount /app under different position, maybe under secondary hardisk for which i have created a mount point with zfs pool...How... (10 Replies)
Discussion started by: mattpunk
10 Replies

3. OS X (Apple)

Can a ios app be developed on a windows or ipad?

hi, i want to start developing an ios app that can be used on iphone and ipad. can anyone guide me how to start? i saw that it can be developed only on a mac system.. but i dont have a mac system. i have an ipad 4 and a laptop with windows os? can i use one of these to start developing ios app??... (4 Replies)
Discussion started by: Little
4 Replies

4. Programming

Arduino Project: iPhone to HM-10 BLE to NB-IoT Shield to NB-IoT Network to Internet to Linux Server

This post describes a "work in progress" project I started today. Here is the High Level Overview: Currently, this project sits on my desk as an Arduino UNO (on the bottom), an NB-IoT Shield (sandwiched in the middle), a Sensor Shield (on top) with a HM-10 BLE Module (in the little... (13 Replies)
Discussion started by: Neo
13 Replies

5. Programming

Wuhan Coronavirus Status for China - Rapid Prototype Blynk App with ESP8266

Here is a rapid prototype app I just put together which might be of interest to some people. Basically, I have parsed the data from a Chinese web site which is tracking the Wuhan coronavirus, and cache that data every minute via a local cron file and make a simple API available to a Blink app. ... (6 Replies)
Discussion started by: Neo
6 Replies
Plack::Builder(3pm)					User Contributed Perl Documentation				       Plack::Builder(3pm)

NAME
Plack::Builder - OO and DSL to enable Plack Middlewares SYNOPSIS
# in .psgi use Plack::Builder; my $app = sub { ... }; builder { enable "Deflater"; enable "Session", store => "File"; enable "Debug", panels => [ qw(DBITrace Memory Timer) ]; enable "+My::Plack::Middleware"; $app; }; # use URLMap builder { mount "/foo" => builder { enable "Foo"; $app; }; mount "/bar" => $app2; mount "http://example.com/" => builder { $app3 }; }; # using OO interface my $builder = Plack::Builder->new(); $builder->add_middleware('Foo', opt => 1); $app = $builder->mount('/app' => $app); $app = $builder->to_app($app); DESCRIPTION
Plack::Builder gives you a quick domain specific language (DSL) to wrap your application with Plack::Middleware subclasses. The middleware you're trying to use should use Plack::Middleware as a base class to use this DSL, inspired by Rack::Builder. Whenever you call "enable" on any middleware, the middleware app is pushed to the stack inside the builder, and then reversed when it actually creates a wrapped application handler. "Plack::Middleware::" is added as a prefix by default. So: builder { enable "Foo"; enable "Bar", opt => "val"; $app; }; is syntactically equal to: $app = Plack::Middleware::Bar->wrap($app, opt => "val"); $app = Plack::Middleware::Foo->wrap($app); In other words, you're supposed to "enable" middleware from outer to inner. INLINE MIDDLEWARE
Plack::Builder allows you to code middleware inline using a nested code reference. If the first argument to "enable" is a code reference, it will be passed an $app and is supposed to return another code reference which is PSGI application that consumes $env in runtime. So: builder { enable sub { my $app = shift; sub { my $env = shift; # do preprocessing my $res = $app->($env); # do postprocessing return $res; }; }; $app; }; is equal to: my $mw = sub { my $app = shift; sub { my $env = shift; $app->($env) }; }; $app = $mw->($app); URLMap support Plack::Builder has a native support for Plack::App::URLMap with "mount" method. use Plack::Builder; my $app = builder { mount "/foo" => $app1; mount "/bar" => builder { enable "Foo"; $app2; }; }; See Plack::App::URLMap's "map" method to see what they mean. With builder you can't use "map" as a DSL, for the obvious reason :) NOTE: Once you use "mount" in your builder code, you have to use "mount" for all the paths, including the root path ("/"). You can't have the default app in the last line of "builder" like: my $app = sub { my $env = shift; ... }; builder { mount "/foo" => sub { ... }; $app; # THIS DOESN'T WORK }; You'll get warnings saying that your mount configuration will be ignored. Instead you should use "mount "/" => ..." in the last line to set the default fallback app. builder { mount "/foo" => sub { ... }; mount "/" => $app; } Note that the "builder" DSL returns a whole new PSGI application, which means o "builder { ... }" should normally the last statement of a ".psgi" file, because the return value of "builder" is the application that actually is executed. o You can nest your "builder" block, mixed with "mount" (see URLMap support above): builder { mount "/foo" => builder { mount "/bar" => $app; } } will locate the $app under "/foo/bar" since the inner "builder" block puts it under "/bar" and it results a new PSGI application which is located under "/foo" because of the outer "builder" block. CONDITIONAL MIDDLEWARE SUPPORT
You can use "enable_if" to conditionally enable middleware based on the runtime environment. See Plack::Middleware::Conditional for details. SEE ALSO
Plack::Middleware Plack::App::URLMap Plack::Middleware::Conditional perl v5.14.2 2012-05-17 Plack::Builder(3pm)
All times are GMT -4. The time now is 04:16 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy