Buat Butang Mudah Tweet Cara Keras: 6 Langkah

Buat Butang Mudah Tweet Cara Keras: 6 Langkah

Isi kandungan:

Anonim

Terdapat beberapa cara untuk membuat tweet microcontroller. Kaedah yang mudah diselaraskan dengan instructables yang lain.

  1. Sambungkannya ke komputer yang menjalankan skrip python atau serupa.
  2. Sambungkannya ke penghala yang digodam (bagus - anda tahu siapa anda).
  3. Menggunakan pelayan proksi pihak ketiga cth. ThingTweet, perpustakaan Arduino NeoCat, Perpustakaan Arduino.
Satu kaedah yang tidak dilindungi adalah mengendalikan keseluruhan proses menjana Tweet menggunakan mikropengawal sahaja. Kaedah ini mempunyai beberapa kelebihan berbanding kaedah lain.

  • Ia tidak memerlukan komputer / router luaran.
  • Ia tidak mempunyai risiko keselamatan kaedah tiga. Meluluskan bukti kelayakan keselamatan melalui pengangkutan tidak selamat adalah berisiko. Jika anda menggunakan pelayan proksi untuk menghasilkan Tweet anda pastikan anda memahami risiko.
Sudah tentu kaedah ini juga mempunyai kelemahan dari segi saiz kod dan kerumitan; itulah sebabnya saya telah menyebutnya sebagai "cara yang sukar".

Tujuan pengajaran ini adalah untuk memberi orang lain satu rangka kerja asas untuk menghasilkan Tweet dari mikropengawal. Aplikasi itu sendiri cukup mudah; tekan butang dan ia menghasilkan Tweet separuh rawak.

Bekalan:

Langkah 1: Bahagian

Saya telah menggunakan STM32 Discovery Board (STM32F103RG) untuk projek ini, kerana saya sudah mengenalinya dan saya mempunyai satu tangan. Kebanyakan kod di atas tahap pemandu (easybutton.c, nokia5110.c dan wiznet5100.c) harus platform bebas supaya port kod ke microcontrollers lain haruslah mudah.

Hanya beberapa bahagian diperlukan untuk projek ini

  • Lembaga Penemuan STM32 atau yang serupa
  • WIZnet W5100 Rangkaian Modul pelarian -
  • Pelayaran LCD Graphic Nokia 5110 -
  • Bekalan Kuasa Breadboard 5V / 3.3V -
  • Staples® ButtonTM Mudah -

Langkah 2: Mengubah Butang Mudah

Mengubah Butang Mudah Staples adalah, untuk mengecat frasa, mudah.

  1. Keluarkan empat kaki getah dan empat skru kecil di bawahnya.
  2. Tidak melepaskan kabel Vss dan Vdd yang menyambungkan ke terminal bateri.
  3. Tanggalkan terminal bateri.
  4. Solder wires baru ke pad Vss dan Vdd.
  5. Pateri wayar ke pad kosong berhampiran suis butang tekan (lihat imej).
  6. Gerakkan lubang ke dalam petak bateri dan lulus tiga wayar melaluinya.
  7. Butang semula.
Anda kini akan mempunyai butang dengan tiga wayar yang melekat.
  • Vss - tanah
  • Vdd - voltan bekalan positif (3V walaupun nampaknya mengendalikan 3.3V agak gembira)
  • Rasa butang - 0V meningkat kepada 3V apabila butang ditekan.

Langkah 3: Skematik Perkakasan

Perkakasan agak asas. Kekangan masa bermakna bahawa ia masih dibentangkan pada papan roti tetapi saya bercadang untuk membuat litar yang lebih kekal dengan semua bahagian yang dipasang ke dalam pangkalan kecil di bawah butang.

Bekalan kuasa ini menyediakan Discovery Board dengan 5V dan ini kemudian diturunkan ke 3.3V oleh pengawal onboard untuk menjalankan semua peralatan.

Butang yang diubah suai disambungkan ke PA1 dari Discovery Board dan dibekalkan dengan 3.3V yang nampaknya tidak mempengaruhi operasi standardnya (soundtrack yang "mudah").

Modul Rangkaian WIZnet W5100 disambungkan ke persisian SPI1 (pin PA5, PA6 dan PA7) dengan sambungan tambahan untuk / Reset (pin PA2) dan / Hamba Pilih (pin PA4)

Modul LCD Grafik Nokia 5110 disambungkan ke peranti SPI2 (pin PB13 dan PB15) dengan sambungan tambahan untuk / Reset (pin PB10), Data / Perintah (PIN PB11) dan / Slave Select (PIN PB12).

Terdapat pelbagai jenis pin IO tujuan dan sisanya di Papan Penemuan untuk aplikasi Twitter yang lebih maju pada masa akan datang.

Langkah 4: Alur Kerja dan Modul Kod

Modul utama.c mengandungi aliran kerja untuk projek (lihat imej). Selepas memulakan papan mikrokontroler permintaan dihantar ke pelayan DHCP rangkaian untuk mendapatkan alamat IP dan tetapan rangkaian. Seterusnya permintaan dihantar ke pelayan Protokol Masa Rangkaian Mudah untuk mendapatkan masa dan tarikh semasa. Kod kemudian memasuki gelung yang menunggu anda melayari alamat IP dan menetapkan parameter Oauth. Setelah parameter ditetapkan kod menunggu Tekan Mudah ditekan dan kemudian Tweet pesan rawak dari pilihan yang disediakan.

Fail binari kini hanya berada di bawah saiz 35K. Kod tidak dioptimumkan pada masa ini jadi mungkin untuk mendapatkan binari di bawah 32K dengan sedikit kerja; sudah tentu ia bergantung kepada platform dan pengkompil.

