Inhaltsverzeichnis
Anforderungen
Installation
IoT 和 Lua
Lua 解锁 IoT
Heim Betrieb und Instandhaltung Nginx Steuern Sie Ihren Raspberry Pi mit Lua

Steuern Sie Ihren Raspberry Pi mit Lua

Jun 10, 2023 am 09:07 AM
lua 树莓派

用 Lua 控制你的树莓派

Lua ist eine Sprache, die manchmal missverstanden wird. Im Gegensatz zu Python und einigen anderen Programmiersprachen ist diese Sprache eine allgemeine Erweiterungssprache und wird häufig in Spiele-Engines, Frameworks usw. verwendet. Insgesamt halte ich Lua für ein wertvolles Werkzeug für Entwickler, das es ihnen ermöglicht, ihre Projekte auf leistungsstarke Weise zu verbessern und zu erweitern.

Sie können Seth Kenlons Artikel „Lohnt es sich, Lua zu lernen?“ folgen. 》Der Artikel stellt das Herunterladen und Ausführen häufig verwendeter Lua vor und enthält auch einfache Lua-Codebeispiele. Um jedoch das Beste aus Lua herauszuholen, ist es am besten, es mit einem Framework zu verwenden, das die Sprache übernimmt. In diesem Tutorial zeige ich, wie man ein Framework namens Mako Server verwendet, das Lua-Programmierern das Codieren von IoT- und Webanwendungen erleichtern soll. Ich habe Ihnen auch gezeigt, wie Sie dieses Framework mithilfe der API erweitern können, um die GPIO-Pins des Raspberry Pi zu verwenden.

Anforderungen

Bevor Sie diesem Tutorial folgen, benötigen Sie einen laufenden Raspberry Pi, bei dem Sie sich anmelden können. Obwohl ich in diesem Tutorial C-Code kompiliere, benötigen Sie keine Erfahrung mit C-Codierung. Sie benötigen jedoch etwas Erfahrung im Umgang mit einem POSIX-Terminal.

Installation

Öffnen Sie zunächst ein Terminalfenster auf dem Raspberry Pi und installieren Sie die folgenden Tools, um den Code herunterzuladen und den C-Code mit Git zu kompilieren:

$ sudo apt install git unzip gcc make
Nach dem Login kopieren

Als nächstes kompilieren Sie den Open-Source-Mako-Server-Code und die Lua-Peripherie durch Ausführen Die folgende Befehlsbibliothek (GPIO-Bibliothek für Raspberry Pi):

$ wget -O Mako-Server-Build.sh \https://raw.githubusercontent.com/RealTimeLogic/BAS/main/RaspberryPiBuild.sh
Nach dem Login kopieren

Schauen Sie sich das Skript an, um zu sehen, was es tut, und führen Sie es aus, sobald Sie damit einverstanden sind:

$ sh ./Mako-Server-Build.sh
Nach dem Login kopieren

Der Kompilierungsvorgang kann einige Zeit dauern, insbesondere bei älteren Versionen Raspberry Pis überlegen. Nach der Kompilierung werden Sie vom Skript aufgefordert, die Mako-Server- und Lua-Peripheriemodule in /usr/local/bin/. Ich empfehle die Installation, um die Verwendung der Software zu vereinfachen. Keine Sorge, Sie können es deinstallieren, wenn Sie es nicht mehr benötigen: /usr/local/bin/。我建议安装它以简化软件的使用。别担心,如果你不再需要它,你可以卸载它:

$ cd /usr/local/bin/$ sudo rm mako mako.zip periphery.so
Nach dem Login kopieren

要测试安装,请在终端中输入 mako。这将启动 Mako 服务器,并在你的终端中看到一些输出。你可以按 CTRL+C 停止服务器。

IoT 和 Lua

现在 Mako 服务器已在你的树莓派上设置好,你可以开始对 IoT 和 Web 应用进行编程,并使用 Lua 操作树莓派的 GPIO 引脚。Mako Server 框架为 Lua 开发人员提供了一个强大而简单的 API 来创建物联网应用,而 lua-periphery 模块让 Lua 开发人员可以与树莓派的 GPIO 引脚和其他外围设备进行交互。

首先创建一个应用目录和一个 .preload 脚本,其中插入用于测试 GPIO 的 Lua 代码。.preload

$ mkdir gpiotst$ nano gpiotst/.preload
Nach dem Login kopieren
Um die Installation zu testen, geben Sie im Terminal STRG+C drücken, um den Server zu stoppen.

IoT und Lua

Da nun der Mako-Server auf Ihrem Raspberry Pi eingerichtet ist, können Sie mit der Programmierung von IoT- und Webanwendungen beginnen und Lua verwenden, um die GPIO-Pins des Raspberry Pi zu manipulieren. Das Mako Server-Framework bietet Lua-Entwicklern eine leistungsstarke und dennoch einfache API zum Erstellen von IoT-Anwendungen, während das Lua-Peripheriemodul Lua-Entwicklern die Interaktion mit den GPIO-Pins des Raspberry Pi und anderen Peripheriegeräten ermöglicht. 🎜🎜Erstellen Sie zunächst ein Anwendungsverzeichnis und einen .preload-Skript, das Lua-Code zum Testen von GPIO einfügt. .preload-Skript ist eine Mako-Servererweiterung, die beim Start der Anwendung geladen und als Lua-Skript ausgeführt wird. 🎜
-- Load periphery.so and access the LED interfacelocal LED = require('periphery').LEDlocal function doled()local led = LED("led0") -- Open LED led0trace"Turn LED on"led:write(true) -- Turn on LED (set max brightness)ba.sleep(3000)-- 3 secondstrace"Turn LED off"led:write(false)-- Turn off LED (set zero brightness)led:close()endba.thread.run(doled) -- Defer execution -- to after Mako has started
Nach dem Login kopieren
Nach dem Login kopieren
🎜Kopieren Sie den folgenden Inhalt in 🎜Nano Editor🎜 und speichern Sie die Datei: 🎜
-- Load periphery.so and access the LED interfacelocal LED = require('periphery').LEDlocal function doled()local led = LED("led0") -- Open LED led0trace"Turn LED on"led:write(true) -- Turn on LED (set max brightness)ba.sleep(3000)-- 3 secondstrace"Turn LED off"led:write(false)-- Turn off LED (set zero brightness)led:close()endba.thread.run(doled) -- Defer execution -- to after Mako has started
Nach dem Login kopieren
Nach dem Login kopieren

上面的 Lua 代码使用你编译并包含在 Mako 服务器中的 Lua-periphery 库控制树莓派 LED。该脚本定义了一个名为 doled 的函数来控制 LED。该脚本首先使用 Lua require 函数加载 periphery 库(共享库 periphery.so)。返回的数据是一个包含所有 GPIO API 函数的 Lua 表。但是,你只需要 LED API,你可以通过在调用 require 后附加 .LED 来直接访问它。接下来,代码定义了一个名为 doled 的函数,它执行以下操作:

  • 通过调用 periphery 库中的 LED 函数,并将字符串 led0 传给它,打开树莓派主 LED,识别为 led0
  • 将消息 Turn LED on 打印到跟踪(控制台)。
  • 通过调用 LED 对象上的 write 方法并将布尔值 true 传递给它来激活 LED,该值设置 LED 的最大亮度。
  • 通过调用 ba.sleep(3000) 等待 3 秒。
  • 将消息 Turn LED off 打印到跟踪。
  • 通过调用 LED 对象上的 write 方法并将布尔值 false 传递给它来停用 LED,这会将 LED 的亮度设置为零。
  • 通过调用 LED 对象上的 close 函数关闭 LED

在 .preload 脚本的末尾,doled 函数作为参数传递给 ba.thread.run 函数。这允许将 doled 函数的执行推迟到 Mako 服务器启动之后。

要启动 gpiotst 应用,请按如下方式运行 Mako 服务器:

$ mako -l::gpiotst
Nach dem Login kopieren

控制台中打印以下文本:

Opening LED:opening 'brightness': Permission denied.
Nach dem Login kopieren

访问 GPIO 需要 root 访问权限,因此按 CTRL+C 停止服务器并重新启动 Mako 服务器,如下所示:

$ sudo mako -l::gpiotst
Nach dem Login kopieren

现在树莓派 LED 亮起 3 秒。成功!

Lua 解锁 IoT

在本入门教程中,你学习了如何编译 Mako 服务器,包括 GPIO Lua 模块,以及如何编写用于打开和关闭树莓派 LED 的基本 Lua 脚本。在以后的文章中,我将在本文的基础上进一步介绍 IoT 功能。

In der Zwischenzeit können Sie tiefer in die Lua-Peripherie-GPIO-Bibliothek eintauchen, indem Sie deren Dokumentation lesen, um mehr über die Funktionalität und die Verwendung mit verschiedenen Peripheriegeräten zu erfahren. Um dieses Tutorial optimal zu nutzen, sollten Sie dem „Interactive Mako Server Lua Tutorial“ folgen, um Lua, das Web und IoT besser zu verstehen. Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonSteuern Sie Ihren Raspberry Pi mit Lua. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So installieren und konfigurieren Sie die Lua-Unterstützung für Nginx So installieren und konfigurieren Sie die Lua-Unterstützung für Nginx Jun 02, 2023 pm 10:01 PM

