- Tarvittavat materiaalit:
- Piirikaavio:
- Vadelma Python -ohjelma:
- LEDien hallinta Raspberry Pi: llä ja Telegram botilla:
Telegram on optimaalinen sovellus yhdistettäväksi Raspberry Pi: n kanssa kaikkiin mobiilihallintatarkoituksiin. Sillä on erittäin hyvä kehittäjien tuki ja paljon ominaisuuksia on tarkoitus julkaista pian Telegram Botsin suorituskyvyn parantamiseksi. Edellisessä opetusohjelmassamme opimme, kuinka voimme perustaa sähke botin vadelma piille, ja opimme myös keskustelemaan sen kanssa ja jakamaan kuvia, asiakirjoja ja äänitiedostoja.
Nyt siirrymme seuraavaan vaiheeseen oppimalla, miten voimme hallita Vadelma-nastojen GPIO-nastoja sähkeellä, jotta tarjoamme jonkin verran laitteistotukea botillemme. Tässä opetusohjelmassa yhdistämme neljä LEDiä Raspberry Pi GPIO -nastoihin ja vaihdamme ne luonnollisella kielellä (chattailemalla) Telegramilta. Kuulostaa mielenkiintoiselta? Aloitetaan.
Tarvittavat materiaalit:
- Neljä LED-valoa (mitä tahansa väriä)
- Vadelma Pi (internetyhteydellä)
- Leipälauta
- Johtojen liittäminen
Ennakkovaatimukset:
Ennen kuin jatkat opetusohjelman kanssa, varmista, että Raspberry Pi on yhteydessä Internetiin ja että voit suorittaa python-ohjelmia Pi: lläsi. Lue myös edellinen opetusohjelma, jotta tiedät, miten Telegram-botti asennetaan Raspberry Pi Pi: llä, koska oletan, että olet perehtynyt kyseisiin asioihin jatkaaksesi projektia.
Jos olet uusi Raspberry Pi -ohjelmassa, seuraa Raspberry Pi -esittelyartikkeliamme ja muita Raspberry Pi -oppaita.
Piirikaavio:
Piirikaavio LEDien ohjaamiseksi Raspberry Pi: n ja Telegram Android App -sovelluksen avulla on vain neljä lediä ja joitain liitäntäjohtoja. Emme tarvitse virranrajoittimia, koska Raspberry Pi GPIO -nastat toimivat 3.3V TTL: llä. Seuraa alla olevaa piiriä ja liitä LED-valo.
Seuraava taulukko auttaa sinua määrittämään PIN-numeron ja GPIO-numeron neljän ledin liittämistä varten.
Led-terminaali |
Pin koodi |
GPIO-numero |
Vihreä anodi |
Tappi 31 |
GPIO 6 |
Punainen anodi |
Tappi 33 |
GPIO 13 |
Keltainen anodi |
Tappi 35 |
GPIO 19 |
Valkoinen anodi |
Tappi 37 |
GPIO 26 |
Kaikkien neljän katodi |
Tappi 39 |
Maa |
Alla on piirikaavio, johon neljä LEDiä on kytketty yllä olevan taulukon mukaisesti:
Kun yhteys on muodostettu, laitteistokokoonpanosi pitäisi näyttää tältä alla.
Vadelma Python -ohjelma:
Kun laitteisto on valmis, voimme jatkaa Python-ohjelmaa. Tässä ohjelmassa meidän on luettava Telegram-botista lähetetyt tiedot (viesti) ja vaihdettava LED vastaavasti. Jotta se olisi luonnollisempaa, jokaisen lauseen tarkistamisen ja ohjelmoinnin koodaamisen sijaan voimme tarkistaa sanat ja edetä sen mukaisesti.
Joten ohjelma tarkistaa ensisijaisesti kaksi sanaa, ne ovat päällä ja pois päältä. Havaittuaan jommankumman näistä kahdesta sanasta se etsii muita avainsanoja, kuten valkoinen, keltainen, vihreä ja punainen. Vastaava väri-LED vaihtuu vain, jos sana havaitaan. Päivitämme myös havaittujen sanojen merkkijonon lähettämään viestin takaisin sähke botille.
Täydellinen ohjelma löytyy alareunassa tämän sivun; hieman alla olen selittänyt ohjelman hajottamalla sen pieniksi mielekkäiksi junkeiksi.
Jotta tämä ohjelma toimisi, tarvitsemme Raspberry Pi -sovellukseen ladatun ja tuodun telepotin . Edellisessä opetusohjelmassa olemme jo ladanneet teleportin Raspberry Pi: n sisällä, joten nyt meidän on vain tuotava se ohjelmaamme yhdessä GPIO-kirjaston kanssa alla esitetyllä tavalla.
tuo RPi.GPIO GPIO-tuontitelepotiksi telepot.loop-tuonti MessageLoopista
Valvomme LED-valoja tällä ohjelmalla, ja LEDien väri on valkoinen, keltainen, punainen ja vihreä. Ne on kytketty piirikaaviossa esitettyihin nastoihin; olkaamme määritellä tappi Nimet näille LEDit perustuu niiden väriä niin, että se on käyttää niitä ohjelmaan.
valkoinen = 26 keltainen = 19 punainen = 13 vihreä = 6
Seuraava askel olisi määritellä kaikki nämä LED-nastat lähtötapeiksi ja määritellä ne oletusarvoisesti pois päältä käyttämällä alla olevia rivejä.
#LED Valkoinen GPIO.setup (valkoinen, GPIO.OUT) GPIO.lähtö (valkoinen, 0) #Ei alun perin #LED Keltainen GPIO.setup (keltainen, GPIO.OUT) GPIO.ulostulo (keltainen, 0) #Ei aluksi #LED Punainen GPIO.asetukset (punainen, GPIO.OUT) GPIO.ulostulo (punainen, 0) #Ei aluksi #LED vihreä GPIO.asetukset (vihreä, GPIO.OUT) GPIO.ulostulo (vihreä, 0)
Kuten opimme edellisestä opetusohjelmastamme, kaikki toiminnot, jotka Vadelma-botin on tehtävä, määritetään toimintotoiminnon sisällä. Tässä meidän on tehtävä botti kuuntelemaan matkapuhelimelta lähetettyä viestiä, verrataan sitä joihinkin avainsanoihin ja vaihdettava LED vastaavasti.
Jokaiselle matkapuhelimellamme lähetetylle viestille on chat-tunnus ja komento. Ohjelma vaatii tämän chat-tunnuksen vastaamaan lähettäjälle. Joten tallennamme chat-tunnuksen ja viestin alla olevan kuvan mukaisesti.
chat_id = msg-komento = msg
Nyt riippumatta lähetämme puhelimesta tallennetaan merkkijono muuttuja komento . Joten meidän on vain tarkistettava, onko tässä muuttujassa avainsanoja. Pythonilla on komento, joka helpottaa asioita täällä. Esimerkiksi, jos meidän on tarkistettava, onko sana ”päällä” komentomuuttujaan tallennetussa merkkijonossa, voimme yksinkertaisesti käyttää alla olevaa riviä.
jos komento on päällä:
Samoin tarkistamme kaikki avainsanat, kun saamme "päällä", jatkamme sen tarkistamista, minkä värin käyttäjä on maininnut. Tämä tehdään myös samoilla komennoilla vertaamalla samoja avainsanoja. Päivitämme myös merkkijonon nimeltä viesti, johon voidaan vastata takaisin käyttäjälle tilaviestinä.
jos 'päällä' komennossa: viesti = "päällä", jos "valkoinen" komennossa: viesti = viesti + "valkoinen" GPIO.ulostulo (valkoinen, 1) jos 'keltainen' komennossa: viesti = viesti + "keltainen" GPIO.output (keltainen, 1), jos komentossa on punainen: viesti = viesti + "punainen" GPIO. lähtö (punainen, 1) jos komento "vihreä": viesti = viesti + "vihreä" GPIO.ulostulo (vihreä, 1) jos komentossa 'kaikki': viesti = viesti + "kaikki" GPIO.lähtö (valkoinen, 1) GPIO.ulostulo (keltainen, 1) GPIO.ulostulo (punainen, 1) GPIO.ulostulo (punainen, 1) GPIO.ulostulo (vihreä, 1) viesti = viesti + "light (s)" sähke_bot.sendMessage (chat_id, viesti)
Kuten yllä on esitetty, etsimme avainsanoja, kuten "vihreä", "valkoinen", "punainen", "keltainen" ja "kaikki" ja "päällä" vain kyseinen LED. Kun työ on valmis, lähetämme takaisin käyttäjälle viestin juuri tapahtuneesta. Samaa menetelmää voidaan käyttää sammuttamaan valot pois hyvin.
jos komento 'pois': viesti = "Pois päältä", jos komentossa "valkoinen": viesti = viesti + "valkoinen" GPIO.ulostulo (valkoinen, 0) jos komentossa 'keltainen': viesti = viesti + "keltainen" GPIO.output (keltainen, 0), jos komentossa on punainen: viesti = viesti + "punainen" GPIO. lähtö (punainen, 0) jos komento "vihreä": viesti = viesti + "vihreä" GPIO. lähtö (vihreä, 0) jos komentossa 'kaikki': viesti = viesti + "kaikki" GPIO.ulostulo (valkoinen, 0) GPIOulostulo (keltainen, 0) GPIOulostulo (punainen, 0) GPIOulostulo (punainen, 0) GPIO.ulostulo (vihreä, 0) viesti = viesti + "light (s)" sähke_bot.sendMessage (chat_id, viesti)
LEDien hallinta Raspberry Pi: llä ja Telegram botilla:
Yhdistä LEDit ja käynnistä ohjelma pythonilla. Varmista, että olet vaihtanut botin Token-osoitteen. Aloita kirjoittamalla haluamasi komennot. Esimerkiksi punaisen ja keltaisen valon sytyttämiseksi voit käyttää mitä tahansa seuraavista komennoista.
1.Sytytä punainen ja keltainen valo
2.Kytke punainen ja keltainen väri oikealle
3. punaisella ja keltaisella
4.Please laittaa päälle keltainen ja punainen valo
Kuten näette, botti etsii vain avainsanoja ja jättää huomiotta muut lauseen sanat, joten voit puhua sille luonnollisesti. Projektin täydellinen toiminta löytyy tämän sivun lopussa olevasta videosta.
Mene eteenpäin! pelata projektisi kanssa ja pitää hauskaa. Voit nostaa sen uudelle tasolle nyt. Molempien opetusohjelmien yhdistelmänä meillä on valta hallita älypuhelimemme laitteita kaikkialta maailmasta ja saada myös Raspberry Pi: stä tuloja / tuloksia viestin, äänen, kuvan ja jopa asiakirjan muodossa. Jos vaihdat LEDit releisiin ja verkkolaitteisiin, se voi olla älypuhelimen ohjaama kotiautomaatio. Joten käytä luovuuttasi ja rakenna omat hienot projektisi…
Toivottavasti pidit projektista ja nautit rakentamaan jotain vastaavaa. Kerro minulle, jos sinulla on ongelmia kommenttiosion kautta, ja autan mielelläni. Jaa myös viileä ideasi minulle ja anna meidän nähdä, mitä voimme rakentaa.