Berikut ini memberikan gambaran mengenai modul kod sumber untuk projek tersebut. Kekangan masa bermakna kod tidak sama seperti saya biasanya suka tetapi diharapkan dengan dokumentasi dalam pengajaran ini, modul-modul haruslah agak mudah untuk diikuti.

Biasa

kamus.c

  • kelas pembantu yang berguna yang mengawal senarai nama / nilai pasangan yang disortir.
Penyulitan

sha1.c

hmacsha1.c

  • Digunakan untuk membuat hash permintaan OAuth dan kemudian menyulitkannya dengan Rahsia Pengguna dan Token Akses Token.
  • Saya tidak boleh mengambil kredit untuk modul ini; mereka sebahagian besarnya tidak berubah dari Perpustakaan AVR Crypto (http://www.das-labor.org/wiki/Crypto-avr-lib).
base64.c
  • Base64 menyandarkan dan menyahkod.

Pemandu

easybutton.c

  • Pemandu untuk Butang Staples Mudah diubah.
nokia5110.c
  • Pemacu LCD Grafis Nokia 5100 (SPI).
wiznet5100.c
  • WIZnet W5110 Module driver (SPI).

Protokol

Pengangkutan

udp.c

tcp.c

  • Modul WIZnet menjaga kedua-dua protokol lapisan pengangkutan ini secara teknikalnya, ini juga berada di bawah modul pemacu tetapi mereka telah dipisahkan untuk kejelasan.

Permohonan

formdata.c

  • Kaedah klien HTTP untuk membuat permintaan GET dan POST ke pelayan web.
  • Kaedah pelayan HTTP untuk menerima panggilan GET dan POST masuk.
dhcp.c
  • Dapatkan alamat IP, subnet mask, gateway dan pelayan DNS IP dari pelayan DHCP rangkaian.
dns.c
  • Selesaikan URL yang diberikan ke alamat IP yang sama.
sntp.c
  • OAuth memerlukan timestamp yang tepat; modul ini meminta masa kini dari pelayan Protokol Masa Rangkaian Mudah.

Pelayan Web

webserver.c

  • Seorang pendengar untuk permintaan HTTP GET dan POST.
  • Membolehkan untuk menetapkan Kunci Pengguna OAuth, Rahsia Pengguna, Token Akses dan Rahsia Token Akses.

Twitter

twitter.c

  • Pelaksanaan API Twitter (kini hanya status kemas kini digunakan).
  • Kebanyakan mengangkat berat dikendalikan oleh modul OAuth.
oauth.c
  • Modul inti kerangka Twitter.
  • Buatkan pengenal unik untuk permintaan (nonce).
  • Menjana cap waktu untuk permintaan itu.
  • Menjana asas tanda tangan untuk permintaan OAuth.
  • Kirakan hash pangkalan tandatangan (SHA1).
  • Tandat hash menggunakan Rahsia Pengguna dan Rahsia Token Akses (HMAC-SHA1).
  • Hantar permintaan yang ditandatangani ke pelayan web (HTTP GET atau POST).

Langkah 5: Buat Aplikasi Twitter Baharu

Untuk mencuba, anda perlu mempunyai perkara berikut
  • Kunci Pengguna
  • Rahsia Pengguna
  • Token akses
  • Akses Token Rahsia
Kunci Pengguna memberitahu Twitter apa aplikasi menghantar Tweet itu.

The Token memberitahu Twitter apa pengguna Tweeting.

Rahsia Pengguna dan Token Rahsia tidak dihantar ke API Twitter tetapi digunakan untuk mengira hash cryptographic permintaan yang digunakan sebagai tandatangan untuk mencegah gangguan. Permintaan ini termasuk pengecam unik (nonce) dan cap waktu yang mesti berada dalam masa lima minit dari waktu UTC. Hanya satu permintaan akan diterima untuk pasangan bukan masa / timestamp yang diberikan.

Untuk mendapatkan kunci / rahsia ini, anda perlu membuat permohonan Twitter baru.

Pergi ke http://dev.twitter.com/apps - gunakan kelayakan Twitter anda untuk log masuk.

Pilih "Daftar aplikasi baru".

Masukkan butiran aplikasi

  • Nama permohonan - apa sahaja yang anda suka
  • Penerangan - apa sahaja yang anda suka
  • Laman Web Aplikasi - (diperlukan) apa sahaja yang anda suka
  • Organisasi - (pilihan) apa sahaja yang anda suka
  • Jenis Permohonan - Pelanggan
  • Jenis Akses Lalai - Baca & Tulis
  • Ikon Aplikasi - gunakan lalai atau muat naik sendiri
Ini akan mewujudkan aplikasi baharu dan memberikan anda Kunci Pengguna dan Rahsia Pengguna.

Biasanya untuk aplikasi anda akan meminta Token Akses dan Token Akses untuk setiap pengguna; dalam kes ini kerana hanya akan ada pengguna tunggal untuk aplikasi itu ada pintasan. Dari halaman tetapan aplikasi pilih "Token Akses Saya" untuk mendapatkan Token Akses dan Token Akses Token.

Tahniah anda kini bersedia untuk membuat tweet pertama anda.

Langkah 6: Operasi

Operasi projek ini adalah mudah
  1. Sambungkan jack Ethernet kepada anda rangkaian / penghala.
  2. Semak LCD untuk melihat alamat IP yang telah diberikan.
  3. Dalam pelayar web semak imbas ke alamat IP (mis.
  4. Masukkan Kunci Pengguna, Rahsia Pengguna, Token Akses dan Token Akses Token yang anda peroleh dan klik Tetapkan.
  5. LCD akan memaparkan "Sedia" dan butang akan bersenjata.
  6. Tweet pergi sehingga anda bosan atau rakan anda berhenti mengikuti anda:)