Nginx-Installation und -Konfiguration Lua-Unterstützung Standardmäßig unterstützt Nginx keine Lua-Module. Sie müssen den LuaJIT-Interpreter installieren und Nginx neu kompilieren, oder Sie können die von Openrestry benötigten Module verwenden, die von Chinesen entwickelt wurden: LuaJIT, Ngx_devel und lua-nginx-module1 . Umgebungsvorbereitung [root @nginx_lua~]#yuminstall-ygccgcc-c++makepcre-develzlib-developenssl-devel2 Laden Sie die neueste Dekomprimierung von luajit und ngx_devel_kit und lua-nginx-module herunter

So integrieren Sie Nginx mit Lua, um MySQL zu betreiben So integrieren Sie Nginx mit Lua, um MySQL zu betreiben May 16, 2023 pm 10:43 PM

Die Implementierungsidee besteht darin, die Blacklist direkt in Nginx zu konfigurieren und sie durch Schreiben logischer Blöcke im Server (Java) und Vereinheitlichen der Interceptoren im Filter zu implementieren ; Hier sind 3 Implementierungsideen, es gibt vielleicht noch mehr, aber wenn wir darüber nachdenken, scheint es nicht unmöglich zu sein, logische Blöcke in Nginx zu schreiben Dies ist jedoch auf Codeebene der Fall. Erstens wird dies in Spitzenzeiten mit hoher Parallelität zwangsläufig einen größeren Druck auf die Back-End-Dienste ausüben. Gibt es also andere bessere Möglichkeiten, damit umzugehen? Darum geht es bei Lua, das heißt, Nginx fungiert als Gateway und fungiert dennoch als Proxyserver, da Nginx Lua integrieren kann

Fünf einzigartige Einsatzmöglichkeiten für den Raspberry Pi Fünf einzigartige Einsatzmöglichkeiten für den Raspberry Pi Jul 09, 2023 pm 02:10 PM

Kürzlich hörte ich in einer Telefonkonferenz jemanden sagen, dass die Open-Source-Community eine Kombination aus Neugier und einer Kultur der Problemlösung sei. Neugier ist die Grundlage unserer Problemlösung. Bei der Lösung von Problemen jeder Größe nutzen wir eine breite Palette von Open-Source-Tools, darunter auch Linux, das auf dem unglaublich komfortablen Raspberry Pi läuft. Wir haben alle unterschiedliche Lebenserfahrungen, deshalb habe ich unsere Autorengemeinschaft nach den seltsamsten Verwendungsmöglichkeiten für einen Raspberry Pi gefragt, die ihnen begegnet sind. Ich habe das Gefühl, dass diese erstaunlichen Bauten andere inspirieren werden. Experimentieren mit einem Raspberry Pi Für mich ist der Raspberry Pi ein großartiges Werkzeug, um meinem Heimnetzwerk zusätzliche Entwicklungsressourcen hinzuzufügen. Wenn ich eine neue Website erstellen oder ein neues Softwaretool ausprobieren möchte, muss ich meinen Desktop nicht verlassen

Integration von Vue.js und der Lua-Sprache zum Schreiben leichter eingebetteter Anwendungen Integration von Vue.js und der Lua-Sprache zum Schreiben leichter eingebetteter Anwendungen Jul 31, 2023 pm 02:23 PM

Die Integration von Vue.js und der Sprache Lua zum Schreiben leichter eingebetteter Anwendungen In der modernen Entwicklung haben das Front-End-Framework Vue.js und die Skriptsprache Lua jeweils ein breites Anwendungsspektrum. Vue.js ist ein fortschrittliches Framework zum Erstellen von Benutzeroberflächen, während Lua eine leichte Skriptsprache ist, die häufig für die Entwicklung eingebetteter Anwendungen und Spiele verwendet wird. In diesem Artikel wird erläutert, wie Sie Vue.js in die Lua-Sprache integrieren, um einfache eingebettete Anwendungen zu schreiben, und es werden Codebeispiele bereitgestellt. Zuerst müssen wir Vue.j installieren

Erstellen Sie in weniger als 30 Minuten ein Raspberry Pi-Überwachungs-Dashboard Erstellen Sie in weniger als 30 Minuten ein Raspberry Pi-Überwachungs-Dashboard Jul 16, 2023 pm 08:50 PM

