Indholdsfortegnelse:

Styr Arduino ved hjælp af Telegram Bot uden ekstra hardware: 5 trin
Styr Arduino ved hjælp af Telegram Bot uden ekstra hardware: 5 trin

Video: Styr Arduino ved hjælp af Telegram Bot uden ekstra hardware: 5 trin

Video: Styr Arduino ved hjælp af Telegram Bot uden ekstra hardware: 5 trin
Video: CS50 2015 - Week 4 2024, November
Anonim
Styr Arduino ved hjælp af Telegram Bot uden ekstra hardware
Styr Arduino ved hjælp af Telegram Bot uden ekstra hardware

Der er en lang række ting, du kan gøre med Arduino, men har du nogensinde tænkt på at styre din Arduino ved hjælp af en Telegram -bot?

  • Arduino UNO
  • Node.js installeret på din pc
  • En eller anden styrbar enhed (Vi bruger Arduinos indbyggede LED ved pin 13 her, men spørg gerne om alt, hvad du vil gøre i kommentarer)

Trin 1: Installer Node.js på din pc

Installer Node.js på din pc
Installer Node.js på din pc

Node.js er en JavaScript -runtime, men frygt ikke, hvis du ikke har en programmeringsbaggrund. Jeg har forberedt det, du har brug for, og du kan downloade dem. I dette projekt vil vi bruge Node.js til:

  1. Opret Telegram bot
  2. Styr Arduino

INSTALLER NODE. JS:

Gå til den officielle Node.js download -side, og download den nyeste installationspakke baseret på dit operativsystem.

*Husk det seneste versionsnummer som nævnt øverst på downloadsiden, vi bruger det i det næste trin.

Efter at have downloadet pakken og installeret den, skal du kontrollere, om Node.js er installeret helt eller ej.

Tjek for at se, om emballagen er fuldstændigt installeret:

Hvis du er på Windows, skal du åbne CMD, og hvis du er på macOS åben terminal og skrive:

knude -v

Nu skulle du se den version, du besøgte på Node.js downloads side, udskrevet her.

Ellers har jeg lagt en vejledning herunder for at prøve igen:

  • Windows
  • macOS

Trin 2: Arduino del

Arduino del
Arduino del

I dette trin er det eneste, du skal gøre, at uploade en indbygget Arduino IDE-firmware på din Arduino Uno.

Vigtigt: Du skal opdatere din Arduino IDE til den nyeste version af Arduino.

Importer firmatabibliotek:

Topmenu >> Fil >> Eksempler >> Firmata >> Standardfirma

Bekræft og upload kode på Arduino:

1. Topmenu >> Skitse >> Bekræft/kompilér

2. Topmenu >> Skitse >> Upload

Helt færdig.

Trin 3: Få Telegram Bot Token

Få Telegram Bot Token
Få Telegram Bot Token

Åbn Telegram og søg efter @BotFather eller klik her for at åbne denne bot på telegram.

  1. Skriv /newbot og tryk enter
  2. Vælg et navn til din bot
  3. Vælg et brugernavn til din bot. Det skal ende med 'bot'
  4. Nu sender bot dig nogle oplysninger, herunder dit API -adgangstoken. Skriv det ned, vi bruger dette token i de næste trin

Trin 4: Opret et Node.js -projekt

Opret et nyt NODE. JS -PROJEKT

For at oprette Node.js -projekt og installere moduler skal vi bruge terminal, så hvis du er på Windows, skal du bruge CMD og i tilfælde af at bruge macOS, bruge Terminal til alle nedenstående trin.

1. Opret en mappe et sted til projektet

2. CD (Skift bibliotek) til nyligt oprettet mappe. For eksempel, hvis du navngav den mappe 'TelegramBot' og lagde den på skrivebordet, skal du skrive dette i terminal og trykke på enter:

cd Desktop/TelegramBot

3. For at oprette Node.js -projekt skal du indtaste følgende kommando:

npm init

4. Besvar nogle spørgsmål, herunder navn, beskrivelse, licens osv. Hvis du ikke ved hvad du skal svare, skal du bare trykke på enter. I dette tilfælde vil ordet mellem parenteser blive brugt som standardværdi.

5. Nu skal du se filen 'package.json' oprettet i din mappe, og det betyder, at du har oprettet Node.js -projekt med succes.

Trin 5: Kodning

Vi skal skrive nogle koder her. Lad os beskrive nogle brugte biblioteker:

  1. Node Telegram Bot API til håndtering af telegram bot API -anmodninger.
  2. Johnny-Five-platform til forbindelse til Arduino.

Alt hvad du behøver at vide om disse biblioteker kan findes på deres linkede websteder. vi bruger dem bare i vores kode, men den fulde dokumentation af dem findes på deres blogs.

Jeg bruger Microsoft Visual Studio Code til kode redigering. men du kan bruge alt det andet, du kan lide. Åbn software til redigering af kode, og opret en fil med navnet 'index.js' (eller noget, du har angivet i indgangspartiet i Node.js -projektoprettelsestrin) i tilhørende bibliotek.

2. Skriv kode:

var five = require ("johnny-five"); lad TelegramBot = require ('node-telegram-bot-api'); const token = '##############################################'; const bot = ny TelegramBot (token, {polling: true}); var board = new five. Board (); const answerCallbacks = {};

bot.on ("besked", funktion (msg) {

const callback = answerCallbacks [msg.chat.id]; hvis (tilbagekald) {delete answerCallbacks [msg.chat.id]; tilbagekald (msg); }});

board.on ("klar", funktion () {

var led = ny fem. Led (13);

bot.on ('meddelelse', (msg) => {

const chatId = msg.chat.id; const tekst = msg.text; if (text == '/start') {start (chatId, led); }}); });

funktionsstart (chatId, led) {

bot.sendMessage (chatId, "Arduino Kontrolpanel", getKeyboardOptions ());

bot.on ("callback_query", (callbackQuery) => {

const msg = callbackQuery.message; bot.answerCallbackQuery (callbackQuery.id).then (() => {const data = callbackQuery.data; if (data == 'turnon') {led.on ();} ellers if (data == 'turnoff') {led.off ();}})}); }

funktion getKeyboardOptions () {

const options = {"reply_markup": {resize_keyboard: true, "inline_keyboard":

tilbagevenden muligheder;

}

3. Erstat token -ejendommens værdi med en, du skrev ned i botoprettelsestrin

4. Gem koden

5. Åbn terminal og indtast følgende kommando:

npm i-gem johnny-five node-telegram-bot-api

6. Efter installation af moduler, mens din Arduino er tilsluttet USB -port, skal du indtaste følgende kommando i terminalen:

node index.js

7. Du skal se noget i retning af:

1534514872949 Tilgængelig /dev/cu.usbmodem1411

1534514872957 Tilsluttet /dev/cu.usbmodem1411 1534514876660 Repl Initialized >>

8. Åbn telegram, og søg efter din bots brugernavn (eller åbn det fra BotFather) og indtast denne kommando:

/Start

9. Du bør se et kontrolpanel, der kan styre den indbyggede Arduino LED med kommandoer 'Tænd' og 'Sluk', hvis du er heldig nok;)

Anbefalede: