From 0c1123143b6aaf1a5913d952273f121a3e0e4bae Mon Sep 17 00:00:00 2001 From: Paul Guyot Date: Sun, 2 Jul 2023 11:26:49 +0200 Subject: [PATCH] Add RTC example --- examples/basic/rtc/.gitignore | 19 +++++ examples/basic/rtc/README.md | 19 +++++ examples/basic/rtc/rebar.config | 8 ++ examples/basic/rtc/rtc.jpg | Bin 0 -> 92150 bytes examples/basic/rtc/src/.gitignore | 1 + examples/basic/rtc/src/config.hrl-template | 4 + examples/basic/rtc/src/rtc.app.src | 13 +++ examples/basic/rtc/src/rtc.erl | 93 +++++++++++++++++++++ 8 files changed, 157 insertions(+) create mode 100644 examples/basic/rtc/.gitignore create mode 100644 examples/basic/rtc/README.md create mode 100644 examples/basic/rtc/rebar.config create mode 100644 examples/basic/rtc/rtc.jpg create mode 100644 examples/basic/rtc/src/.gitignore create mode 100644 examples/basic/rtc/src/config.hrl-template create mode 100644 examples/basic/rtc/src/rtc.app.src create mode 100644 examples/basic/rtc/src/rtc.erl diff --git a/examples/basic/rtc/.gitignore b/examples/basic/rtc/.gitignore new file mode 100644 index 0000000..f1c4554 --- /dev/null +++ b/examples/basic/rtc/.gitignore @@ -0,0 +1,19 @@ +.rebar3 +_* +.eunit +*.o +*.beam +*.plt +*.swp +*.swo +.erlang.cookie +ebin +log +erl_crash.dump +.rebar +logs +_build +.idea +*.iml +rebar3.crashdump +*~ diff --git a/examples/basic/rtc/README.md b/examples/basic/rtc/README.md new file mode 100644 index 0000000..3754bae --- /dev/null +++ b/examples/basic/rtc/README.md @@ -0,0 +1,19 @@ +M5 RTC sample code +================== + +![Sample code running on M5 Stick C Plus](./rtc.jpg) + +This sample code illustrates how to use RTC and perform synchronization with NTP. + +Usage +----- + +- Install rebar3. +- Copy `src/config.hrl-template` to `src/config.hrl` +- Edit `src/config.hrl` with your Wifi credentials +- Connect a M5 device with AtomVM (VM and library) preinstalled. +- Compile and flash with: + +``` +rebar3 esp32_flash -p /dev/tty.usbserial-* +``` diff --git a/examples/basic/rtc/rebar.config b/examples/basic/rtc/rebar.config new file mode 100644 index 0000000..9ffd397 --- /dev/null +++ b/examples/basic/rtc/rebar.config @@ -0,0 +1,8 @@ +{erl_opts, [debug_info]}. +{deps, [ + {atomvm_m5, {path, "../../../"}} +]}. +{plugins, [ + rebar3_path_deps, + {atomvm_rebar3_plugin, {git, "https://github.com/atomvm/atomvm_rebar3_plugin.git", {branch, "master"}}} +]}. diff --git a/examples/basic/rtc/rtc.jpg b/examples/basic/rtc/rtc.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fbbb96ada3b2d152f5e78baac8e845e956eec5f2 GIT binary patch literal 92150 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 literal 0 HcmV?d00001 diff --git a/examples/basic/rtc/src/.gitignore b/examples/basic/rtc/src/.gitignore new file mode 100644 index 0000000..0eb057a --- /dev/null +++ b/examples/basic/rtc/src/.gitignore @@ -0,0 +1 @@ +config.hrl diff --git a/examples/basic/rtc/src/config.hrl-template b/examples/basic/rtc/src/config.hrl-template new file mode 100644 index 0000000..c97f401 --- /dev/null +++ b/examples/basic/rtc/src/config.hrl-template @@ -0,0 +1,4 @@ +% Define Wifi settings + +-define(WIFI_SSID, "ssid"). +-define(WIFI_PSK, "psk"). diff --git a/examples/basic/rtc/src/rtc.app.src b/examples/basic/rtc/src/rtc.app.src new file mode 100644 index 0000000..03b8273 --- /dev/null +++ b/examples/basic/rtc/src/rtc.app.src @@ -0,0 +1,13 @@ +{application, rtc, + [{description, "AtomVM M5 RTC example"}, + {vsn, "0.1.0"}, + {registered, []}, + {applications, + [kernel, + stdlib + ]}, + {env,[]}, + {modules, []}, + {licenses, ["MIT"]}, + {links, []} + ]}. diff --git a/examples/basic/rtc/src/rtc.erl b/examples/basic/rtc/src/rtc.erl new file mode 100644 index 0000000..c245cc4 --- /dev/null +++ b/examples/basic/rtc/src/rtc.erl @@ -0,0 +1,93 @@ +%% @doc RTC sample code +-module(rtc). + +-export([start/0]). +-include("config.hrl"). + +start() -> + m5:begin_([{clear_display, true}, {output_power, false}, {internal_mic, false}]), + case m5_rtc:is_enabled() of + true -> + println("RTC found"), + display_rtc_time(), + println("Starting network"), + ok = start_network(), + wait_for_wifi(); + false -> + io:format("RTC not found.\n"), + m5_display:print(<<"RTC not found.">>) + end. + +start_network() -> + Parent = self(), + WifiConfig = [ + {sta, [ + {connected, fun() -> Parent ! {wifi, connected} end}, + {got_ip, fun(_Addr) -> Parent ! {wifi, got_ip} end}, + {ssid, ?WIFI_SSID}, + {psk, ?WIFI_PSK} + ]}, + {sntp, [{host, "pool.ntp.org"}, {synchronized, fun(Timeval) -> Parent ! {ntp, Timeval} end}]} + ], + case network:start(WifiConfig) of + {ok, _Pid} -> + println("Network started"), + ok; + Error -> + println(io_lib:format("Network start failed:\n~p", [Error])), + Error + end. + +wait_for_wifi() -> + println("Wait for wifi"), + receive + {wifi, connected} -> + wait_for_ip(); + Other -> + println(io_lib:format("Unexpected message:\n~p", [Other])), + wait_for_wifi() + after 10000 -> + io:format("Still waiting for wifi\n"), + wait_for_wifi() + end. + +wait_for_ip() -> + println("Wait for IP"), + receive + {wifi, got_ip} -> + wait_for_ntp(); + Other -> + println(io_lib:format("Unexpected message:\n~p", [Other])), + wait_for_ip() + after 10000 -> + io:format("Still waiting for IP\n"), + wait_for_ntp() + end. + +wait_for_ntp() -> + println("Wait for NTP"), + receive + {ntp, Timeval} -> + println(io_lib:format("Synchronized:\n~p", [Timeval])), + set_rtc(); + Other -> + println(io_lib:format("Unexpected message:\n~p", [Other])), + wait_for_ntp() + after 10000 -> + io:format("Still waiting for NTP\n"), + wait_for_ntp() + end. + +set_rtc() -> + io:format("Setting M5 RTC to : ~p\n", [erlang:universaltime()]), + m5_rtc:set_datetime(erlang:universaltime()), + display_rtc_time(). + +display_rtc_time() -> + io:format("M5 RTC time is now : ~p\n", [m5_rtc:get_datetime()]), + DateTimeStr = iolist_to_binary(io_lib:format("RTC time:\n~p", [m5_rtc:get_datetime()])), + m5_display:println(DateTimeStr). + +println(IOData) -> + io:format("~s\n", [IOData]), + m5_display:println(IOData).