Hi Makers kali ini Ngebikin.com dikasih sumbangan tutorial yaitu kerekan bendera DIY dari orang yang namanya harum di sektor teknologi Indonesia, kalo kamu penggiat programming atau startup mungkin kamu pernah melihat orang ini wara-wiri di acara-acara tersebut ya dialah Sofian Hadi Wijaya yang artikel aslinya ada disini. Sebenarnya tutorial ini merupakan tutorial dari tahun 2015 dimana ia membuat sendiri kerekan dengan dasar IoT ( internt of things). Awalnya Sofian membaca pembicaraan singkat team Code4nation pada platform slack, salah satu member dari Techinasia mengemukakan ide dari CTO mereka tentang campaign acara Hackathon Merdeka yaitu membuat kerekan bendera yang dikontrol via twitter, jadi ketika ada tweet dengan hashtag tertentu maka si bendera akan dengan sendirinya naik perlahan. Hal ini disambut positif oleh mas Ainun Najib (penggagas kawalpemilu dan laporpresiden). “@sofianhw bisa upayakan IoT (Internet of Things) -nya?” ucap mas Ainun Najib. Seketika itu juga Sofian jawab “Bisa!!” dan maka berikut hasil karya Sofian untuk kerekan bendera DIY.
Kita simak yuk barang-barang yang diperlukan untuk membuatkerekan bendera DIY IoT ini :
Intel Edison
ULN2803a
Stepper Motor
Timing belt 3d printer (panjang minimal 1 m)
Dudukan untuk kamera
Gagang Sapu
Kabel Tie
Tahap pertama kamu perlu mengikat dudukan kamera dan stepper motor pada gagang sapu menggunakan kabel tie (cable ties; kabel tis).
pastikan timing belt tidak terlalu kencang maupun kendor.
Setelah itu kita perlu rakit rangkaian ULN dan intel edison seperti skema di bawah ini :
Mari kita sambungkan keseluruhan system agar semua parts untuk kerekan bendera DIY
Untuk kamu yang doyan utak atik programming bisa langsung ikutin aja nih seperti kode yang Sofian tulis menggunakan bahasa python.
importtimefromwiringx86importGPIOEdisonasGPIOgpio=GPIO(debug=False)pin1=3pin2=4pin3=5pin4=6index=0print'Setting up pin %d'%pin1gpio.pinMode(pin1,gpio.OUTPUT)print'Setting up pin %d'%pin2gpio.pinMode(pin2,gpio.OUTPUT)print'Setting up pin %d'%pin3gpio.pinMode(pin3,gpio.OUTPUT)print'Setting up pin %d'%pin4gpio.pinMode(pin4,gpio.OUTPUT)print'Go up now...'try:while(True):gpio.digitalWrite(pin4,gpio.LOW)gpio.digitalWrite(pin2,gpio.HIGH)time.sleep(0.01)gpio.digitalWrite(pin1,gpio.LOW)gpio.digitalWrite(pin3,gpio.HIGH)time.sleep(0.01)gpio.digitalWrite(pin2,gpio.LOW)gpio.digitalWrite(pin4,gpio.HIGH)time.sleep(0.01)gpio.digitalWrite(pin3,gpio.LOW)gpio.digitalWrite(pin1,gpio.HIGH)time.sleep(0.01)index=index+1# When you get tired of seeing the led blinking kill the loop with Ctrl-C.exceptKeyboardInterrupt:print'\nCleaning up...'print'total step %d'%indexgpio.digitalWrite(pin1,gpio.LOW)gpio.digitalWrite(pin2,gpio.LOW)gpio.digitalWrite(pin3,gpio.LOW)gpio.digitalWrite(pin4,gpio.LOW)# Do a general cleanup. Calling this function is not mandatory. gpio.cleanup()
eksekusi kode tersebut, ketika bendera sudah mencapai puncaknya tekan “Ctrl + C” untuk interrupt program, lalu program akan memberikan output berapa putaran yang diperlukan untuk mencapai puncak.
Terminal
$ python countFlagSteps.py
Saat semua langkah sudah sesuai dan motor juga sudah di testing inilah saatnya menghubungkan kerekan kita ke Twitter. sebelum memulai ada baiknya kita membuat aplikasi pada twitter kita.
Kita akan memanfaatkan API Streaming untuk mendapatkan jumlah tweet secara real-time.
importargparseimporttimefromwiringx86importGPIOEdisonasGPIOfromTwitterAPIimportTwitterAPI,TwitterOAuth,TwitterRestPagergpio=GPIO(debug=False)pin1=3pin2=4pin3=5pin4=6COUNT=100# search download batch sizedefsetup():print'Setting up pin %d'%pin1gpio.pinMode(pin1,gpio.OUTPUT)print'Setting up pin %d'%pin2gpio.pinMode(pin2,gpio.OUTPUT)print'Setting up pin %d'%pin3gpio.pinMode(pin3,gpio.OUTPUT)print'Setting up pin %d'%pin4gpio.pinMode(pin4,gpio.OUTPUT)defputer():print"muter"foriinrange(100):printigpio.digitalWrite(pin4,gpio.LOW)gpio.digitalWrite(pin2,gpio.HIGH)time.sleep(0.01)gpio.digitalWrite(pin1,gpio.LOW)gpio.digitalWrite(pin3,gpio.HIGH)time.sleep(0.01)gpio.digitalWrite(pin2,gpio.LOW)gpio.digitalWrite(pin4,gpio.HIGH)time.sleep(0.01)gpio.digitalWrite(pin3,gpio.LOW)gpio.digitalWrite(pin1,gpio.HIGH)time.sleep(0.01)defcount_old_tweets(api,word_list):words=' OR '.join(word_list)count=0whileTrue:pager=TwitterRestPager(api,'search/tweets',{'q':words,'counforiteminpager.get_iterator():if'text'initem:count+=1print(count)elif'message'initem:ifitem['code']==131:continue# ignore internal server error elifitem['code']==88:print('Suspend search until %s'%searchraiseException('Message from twitter: %s'%itedefcount_new_tweets(api,word_list):words=','.join(word_list)count=0total_skip=0whileTrue:skip=0try:r=api.request('statuses/filter',{'track':words})whileTrue:foriteminr.get_iterator():if'text'initem:count+=1puter()print(count+skip+total_skip)elif'limit'initem:skip=item['limit'].get('track'#print('\n\n\n*** Skipping %d twelif'disconnect'initem:raiseException('Disconnect: %s'exceptExceptionase:print('*** MUST RECONNECT %s'%e)total_skip+=skipif__name__=='__main__':parser=argparse.ArgumentParser(description='Count occurance of word(s)parser.add_argument('-past',action='store_true',help='search historic parser.add_argument('-oauth',metavar='FILENAME',type=str,help='read Oparser.add_argument('words',metavar='W',type=str,nargs='+',help='worargs=parser.parse_args()oauth=TwitterOAuth.read_file(args.oauth)api=TwitterAPI(oauth.consumer_key,oauth.consumer_secret,oauth.accesstry:setup()ifargs.past:count_old_tweets(api,args.words)else:count_new_tweets(api,args.words)exceptKeyboardInterrupt:print('\nTerminated by user\n')gpio.digitalWrite(pin1,gpio.LOW)gpio.digitalWrite(pin2,gpio.LOW)gpio.digitalWrite(pin3,gpio.LOW)gpio.digitalWrite(pin4,gpio.LOW)# Do a general cleanup. Calling this function is not mandatory. gpio.cleanup()exceptExceptionase:print('*** STOPPED %s\n'%e)
Dan semuanya berhasil, oke bagaimana dengankerekan bendera DIY punya kalian? Jika ada yang tidak berhasil langsung saja hubungi kita di Ngebikin.com atau bisa juga langsung nanya Bang Sofian di Instagramnya ya disini
Semua source code bang Sofian udah upload ke account githubnya langsung aja akses kesini >> sofianhw/flagpole.
Ingin berdagang online tapi bingung bagaimana menampilkan foto produk yang baik? Kali ini Ngebikin akan membagikan tutorial studio mini untuk foto produk atau action…