Inhoudsopgave:

Arduino besturen met Telegram Bot zonder extra hardware - Ajarnpa
Arduino besturen met Telegram Bot zonder extra hardware - Ajarnpa

Video: Arduino besturen met Telegram Bot zonder extra hardware - Ajarnpa

Video: Arduino besturen met Telegram Bot zonder extra hardware - Ajarnpa
Video: Лазерные проекции астероидов: ESP32 заново изобретает классическую аркадную игру! 2024, Juli-
Anonim
Bestuur Arduino met Telegram Bot zonder extra hardware
Bestuur Arduino met Telegram Bot zonder extra hardware

Er is een breed scala aan dingen die je met Arduino kunt doen, maar heb je er ooit aan gedacht om je Arduino te besturen met een Telegram-bot? WAT HEB JE NODIG:

  • Arduino UNO
  • Node.js geïnstalleerd op uw pc
  • Een of ander bestuurbaar apparaat (we gebruiken Arduino's ingebouwde LED op pin 13 hier, maar voel je vrij om te vragen wat je wilt doen in opmerkingen)

Stap 1: Installeer Node.js op uw pc

Installeer Node.js op uw pc
Installeer Node.js op uw pc

Node.js is een JavaScript-runtime, maar geen paniek als je geen programmeerachtergrond hebt. Ik heb voorbereid wat je nodig hebt en je kunt ze downloaden. In dit project zullen we Node.js gebruiken voor:

  1. Telegram-bot maken
  2. Arduino besturen

INSTALLEER NODE. JS:

Ga naar de officiële Node.js-downloadpagina en download het nieuwste installatiepakket op basis van uw besturingssysteem.

*Onthoud het laatste versienummer zoals vermeld bovenaan de downloadpagina, we gebruiken het in de volgende stap.

Nadat u het pakket hebt gedownload en geïnstalleerd, moet u controleren of Node.js volledig is geïnstalleerd of niet.

CONTROLEER OF HET PAKKET VOLLEDIG IS GENSTALLEERD:

Als u Windows gebruikt, opent u CMD en als u macOS gebruikt, opent u terminal en typt u:

knoop -v

Nu zou u de versie moeten zien die u hebt bezocht op de downloadpagina van Node.js, hier afgedrukt.

Anders plaats ik hieronder een tutorial om het opnieuw te proberen:

  • ramen
  • macOS

Stap 2: Arduino-onderdeel

Arduino-onderdeel
Arduino-onderdeel

In deze stap hoeft u alleen maar een ingebouwde Arduino IDE-firmware op uw Arduino Uno te uploaden.

Belangrijk: u moet uw Arduino IDE bijwerken naar de nieuwste versie van Arduino.

Firmata-bibliotheek importeren:

Hoofdmenu >> Bestand >> Voorbeelden >> Firmata >> StandardFirmata

Verifieer en upload code op Arduino:

1. Hoofdmenu >> Schets >> Verifiëren/Compileren

2. Hoofdmenu >> Schets >> Uploaden

Helemaal klaar.

Stap 3: Telegram Bot-token ophalen

Telegram Bot-token ophalen
Telegram Bot-token ophalen

Open Telegram en zoek naar @BotFather of klik hier om deze bot op telegram te openen.

  1. Typ /newbot en druk op enter
  2. Kies een naam voor je bot
  3. Kies een gebruikersnaam voor uw bot. Het moet eindigen op 'bot'
  4. Nu stuurt bot u wat informatie, inclusief uw API-toegangstoken. Schrijf het op, we gebruiken dit token in de volgende stappen

Stap 4: Maak een Node.js-project

MAAK EEN NIEUW NODE. JS-PROJECT

Voor het maken van een Node.js-project en het installeren van modules moeten we terminal gebruiken, dus als je Windows gebruikt, gebruik CMD en in het geval van macOS gebruik je Terminal voor alle onderstaande stappen.

1. Maak ergens een map voor het project

2. CD (Change Directory) naar recent aangemaakte map. Als je die map bijvoorbeeld 'TelegramBot' hebt genoemd en op het bureaublad hebt gezet, schrijf je dit in terminal en druk je op enter:

cd Desktop/TelegramBot

3. Voer voor het maken van een Node.js-project de volgende opdracht in:

npm init

4. Beantwoord enkele vragen, waaronder naam, beschrijving, licentie enz. Als u niet weet wat u moet antwoorden, drukt u gewoon op enter. In dit geval wordt het woord tussen haakjes als standaardwaarde gebruikt.

5. Nu zou u het 'package.json'-bestand in uw map moeten zien en dit betekent dat u het Node.js-project met succes hebt gemaakt.

Stap 5: Coderen

We moeten hier wat codes schrijven. Laten we enkele gebruikte bibliotheken beschrijven:

  1. Node Telegram Bot API voor het afhandelen van API-verzoeken voor telegrambots.
  2. Johnny-Five Platform om verbinding te maken met Arduino.

Alles wat u moet weten over deze bibliotheken is te vinden op hun gelinkte websites. we gebruiken ze gewoon in onze code, maar de volledige documentatie ervan staat op hun blogs.

Ik gebruik Microsoft Visual Studio Code voor het bewerken van code. maar je kunt elke andere gebruiken die je wilt.1. Open codebewerkingssoftware en maak een bestand met de naam 'index.js' (of iets dat u hebt ingevoerd in het beginpunt van de stap voor het maken van het Node.js-project) in de gerelateerde map.

2. Schrijf code:

var vijf = vereisen("johnny-vijf");let TelegramBot = vereisen('node-telegram-bot-api'); const token = '############################################'; const bot = nieuwe TelegramBot (token, { polling: true }); var bord = nieuwe vijf. Board(); const answerCallbacks = {};

bot.on("bericht", functie (bericht) {

const callback = answerCallbacks[msg.chat.id]; if (callback) { verwijder answerCallbacks[msg.chat.id]; terugbellen (bericht); } });

board.on("klaar", functie () {

var led = nieuwe vijf. Led(13);

bot.on('bericht', (bericht) => {

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

functie start (chat-ID, led) {

bot.sendMessage (chatId, "Arduino-configuratiescherm", getKeyboardOptions());

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

const msg = callbackQuery.bericht; bot.answerCallbackQuery(callbackQuery.id).then(() => { const data = callbackQuery.data; if (data == 'turnon') { led.on(); } else if (data == 'turnoff') { Led uit(); } }) }); }

functie getKeyboardOptions() {

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

retour opties;

}

3. Vervang de waarde van de token-eigenschap door een waarde die u hebt opgeschreven in de stap voor het maken van de bot

4. Bewaar de code

5. Open terminal en voer het volgende commando in:

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

6. Na het installeren van modules, terwijl uw Arduino is aangesloten op de USB-poort, voert u in terminal de volgende opdracht in:

knooppunt index.js

7. Je zou zoiets moeten zien als:

1534514872949 Beschikbaar /dev/cu.usbmodem1411

1534514872957 Verbonden /dev/cu.usbmodem1411 1534514876660 Repl geïnitialiseerd >>

8. Open telegram en zoek naar de gebruikersnaam van uw bot (of open deze vanuit BotFather) en voer deze opdracht in:

/begin

9. Je zou een bedieningspaneel moeten zien dat de ingebouwde Arduino LED kan besturen met 'Turn on' en 'Turn off' commando's, als je geluk hebt;)

Aanbevolen: