Table des matières
Conditions requises
Installation
IoT 和 Lua
Lua 解锁 IoT
Maison Opération et maintenance Nginx Contrôlez votre Raspberry Pi avec Lua

Contrôlez votre Raspberry Pi avec Lua

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

用 Lua 控制你的树莓派

Lua est un langage parfois mal compris. Contrairement à Python et à certains autres langages de programmation, ce langage est un langage d'extension général et est largement utilisé dans les moteurs de jeux, les frameworks, etc. Dans l'ensemble, je trouve que Lua est un outil précieux pour les développeurs, leur permettant d'améliorer et d'étendre leurs projets de manière puissante.

Vous pouvez suivre l'article de Seth Kenlon « Lua vaut-elle la peine d'être apprise ? 》Présentant le téléchargement et l'exécution de Lua couramment utilisé, l'article comprend également des exemples simples de code Lua. Cependant, pour tirer le meilleur parti de Lua, il est préférable de l'utiliser avec un framework qui adopte le langage. Dans ce didacticiel, je montre comment utiliser un framework appelé Mako Server, conçu pour permettre aux programmeurs Lua de coder facilement des applications IoT et Web. Je vous ai également montré comment étendre ce framework à l'aide de l'API pour utiliser les broches GPIO du Raspberry Pi.

Conditions requises

Avant de suivre ce tutoriel, vous aurez besoin d'un Raspberry Pi en cours d'exécution auquel vous pourrez vous connecter. Bien que je compile du code C dans ce didacticiel, vous n'avez besoin d'aucune expérience en codage C. Cependant, vous aurez besoin d'une certaine expérience dans l'utilisation d'un terminal POSIX.

Installation

Tout d'abord, ouvrez une fenêtre de terminal sur le Raspberry Pi et installez les outils suivants pour télécharger le code et compiler le code C à l'aide de Git :

$ sudo apt install git unzip gcc make
Copier après la connexion

Ensuite, compilez le code open source du serveur Mako et la périphérie lua en exécutant la bibliothèque de commandes suivante (bibliothèque GPIO pour Raspberry Pi) :

$ wget -O Mako-Server-Build.sh \https://raw.githubusercontent.com/RealTimeLogic/BAS/main/RaspberryPiBuild.sh
Copier après la connexion

Consultez le script pour voir ce qu'il fait et exécutez-le une fois que vous êtes d'accord :

$ sh ./Mako-Server-Build.sh
Copier après la connexion

Le processus de compilation peut prendre un certain temps, en particulier sur les anciens Raspberry Pis supérieur. Après compilation, le script vous demandera d'installer le serveur Mako et les modules lua-periphery sur /usr/local/bin/. Je recommande de l'installer pour simplifier l'utilisation du logiciel. Ne vous inquiétez pas, vous pouvez le désinstaller si vous n'en avez plus besoin : /usr/local/bin/。我建议安装它以简化软件的使用。别担心,如果你不再需要它,你可以卸载它:

$ cd /usr/local/bin/$ sudo rm mako mako.zip periphery.so
Copier après la connexion

要测试安装,请在终端中输入 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
Copier après la connexion
Pour tester l'installation, saisissez dans le terminal CTRL+C Arrêter le serveur.

IoT et Lua

Maintenant que le serveur Mako est configuré sur votre Raspberry Pi, vous pouvez commencer à programmer des applications IoT et Web et à utiliser Lua pour manipuler les broches GPIO du Raspberry Pi. Le framework Mako Server fournit aux développeurs Lua une API puissante mais simple pour créer des applications IoT, tandis que le module lua-periphery permet aux développeurs Lua d'interagir avec les broches GPIO du Raspberry Pi et d'autres périphériques. 🎜🎜Créez d'abord un répertoire d'application et un .preload script, qui insère le code Lua pour tester GPIO. .preload est une extension de serveur Mako qui se charge et s'exécute comme un script Lua au démarrage de l'application. 🎜
-- 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
Copier après la connexion
Copier après la connexion
🎜Copiez le contenu suivant dans 🎜Nano Editor🎜 et enregistrez le fichier : 🎜
-- 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
Copier après la connexion
Copier après la connexion

上面的 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
Copier après la connexion

控制台中打印以下文本:

Opening LED:opening 'brightness': Permission denied.
Copier après la connexion

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

$ sudo mako -l::gpiotst
Copier après la connexion

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

Lua 解锁 IoT

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

En attendant, vous pouvez approfondir la bibliothèque GPIO de la périphérie Lua en lisant sa Documentation pour en savoir plus sur la fonctionnalité et comment l'utiliser avec différents périphériques. Pour tirer le meilleur parti de ce didacticiel, pensez à suivre le Tutoriel Lua du serveur Mako interactif pour mieux comprendre Lua, le Web et l'IoT. Bon codage !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment installer et configurer le support Lua pour Nginx Comment installer et configurer le support Lua pour Nginx Jun 02, 2023 pm 10:01 PM

Installation et configuration de Nginx Prise en charge de Lua Par défaut, Nginx ne prend pas en charge les modules Lua Vous devez installer l'interpréteur LuaJIT et recompiler Nginx, ou vous pouvez utiliser les modules requis par openrestry développés par des chinois : LuaJIT, Ngx_devel et lua-nginx-module1. . Préparation de l'environnement [root @nginx_lua~]#yuminstall-ygccgcc-c++makepcre-develzlib-developenssl-devel2 Téléchargez les dernières versions de décompression de luajit et ngx_devel_kit et lua-nginx-module [r.

Comment intégrer nginx avec Lua pour faire fonctionner MySQL Comment intégrer nginx avec Lua pour faire fonctionner MySQL May 16, 2023 pm 10:43 PM

L'idée d'implémentation est de configurer directement la liste noire dans nginx et de l'implémenter en écrivant des blocs logiques ; d'écrire un filtre dans le serveur (Java) et d'unifier les interceptions dans le filtre et de l'unifier dans l'intercepteur ; Interception ; voici 3 idées d'implémentation. En ce qui concerne les solutions d'implémentation, il peut y en avoir plus, mais si nous y réfléchissons, l'écriture de blocs logiques dans nginx ne semble pas être ce pour quoi beaucoup de gens sont doués ; au niveau du code, mais c'est le cas. Premièrement, pendant les périodes de pointe où la concurrence est élevée, cela exercera inévitablement une plus grande pression sur les services back-end. Existe-t-il d'autres meilleures façons de gérer ce problème ? C'est à cela que sert Lua, c'est-à-dire que Nginx agit comme une passerelle et agit toujours comme un serveur proxy, car Nginx peut intégrer Lua

Cinq utilisations uniques du Raspberry Pi Cinq utilisations uniques du Raspberry Pi Jul 09, 2023 pm 02:10 PM

Récemment, j'ai entendu quelqu'un lors d'une conférence téléphonique dire que la communauté open source est une combinaison de curiosité et de culture de résolution de problèmes. La curiosité est la base de notre résolution de problèmes. Pour résoudre des problèmes de toutes tailles, nous utilisons une large gamme d’outils open source, notamment Linux fonctionnant sur le Raspberry Pi incroyablement pratique. Nous avons tous une variété d'expériences de vie différentes, j'ai donc demandé à notre communauté d'auteurs les utilisations les plus étranges du Raspberry Pi qu'ils aient rencontrées. J'ai le sentiment que ces constructions étonnantes inspireront les autres. Expérimenter avec un Raspberry Pi Pour moi, le Raspberry Pi est un excellent outil pour ajouter des ressources de développement supplémentaires à mon réseau domestique. Si je souhaite créer un nouveau site Web ou essayer un nouvel outil logiciel, je n'ai pas besoin de laisser mon bureau Lin

Intégration du langage Vue.js et Lua pour écrire des applications embarquées légères Intégration du langage Vue.js et Lua pour écrire des applications embarquées légères Jul 31, 2023 pm 02:23 PM

L'intégration du langage Vue.js et Lua pour écrire des applications embarquées légères. Dans le développement moderne, le framework front-end Vue.js et le langage de script Lua ont chacun un large éventail d'applications. Vue.js est un framework progressif pour la création d'interfaces utilisateur, tandis que Lua est un langage de script léger souvent utilisé pour le développement d'applications et de jeux intégrés. Cet article expliquera comment intégrer Vue.js au langage Lua pour écrire des applications embarquées légères et fournira des exemples de code. Tout d'abord, nous devons installer Vue.j

Créez un tableau de bord de surveillance Raspberry Pi en moins de 30 minutes Créez un tableau de bord de surveillance Raspberry Pi en moins de 30 minutes Jul 16, 2023 pm 08:50 PM

Si vous souhaitez connaître les performances de votre Raspberry Pi, vous avez probablement besoin d'un tableau de bord Raspberry Pi. Dans cet article, je vais vous montrer comment créer rapidement un tableau de bord de surveillance à la demande pour afficher les performances du processeur, la mémoire et l'utilisation du disque de votre Raspberry Pi en temps réel, et ajouter d'autres vues et actions à tout moment, selon vos besoins. Si vous utilisez déjà Appsmith, vous pouvez également importer directement l'exemple d'application et commencer. AppsmithAppsmith est un outil de création d'applications open source low-code qui aide les développeurs à créer facilement et rapidement des applications internes telles que des tableaux de bord et des panneaux d'administration. C'est une excellente option pour les tableaux de bord et réduit le temps et la complexité requis par les méthodes de codage traditionnelles. Dans cet exemple de tableau de bord, j'affiche les statistiques suivantes

Comment utiliser le script Redis+Lua pour implémenter la fonction anti-swipe de l'interface du compteur Comment utiliser le script Redis+Lua pour implémenter la fonction anti-swipe de l'interface du compteur May 28, 2023 pm 11:32 PM

[Processus de mise en œuvre] 1. Analyse du problème Si la commande set est définie, mais que le réglage échoue en raison de la gigue du réseau et d'autres raisons lors de la définition du délai d'expiration, un compteur mort (similaire à un blocage) apparaîtra 2. Solution Redis ; +Lua C'est une bonne solution.Utilisez des scripts pour faire fonctionner ensemble la commande set et la commande expire afin que Redis soit exécuté sans interférence. Cela garantit dans une large mesure les opérations atomiques. dans une large mesure plutôt que complètement ? Parce que des problèmes peuvent survenir lorsque Redis est exécuté dans

Intégration des langages Vue.js et Lua, bonnes pratiques et partage d'expérience dans la construction de moteurs front-end pour le développement de jeux Intégration des langages Vue.js et Lua, bonnes pratiques et partage d'expérience dans la construction de moteurs front-end pour le développement de jeux Aug 01, 2023 pm 08:14 PM

L'intégration des langages Vue.js et Lua, les meilleures pratiques et le partage d'expériences pour la construction d'un moteur frontal pour le développement de jeux Introduction : Avec le développement continu du développement de jeux, le choix du moteur frontal de jeu est devenu une décision importante. Parmi ces choix, le framework Vue.js et le langage Lua sont devenus le focus de nombreux développeurs. En tant que framework frontal populaire, Vue.js dispose d'un écosystème riche et de méthodes de développement pratiques, tandis que le langage Lua est largement utilisé dans le développement de jeux en raison de ses performances légères et efficaces. Cet article explorera comment

Comment utiliser le script Lua dans l'écosystème Java/Redis Comment utiliser le script Lua dans l'écosystème Java/Redis Jun 02, 2023 pm 10:41 PM

1. Installer LUA L'installation de LUA sur Mac est très simple. Utilisez simplement les commandes liées à Brewinstalllua utilise la commande lua-v pour voir que Lua a été installé. 1) Utilisation simple pour créer un fichier test.lua, le contenu est : Exécuter la commande : la sortie luatest.lua est : 2. Introduction à la syntaxe lua Lua propose une programmation interactive et une programmation scriptée : Programmation interactive : saisissez directement la syntaxe sur la ligne de commande , vous pouvez l'exécuter immédiatement et voir l'effet d'exécution. Le script est la programmation : écrivez un fichier de script puis exécutez-le. 1. Commentaire Lua propose deux méthodes de commentaire : les commentaires sur une seule ligne et les commentaires sur plusieurs lignes 1) Les commentaires sur une seule ligne utilisent deux signes moins ;--2) Commentaires sur plusieurs lignes--[[Commentaires sur plusieurs lignes multi-lignes

See all articles