Build a Weather Station with Elixir and Nerves: Visualize Your Sensor Data with Phoenix and Grafana

Koutmos, Alexander, Tate, Bruce, Hunleth, Frank

  • 出版商: Pragmatic Bookshelf
  • 出版日期: 2022-02-15
  • 售價: $1,270
  • 貴賓價: 9.5$1,207
  • 語言: 英文
  • 頁數: 92
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 1680509020
  • ISBN-13: 9781680509021
  • 相關分類: Functional-programming感測器 Sensor
  • 立即出貨 (庫存=1)

商品描述

The Elixir programming language has become a go-to tool for creating reliable, fault-tolerant, and robust server-side applications. Thanks to Nerves, those same exact benefits can be realized in embedded applications. This book will teach you how to structure, build, and deploy production grade Nerves applications to network-enabled devices. The weather station sensor hub project that you will be embarking upon will show you how to create a full stack IoT solution in record time. You will build everything from the embedded Nerves device to the Phoenix backend and even the Grafana time-series data visualizations.

Elixir as a programming language has found its way into many different software domains, largely in part to the rock-solid foundation of the Erlang virtual machine. Thanks to the Nerves framework, Elixir has also found success in the world of embedded systems and IoT. Having access to all of the Elixir and OTP constructs such as concurrency, supervision, and immutability makes for a powerful IoT recipe. Find out how to create fault-tolerant, reliable, and robust embedded applications using the Nerves framework.

Build and deploy a production-grade weather station sensor hub using Elixir and Nerves, all while leveraging the best practices established by the Nerves community for structuring and organizing Nerves applications. Capture all of your weather station sensor data using Phoenix and Ecto in a lightweight server-side application. Efficiently store and retrieve the time-series weather data collected by your device using TimescaleDB (the Postgres extension for time-series data). Finally, complete the full stack IoT solution by using Grafana to visualize all of your time-series weather station data. Discover how to create software solutions where the underlying technologies and techniques are applicable to all layers of the project.

Take your project from idea to production ready in record time with Elixir and Nerves.

What You Need:

To complete the Nerves weather station project in this book, you will need the following:

  • A Linux, MacOS, or Windows computer to build and deploy Nerves firmware images
  • A Raspberry Pi Zero W or any other Nerves supported target (https://hexdocs.pm/nerves/targets.html#supported-targets-and-systems)
  • A VEML6030 light sensor
  • An BME680 environmental sensor
  • An SGP30 air quality sensor
  • Qwiic connect cables for weather sensors

商品描述(中文翻譯)

Elixir程式語言已成為創建可靠、容錯和強大的伺服器端應用程式的首選工具。有了Nerves,這些同樣的優勢也可以在嵌入式應用程式中實現。本書將教你如何結構化、構建和部署生產級的Nerves應用程式到網絡連接的設備上。你將開始進行的氣象站感測器中樞項目將向你展示如何在短時間內創建完整的IoT解決方案。你將從嵌入式Nerves設備到Phoenix後端,甚至到Grafana時間序列數據可視化,構建所有內容。

Elixir作為一種程式語言已經在許多不同的軟體領域中找到了它的位置,這在很大程度上要歸功於Erlang虛擬機的穩固基礎。多虧了Nerves框架,Elixir也在嵌入式系統和IoT領域取得了成功。擁有所有Elixir和OTP結構,如並發、監督和不可變性,將為強大的IoT配方提供支持。了解如何使用Nerves框架創建容錯、可靠和強大的嵌入式應用程式。

使用Elixir和Nerves構建和部署一個生產級的氣象站感測器中樞,同時利用Nerves社區為結構化和組織Nerves應用程式碼碼所建立的最佳實踐。使用Phoenix和Ecto在輕量級伺服器端應用程式中捕獲所有氣象站感測器數據。使用TimescaleDB(Postgres的時間序列數據擴展)高效地存儲和檢索設備收集的時間序列氣象數據。最後,使用Grafana來可視化所有時間序列氣象站數據,完成完整的IoT解決方案。發現如何創建軟體解決方案,其中底層技術和技巧適用於項目的所有層面。

使用Elixir和Nerves,將你的項目從構想到生產準備階段,節省大量時間。

所需材料:

完成本書中的Nerves氣象站項目,你需要以下材料:

- 一台Linux、MacOS或Windows電腦,用於構建和部署Nerves固件映像
- 一個Raspberry Pi Zero W或任何其他Nerves支援的目標(參考https://hexdocs.pm/nerves/targets.html#supported-targets-and-systems)
- 一個VEML6030光感測器
- 一個BME680環境感測器
- 一個SGP30空氣品質感測器
- 用於氣象感測器的Qwiic連接電纜

作者簡介

Alexander Koutmos has been writing software professionally for almost a decade and has been working primarily with Elixir since 2016. He currently maintains a few Elixir libraries on Hex and also runs a software consultancy (www.stagira.com).

Bruce Tate is a kayaker, programmer, and father of two from Chattanooga, Tennessee. The author of more than 10 books has been around Elixir from the beginning. He is the founder of Groxio, a company that trains Elixir developers.

Frank Hunleth is an embedded systems programmer, OSS maintainer, and Nerves core team member. When not in front of a computer, he loves running and spending time with his family.

作者簡介(中文翻譯)

Alexander Koutmos已經從事專業軟體開發近十年,自2016年起主要使用Elixir。他目前在Hex上維護幾個Elixir函式庫,並經營軟體諮詢公司(www.stagira.com)。

Bruce Tate是一位皮划艇運動員、程式設計師,也是田納西州查塔努加市的兩個孩子的父親。作為超過10本書的作者,他從Elixir的開始就參與其中。他是Groxio的創辦人,該公司培訓Elixir開發人員。

Frank Hunleth是一位嵌入式系統程式設計師、開源軟體維護者和Nerves核心團隊成員。當他不在電腦前時,他喜歡跑步並與家人共度時光。