Wenn Sie wissen möchten, wie Ihr Raspberry Pi funktioniert, benötigen Sie wahrscheinlich ein Raspberry Pi-Dashboard. In diesem Artikel zeige ich, wie Sie schnell ein On-Demand-Überwachungs-Dashboard erstellen, um die CPU-Leistung, den Speicher und die Festplattennutzung Ihres Raspberry Pi in Echtzeit anzuzeigen und bei Bedarf jederzeit weitere Ansichten und Aktionen hinzuzufügen. Wenn Sie Appsmith bereits nutzen, können Sie die Beispielanwendung auch direkt importieren und loslegen. AppsmithAppsmith ist ein Open-Source-Tool zum Erstellen von Low-Code-Anwendungen, das Entwicklern hilft, einfach und schnell interne Anwendungen wie Dashboards und Admin-Panels zu erstellen. Es ist eine großartige Option für Dashboards und reduziert den Zeitaufwand und die Komplexität, die herkömmliche Codierungsmethoden erfordern. In diesem Beispiel-Dashboard zeige ich die folgenden Statistiken an

So implementieren Sie das Redis+Lua-Skript zur Implementierung der Anti-Swipe-Funktion der Zählerschnittstelle So implementieren Sie das Redis+Lua-Skript zur Implementierung der Anti-Swipe-Funktion der Zählerschnittstelle May 28, 2023 pm 11:32 PM

[Implementierungsprozess] 1. Problemanalyse Wenn der Set-Befehl festgelegt ist, die Einstellung jedoch aufgrund von Netzwerk-Jitter und anderen Gründen beim Festlegen der Ablaufzeit nicht erfolgreich ist, wird ein toter Zähler (ähnlich einem Deadlock) angezeigt. 2. Lösung Redis +Lua Es ist eine gute Lösung, Skripte zu verwenden, damit die Befehle „set“ und „expire“ zusammenarbeiten, sodass Redis weitgehend ungehindert ausgeführt werden kann Umfang statt vollständig? Denn bei der Ausführung von Redis können Probleme auftreten

Integration von Vue.js und Lua-Sprache, Best Practices und Erfahrungsaustausch beim Aufbau von Front-End-Engines für die Spieleentwicklung Integration von Vue.js und Lua-Sprache, Best Practices und Erfahrungsaustausch beim Aufbau von Front-End-Engines für die Spieleentwicklung Aug 01, 2023 pm 08:14 PM

Die Integration von Vue.js und der Lua-Sprache, Best Practices und Erfahrungsaustausch zum Aufbau einer Front-End-Engine für die Spieleentwicklung. Einführung: Mit der kontinuierlichen Weiterentwicklung der Spieleentwicklung ist die Wahl der Spiele-Front-End-Engine zu einer wichtigen Entscheidung geworden. Unter diesen Optionen sind das Vue.js-Framework und die Lua-Sprache in den Fokus vieler Entwickler gerückt. Als beliebtes Front-End-Framework verfügt Vue.js über ein reichhaltiges Ökosystem und praktische Entwicklungsmethoden, während die Lua-Sprache aufgrund ihrer leichten und effizienten Leistung häufig in der Spieleentwicklung verwendet wird. In diesem Artikel erfahren Sie, wie das geht

So verwenden Sie Lua-Skript im Java-Ökosystem/Redis So verwenden Sie Lua-Skript im Java-Ökosystem/Redis Jun 02, 2023 pm 10:41 PM

1. LUA installieren Die Installation von LUA auf dem Mac ist sehr einfach. Verwenden Sie einfach brew-bezogene Befehle. brewinstalllua verwendet den Befehl lua-v, um festzustellen, ob lua installiert wurde. 1) Einfache Verwendung zum Erstellen einer test.lua-Datei. Der Inhalt lautet: Befehl ausführen: luatest.lua Die Ausgabe lautet: 2. Einführung in die Lua-Syntax Lua bietet interaktive Programmierung und Skriptprogrammierung: Interaktive Programmierung: Geben Sie die Syntax direkt in die Befehlszeile ein , Sie können es sofort ausführen und den Ausführungseffekt sehen. Scripting ist Programmieren: Schreiben Sie eine Skriptdatei und führen Sie sie dann aus. 1. Kommentar Lua bietet zwei Kommentarmethoden: einzeilige Kommentare und mehrzeilige Kommentare 1) Einzeilige Kommentare verwenden zwei Minuszeichen;--2) Mehrzeilige Kommentare--[[Mehrzeilige Kommentare mehrzeilig

See all articles